Exemple D'utilisation D'AIDL

Pour comprendre la AIDL dans android, je veux un exemple concret, le moyen de ce scénario de développement, nous devons utiliser AIDL.

En lisant les documents Android ... Cela me met dans la confusion et tant de questions, il est donc difficile de lire tout le doc pour moi, quelqu'un peut-il m'aider

  1. Est-ce pour communiquer avec l'extérieur du téléphone.

  2. Ou à communiquer avec différentes applications, (pourquoi nous devons communiquer avec d'autres applications)

  3. Quel genre de service qu'ils parlent dans docs

39
demandé sur Nixit Patel 2011-12-21 18:20:13

4 réponses

AIDL est utilisé pour le liant. Binder est un mécanisme pour faire des appels RPC sur / À partir D'un service Android.

Quand utiliser AIDL? Lorsque vous avez besoin d'un Service. Quand avez-vous besoin d'un Service? Si vous voulez partager des données et contrôler quelque chose dans une autre application, vous avez besoin d'un service utilisant AIDL comme interface. (Un fournisseur de contenu est utilisé uniquement lors du partage de données).

Les Services

Peuvent être utilisés dans votre application comme rouleau de modèle dans le modèle MVC.

33
répondu Jordi 2011-12-21 14:30:33

AIDL est un langage de définition D'Interface Android. Cela vous permet essentiellement de faire des appels IPC.

Utilisation: il y a des situations où un processus aurait besoin de parler à d'autres pour obtenir certaines informations.

Exemple: traiter un a besoin d'informations sur L'État de L'appel pour déterminer s'il doit changer le Type d'appel (par exemple appel Audio en vidéo ou Vice-versa). Vous pouvez obtenir le statut d'appel de certains auditeurs, mais pour changer le type D'appel de L'Audio à la vidéo, Le processus a a besoin d'un crochet pour changer. Ce "crochet" ou la façon de changer les appels fait généralement partie des Classes de téléphonie qui font partie de Processus de téléphonie . Ainsi, afin d'obtenir une telle information à partir du processus de téléphonie, on peut écrire un service de téléphonie (qui s'exécute dans le cadre du processus de téléphonie android), ce qui vous permettra d'interroger ou de modifier le type d'appel. Depuis processus A (Client) ici utilise ce Service distant qui communique avec Processus de téléphonie pour modifier l'appel Tapez, il doit avoir une interface pour parler au service. Étant donné que Le service de téléphonie {[6] } est le fournisseur et que traite un (client) est l'utilisateur, ils doivent tous deux s'entendre sur une interface (protocole) qu'ils peuvent comprendre et respecter. Une telle interface est AIDL , ce qui vous permet de parler (via un service à distance) au processus de téléphonie et de faire du travail.

En termes simples, AIDL est un Client" accord", qui lui indique comment parler au service. Le Service lui-même aura une copie de cet accord (puisqu'il a été publié pour ses clients). Le Service implémentera ensuite des détails sur la façon dont il gère une fois qu'une demande arrive ou dira quand quelqu'un lui parle

Donc, traiter une demande de changement d'appel via le Service, le Service obtient la demande, il parle au processus de téléphonie (car il en fait partie) et change l'appel à la vidéo.

Un point important à noter est que AIDL n'est nécessaire que pour l'environnement multithreading. Vous pourriez en finir avec les liants si vous n'avez pas besoin de faire face à multithread arch.

15
répondu GodOnScooter 2014-08-20 22:32:33

Un autre exemple du monde réel est la licence Google Play utilise AIDL.

3
répondu rxlky 2015-01-25 09:43:32

1 - est-ce pour communiquer avec l'extérieur du téléphone. Sa communication avec l'extérieur de l'application.

2 - ou pour communiquer avec différentes applications, (pourquoi nous devons communiquer avec d'autres applications) comme @ GodOnScooter mentionné, lorsque votre application communique avec le service de téléphonie qui est en fait une autre partie.

3 - Quel genre de service ils parlent dans docs?

Ceci est un service qui fonctionne dans un processus différent d'un système, pour se lier à ce service, vous avez besoin IPC (inter process communication), AIDL est utilisé pour mettre en œuvre cela.

0
répondu Muhammad Haris 2018-09-05 16:54:51