Android OS에서 사용할 수있는 IPC 메커니즘은 무엇입니까?
누구든지 Android에 존재하는 모든 IPC 메커니즘이 무엇인지 알려주세요.
내 지식은 다음과 같습니다.
- 의도
- 바인더
IPC는 프로세스 간 통신입니다. 서로 다른 유형의 Android 구성 요소가 서로 통신하는 데 사용하는 메커니즘을 설명합니다.
1) Intents
구성 요소가 보내고받을 수있는 메시지입니다. 프로세스간에 데이터를 전달하는 보편적 인 메커니즘입니다. 인 텐트의 도움으로 서비스 또는 활동을 시작하고 브로드 캐스트 수신기를 호출하는 등의 작업을 수행 할 수 있습니다.
2) Bundles
전달되는 데이터의 엔티티입니다. 객체의 직렬화와 비슷하지만 안드로이드에서는 훨씬 빠릅니다. 번들은 getExtras()
메소드 를 통해 의도에서 읽을 수 있습니다 .
3) Binders
활동 및 서비스가 다른 서비스에 대한 참조를 얻도록 허용하는 엔티티입니다. 단순히 서비스에 메시지를 보내는 것이 아니라 서비스에 대한 메서드를 직접 호출 할 수 있습니다.
Android에는 세 가지 유형의 IPC 메커니즘이 있습니다.
- 인 텐트 (번들과 함께)
- 바인더
- ASHMEM (익명 공유 메모리)-Linux 공유 메모리와이 공유 메모리의 주요 차이점은 Linux에서는 다른 프로세스가 공유 메모리를 해제 할 수 없지만 여기서 다른 프로세스에 메모리가 필요한 경우 Android OS에서이 메모리를 해제 할 수 있다는 것입니다.
Android 개발자 페이지 에 작성된대로 Android의 IPC 메커니즘에는 다음이 포함됩니다.
- 인 텐트 (번들 포함)
- 서비스가있는 바인더 또는 메신저
- BroadcastReceivers
이 게시물의 모든 답변은 훌륭하고 간결합니다. 그러나 어떤 IPC 메커니즘을 사용해야하는지 밝히고 싶습니다 . 우선 두 응용 프로그램 또는 프로세스가 데이터를 전달하여 서로 통신하는 IPC
것을 의미 Inter Process communication
합니다. 안드로이드가 내장 된 소형 장치를 의미하기 때문에, 우리는 사용하지 않아야 serialization
위해 IPC
오히려 우리가 사용할 수있는, BINDERs
내부적으로 어떤 용도 parcels
. Parcel
공유 메모리 개념을 사용하여 일종의 가벼운 직렬화입니다.
바인더 IPC와 직렬화 IPC에는 여러 가지 차이점이 있습니다.
1. 직렬화는 임베디드 장치에서 사용하기 매우 무겁고 통신 속도가 매우 느립니다.
2. Binders는 Parcel을 사용하여 IPC를 매우 빠르게 만듭니다.
3. 바인더는 내부적으로 두 프로세스간에 데이터를 공유하면서 메모리를 적게 사용하는 공유 메모리 개념을 사용합니다.
결론 : Binders
적은 메모리를 사용하고 구획을 사용하므로 매우 빠릅니다. Serialization
매우 무겁고 데이터를 보내고받는 데 시간이 걸리며 바인더에 비해 더 많은 메모리가 필요합니다.
참고 : 활동, 서비스 및 수신자간에 데이터를 전달하려면 번들 만 사용하십시오 . 직렬화 나 바인더를 사용하지 마십시오. 바인더는 특히 두 프로세스가 통신하는 바인더 서비스에만 사용됩니다.
도움이 되었기를 바랍니다 :)
IPC 메커니즘에는 세 가지 유형이 있습니다.
- 매니저
- 바인더 구현
- AIDL
참고 URL : https://stackoverflow.com/questions/5740324/what-are-the-ipc-mechanisms-available-in-the-android-os
'Programing' 카테고리의 다른 글
Jquery-하나 이상의 확인란이 선택되어 있는지 확인 (0) | 2020.12.03 |
---|---|
SQL 쿼리로 데이터없이 mysql 테이블 구조를 덤프하는 방법은 무엇입니까? (0) | 2020.12.03 |
Webstorm의 프로젝트 창에서 누락 된 폴더 (0) | 2020.12.03 |
C 쉘에서 stderr을 stdout으로 리디렉션 (0) | 2020.12.03 |
Ajax 호출 후 Jquery 이벤트가 실행되지 않습니다. (0) | 2020.12.03 |