Android 新增外设Service添加供app使用
LED Service添加供app使用基本流程
1、需要添加文件在源碼中的位置
2、具體需要添加的代碼路徑:
Kernel:
Dts:
a、kernel/msm-4.4/arch/arm/boot/dts/qcom/xxxx-mtp.dtsi
b、?kernel/msm-4.4/arch/arm/boot/dts/qcom/xxxxx.dtsi
c、?kernel/msm-4.4/arch/arm/boot/dts/qcom/msm-xxxxxl.dtsi
由于控制4A紙、finger和身份證三盞LED燈都是掛載到gpio_B口下,所以需要通過msm-pmxxxxxI.dtsi實現dts的配置操作
Driver:
a、kernel/msm-4.4/drivers/leds/leds-a4Paper.c?
b、?kernel/msm-4.4/drivers/leds/leds-finger.c?
c、?kernel/msm-4.4/drivers/leds/leds-idCard.c
Hal:
a、hardware/libhardware/modules/led/led.c?
b、hardware/libhardware/modules/led/Android.bp?
c、hardware/libhardware/include/hardware/led.h?
其他還需要將新加的LED hal控制做相關的打包處理?build/make/target/product/full_base.mk和LED 節點文件的權限修改device/qcom/common/rootdir/etc/init.qcom.rc
Frameworks:
JNI:
a、frameworks/base/services/core/jni/com_android_server_LedService.cpp?
b、?frameworks/base/services/core/jni/onload.cpp
c、frameworks/base/services/core/jni/Android.bp
Jni的封裝添加
Service:
a、frameworks/base/core/java/android/app/LedManager.java?
b、frameworks/base/services/core/java/com/android/server/LedService.java?
為添加的service文件
c、frameworks/base/core/java/android/app/ILedService.aidl?
跨進程調用添加
d、frameworks/base/core/java/android/app/SystemServiceRegistry.java
e、?frameworks/base/core/java/android/content/Context.java
context上下文服務添加
3、代碼基本流程
hw_get_module()函數利用HAL層注冊信息id,獲取相應的模塊。
hw_get_module_by_class()函數利用HAL層注冊信息id和name,獲取相應的模塊,主要用于id相同、name不同,即獲取相同功能但廠家不同的硬件庫。
總結
以上是生活随笔為你收集整理的Android 新增外设Service添加供app使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win10 安装Visio2016和Of
- 下一篇: android sina oauth2.