Se si sta creando un'applicazione Android normale utilizzando NDK, non è possibile utilizzare Binder perché non fa parte delle API NDK.
Cerca nei documenti NDK/STABLE-APIS.html per l'elenco completo di API stabili e questo thread per un commento esplicito di David Turner (manutentore NDK) che Binder non è un'API supportata.
https://groups.google.com/forum/?fromgroups=#!topic/android-ndk/1QmVRrNckfM
Le opzioni disponibili sono:
- Usa qualche altra forma di IPC in codice nativo - per esempio, un socket di dominio UNIX
- Farlo in Java, utilizzando le normali
Service
e strutture AIDL dell'SDK di Android. Se desideri combinare questo codice con il codice nativo potresti essere in grado di chiamare a Java dal codice nativo usando JNI.
- (Non consigliato) Copia le librerie e le intestazioni pertinenti da un progetto Android Open-Source; costruire nel tuo progetto NDK; e utilizzare le API. Tuttavia questo non è ufficialmente supportato ed è estremamente probabile che interrompa la tua applicazione nelle versioni future perché Google non ha l'obbligo di mantenere la compatibilità in tali librerie (e spesso non lo fa). È anche molto difficile, dal momento che è necessario trovare un modo per registrare il servizio in modo che il client possa trovarlo.
fonte
2013-01-11 10:31:45
Non riesco a trovare libbinder.so per il collegamento? Come l'hai risolto? – Jailbroken
@myCodeHurts: libbinder.so è disponibile durante la creazione di AOSP. Non penso che sia disponibile in NDK. – VinayChoudhary99