Meine grundlegende Aufgabe besteht darin, einen nativen Dienst in Android zu erstellen und dann ein einfaches natives Programm zu schreiben, um es zu testen. Nehmen wir an, ich möchte einen einfachen Dienst schreiben, der mir eine Summe von 2 ganzen Zahlen zurückgibt. Ich muss Binder benutzen, um mit ihm vom Programm zu sprechen, ich habe versucht, herum zu googeln, aber ich kann ein präzises Beispiel nicht finden. Ich muss wissen, wie man einen nativen Service schafft und ihn im Programm und bei Bedarf auch in Java findet.
Die Lösung, die ich gefunden habe, ist die Verwendung der Bindemittel in nativen und verwenden Sie die
%Vor%und dann Bindemittel verwenden und folgenden auf der Client-Seite verwenden.
%Vor%Ich habe hier Beispiele gefunden, wie man das macht: Ссылка
Wenn Sie eine normale Android-Anwendung mit dem NDK erstellen, können Sie Binder nicht verwenden, da er nicht Teil der NDK-APIs ist.
In der NDK-Dokumentation / STABLE-APIS.html finden Sie die vollständige Liste der stabilen APIs und in diesem Thread einen expliziten Kommentar von David Turner (dem NDK-Betreuer), dass Binder keine unterstützte API ist.
Ihre Optionen sind:
Service
und AIDL des Android SDK verwenden. Wenn Sie dies mit nativem Code kombinieren möchten, können Sie Java möglicherweise mithilfe von JNI aus nativem Code aufrufen. Nach dem Studieren und Codieren von @ Android NDK habe ich festgestellt, dass die Binder-API NICHT in Android NDK verfügbar ist. Und selbst wenn Sie Android Open Source für den Aufruf der Binder API verwenden, erhalten Sie möglicherweise Berechtigung verweigert wegen der Binder-Sicherheitsprüfung.
Wenn ich dem Systemdienst einen Dienst hinzufügen möchte, benötige ich eine Benutzergruppe auf Systemebene. Die Detailcodes finden Sie Ссылка . Es enthält den Client und den Dienst von C und Java, Sie benötigen jedoch die Systemberechtigung.
Tags und Links android c++ android-service android-binder