2011-04-26 26 views
1

有一點在Android2.2的源代碼經過摸索,我結識Android框架可與大量的寫在.cpp的IPC機制,如CameraService,MediaService等的.cpp中使用IPC的Android中

我也看到許多關鍵類驅動這些IPC機制,如IInterface,BpInterface,BnInterface,Binder,IBinder,RefBase和許多其他...

我現在想寫我的IPC服務在cpp在Java中使用AIDL),不幸的是,我找不到任何有用的資源(文章,教程,書籍等),詳細地使用這些類

任何精通這方面的人都可以給我點子嗎?

謝謝!

+1

這實際上會很困難 - 不僅底層調用的格式會發生變化,而且沒有明確的機制讓內核中的Binder驅動程序無特權進程註冊。通常,你的dalvik繼承了zygote的註冊,並有必要的綁定線程來管理它。如果您的本機代碼嘗試通過綁定器註冊來引導其他操作,那麼您可能很容易混淆了達爾維克的綁定器線程。 – 2011-04-26 16:44:10

回答

0

基本上沒有這些文件,因爲它們不是公共SDK/NDK的一部分。如果你在這個層面工作,你正在開發平臺;該文檔大部分是平臺的其餘部分以及您正在使用的東西的源代碼。

您會發現這些lot比SDK中的Binder API更粗糙。例如,aidl目前無法生成C++接口,因此您必須手動編寫所有接口存根。

0

爲什麼在Android SDK爲您提供所有需要的時候使用C++,並將其封裝在獨立於設備的包中? Android SDK是Java,如果你想使用C++,你將會長期使用C++。如果你想要硬件訪問。

如果您真的想調查此問題,請查看Native Development Kit

+1

顯而易見的答案是,爲什麼要跳過將事情傳遞給達爾維克的開銷,只讓它將它們傳遞迴本地代碼。但ndk並不真的支持這一點。 – 2011-04-26 16:45:25

+1

嘿,史蒂夫,SDK和NDK只用於應用程序開發,我將Anroid移植到我的設備 – user718146 2011-04-27 00:54:26

+0

同意。阿法可以看到谷歌已經刪除了平臺指南,這是你需要的。 – 2011-04-27 10:49:59