檢視樣例地址:https://github.com/langxianwen/binder-demo
研究了binder服務的實現,想寫個binder樣例。
在網上和書上都看到有這類似的樣例,照著寫後。發現都不是自己想要的,不太符合原始碼的風格。就從原始碼的binder服務精簡了一個。
遇到的問題:
1 、frameworks/native/include/binder/IInterface.h:50: error: undefined reference to 'android::RefBase::~RefBase()'
原因:沒有加入僅僅加入了libbinder 庫。沒加入libutils庫,
2 、ITest.h TestService.h 標頭檔案放在哪裡,才幹包括。
一開是我是放在framework/av/include/media。
引用時僅僅需#include <media/ITest.h>就可以。
可是能不能放在自定義的隨意資料夾能?如:./test/include/test/ITest.h
#include "ITest.h" 編譯找不到標頭檔案。還須要在Android.mk指定標頭檔案路徑
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../include/test就可以。
3、我的樣例裡面列印log是用ALOGE等。有的程式碼庫中是LOGE
寫樣例心得:雖然幾行程式碼我也折騰來兩三天。看會的,永遠不一定就會了,動手才是應道理。
程式碼檢視地址:https://github.com/langxianwen/binder-demo
git路徑:git clone https://github.com/langxianwen/binder-demo.git