Quelqu'un peut-il me dire quels sont tous les mécanismes IPC présents dans Android.
À ma connaissance sont:
Il existe trois types de mécanisme IPC dans Android:
IPC est une communication inter-processus. Il décrit les mécanismes utilisés par différents types de composants Android pour communiquer entre eux.
1) Intents
sont des messages que les composants peuvent envoyer et recevoir. Il s'agit d'un mécanisme universel de transmission de données entre les processus. Avec l'aide des intentions, on peut démarrer des services ou des activités, invoquer des récepteurs de diffusion, etc.
2) Bundles
sont des entités de données transmises. Elle est similaire à la sérialisation d'un objet, mais beaucoup plus rapide sur Android. Le bundle peut être lu à partir de l'intention via la méthode getExtras()
.
3) Binders
sont les entités qui permettent aux activités et services d'obtenir une référence à un autre service. Il permet non seulement d'envoyer des messages aux services, mais d'appeler directement des méthodes sur eux.
Comme écrit sur page Développeurs Android , IPC dans Android incluent:
Toutes les réponses sont bonnes et concises dans ce post. Mais je voudrais savoir sur quel mécanisme IPC dois-je utiliser . Tout d'abord IPC
signifie Inter Process communication
où deux applications ou processus communiqueront entre eux en passant des données entre eux. Puisque Android est destiné aux appareils intégrés et petits, nous ne devons pas utiliser serialization
pour IPC
, nous pouvons plutôt utiliser BINDERs
qui utilise en interne parcels
. Parcel
est une sorte de sérialisation légère en utilisant le concept de mémoire partagée.
Il existe de nombreuses différences entre Binder IPC et Serialization IPC:
1. La sérialisation est très lourde à utiliser dans les appareils embarqués, la communication sera très lente.
2. Binders utilise Parcels pour rendre IPC très rapide.
3. Binders utilise en interne le concept de mémoire partagée qui utilise moins de mémoire tout en partageant des données entre deux processus.
Bottom Line:Binders
utilise moins de mémoire, et assez rapide car il utilise des parcelles. Serialization
est très lourd, prend du temps pour envoyer et recevoir des données, et il prend également plus de mémoire par rapport aux classeurs.
Remarque: Pour transmettre des données entre les activités, les services et les récepteurs, utilisez uniquement Bundles. N'allez pas pour la sérialisation ou les classeurs. Les classeurs sont spécifiquement utilisés uniquement pour les services de classeur où 2 processus communiqueront.
J'espère que cela aide:)
Il existe trois types de mécanismes IPC: