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依次在目录/system/lib /hw和/vendor/lib/hw中查找一个名称为"<MODULE_ID>.variant.so"的文件,其 中,<MODULE_ID>是一个模块ID

hw_get_module()函数利用HAL层注册信息id,获取相应的模块。
hw_get_module_by_class()函数利用HAL层注册信息id和name,获取相应的模块,主要用于id相同、name不同,即获取相同功能但厂家不同的硬件库。

Android 新增外设Service添加供app使用相关推荐

  1. Android framwork service添加(manager 远程调service,service jni调native code)

    在平常android应用开发中,多数只是调framwork中的API进行application layer的coding,而在系统开发中可能会自己添加系统服务: 系统服务如任何添加,服务如何调nati ...

  2. Android P HAL层添加HIDL实例(详细实现步骤)

    Android P HAL层添加HIDL实例 本文是参照 https://www.jianshu.com/p/b80865c61d8e 教程介绍实现,原理请参考原作者. 本文将介绍如何在P OS上添加 ...

  3. Android 服务类Service 的详细学习

    http://blog.csdn.net/vipzjyno1/article/details/26004831 Android服务类Service学习四大组建 目录(?)[+] 什么是服务 服务有什么 ...

  4. Android -窗口小部件开发(App Widgets) 3部分

    原文地址:http://blog.csdn.net/iefreer/article/details/4626274. (一) 应用程序窗口小部件App Widgets 应用程序窗口小部件(Widget ...

  5. 【Android】Java多功能通讯录APP项目设计

    ❥ 每每学习一门课程,都少不了一门课设布置下来 ❥<移动互联开发>课开了8天,要设计一款App,果然大学即自学,而且一学期好几个 (555 ❥ 下面把最近开发的Android Studio ...

  6. Android 10 HAL 层添加HIDL实现过程

    本文以跑步机为假想场景介绍如何在Android Q(10)上添加HIDL,内容涉及HAL.HIDL进程间通讯.多线程以及串口操作,涵盖了标准的Android硬件服务的主要技术.编写时参考了两篇博客(见 ...

  7. android viewpager动态加载页面,Android viewpager中动态添加view并实现伪无限循环的方法...

    本文实例讲述了Android viewpager中动态添加view并实现伪无限循环的方法.分享给大家供大家参考,具体如下: viewpager的使用,大家都熟悉,它可以实现页面之间左右滑动的切换,这里 ...

  8. android 强制退出程序,Android 强制且彻底的退出app

    方法1.使用MyApplication.java文件代码如下: package com.ss.zshcloud.utils; import android.app.Activity; import a ...

  9. Android 9 导航栏添加截图按钮

    Android 9 导航栏添加截图按钮 功能:Android 系统底部导航栏(HOME\BACK)位置添加截图按钮,系统设置界面添加截图开关 主要修改工程有SystemUI 和 Settings 注意 ...

最新文章

  1. MySQL xtrabackup之--databases 勿手贱
  2. 【干货】移动互联网时代的零售店面转型之道
  3. 【docker常用镜像命令总结,持续更新中... 建议收藏!】
  4. C# 汉字转拼音(全拼)
  5. CentOS7 编译安装golang和rpm安装golang
  6. 【NOI2001】炮兵阵地
  7. golang 复制对象的正确做法
  8. 前端如何实现网络速度测试功能_前端组件单元测试
  9. Shell——变量详解及注意点
  10. Visual Studio、.NET Framework、VC++、C#各个版本的对应关系
  11. VS2010复制项目
  12. 多个安卓设备投屏到电脑_安卓手机投屏到电脑上的三种方法
  13. eclipse 中使用字符流复制文件乱码解决
  14. 【网络编程--UDP、TCP】
  15. 揭秘如何搭建梦幻西游社交框架
  16. meanshift聚类算法跟踪原理
  17. rust大量科技零件_20世纪的黑科技有上万个零件,复杂程度10个人9个看不懂!
  18. 提高软件开发效率的方法
  19. Python每日一练——第1天:水仙花数
  20. Skywalking极简入门

热门文章

  1. 【ICCV2019 论文列表】出炉论文持续更新
  2. 与airpods媲美的无线耳机推荐
  3. RTCP Interarrival jitter
  4. webrtc丢包率与jitter计算
  5. 安卓内存使用情况监控,剖析Android开发未来的出路在哪里,薪资翻倍
  6. 使用Flexible实现手淘H5页面的终端适配
  7. python绘制蟒蛇,绘制五彩蟒蛇
  8. WEB在线预览PDF,WORD方案总结
  9. 视频教程-实用通俗易懂的设计模式-软件设计
  10. Softer-NMS