2016-05-08 9 views
2

Ich habe einen nativen Binder-Service mit ein paar Transaktionsarten erstellt.Android Binder nativen Service von Java

Im Moment habe ich native Proxy (Bp) für Clients, aber ich möchte Java-Clients die Möglichkeit geben, meinen Dienst zu nutzen.

Grundsätzlich sollte der Bp Java sein, denke ich. Ich habe einiges über JNI gefunden, aber unvollständig. Ich muss JNI in Bn verwenden?

Außerdem sollte ein Rückrufmechanismus (sporadisches Ereignis vom Dienst zu einer bestimmten Client-Methode) verfügbar sein. Ich habe es in nativ gemacht.

+0

Ich habe es geschafft, einen einfachen Anruf mit dem Beispiel von hier https://github.com/cloudchou/NativeBinderJavaClientDemo/blob/master/FClient/src/com/cloud/test/CloudManagerProxy.java Callbacks von nativen zu führen JNI und die Übertragung komplexer Datenstrukturen bleiben ein Thema. – Cumatru

Antwort

0

geht hier meine erste Antwort immer ...

Wie Cumatru erwähnt habe ich auch https://github.com/cloudchou/NativeBinderJavaClientDemo.

Ich habe den ganzen Prozess noch nicht vollständig verstanden, aber zumindest funktioniert es und es ist eine Möglichkeit, mit einem ziemlich "einfachen" Beispiel voranzukommen. Ich bin auf einer sehr einfachen Android-Ebene, also bitte mit mir blank und helfen, die Antwort zu verbessern, in welcher Art und Weise Sie möchten.

Es scheint drei Teile zu geben: 1. Ein Server-Prozess in C++ läuft nativ. 2. Ein Android-Client-Anwendung. 3. Ein einfacher Java-Client, der in eine .jar-Datei eingebaut wird.

Keine Änderung am Code scheint notwendig zu sein, zumindest für den einfachen Java-Client und den C++ - Server.

  • Erstellen und schieben Sie die Server-Anwendung auf Ihr Ziel. Führen Sie es in einer AdB-Shell aus.
  • Bauen und drücken Sie den Java-Client (.jar-Datei), die so genannte FClient, zu Ihrem Ziel in/system/framework/
  • Führen Sie das Java-Client der FClient-Skript mit
  • Ein Zusatz wird gemacht werden auf den zwei Ganzzahlen gesendet von dem Client und antwortete zurück auf den Server.

Hoffentlich funktioniert es auch für Sie.