NEXUS 5为驱动硬件抽象层添加服务

接上面的文章,这篇是为抽象层添加服务,同样是罗老师的代码。
先定义硬件访问服务接口,如图所示。
NEXUS 5为驱动硬件抽象层添加服务
添加配置项。
NEXUS 5为驱动硬件抽象层添加服务
NEXUS 5为驱动硬件抽象层添加服务

初始化环境。

source build/envsetup.sh
export PATH=/home/haidragon/Desktop/java-7-openjdk-amd64/bin/:$PATH
lunch 

然后编译服务接口。

mmm ./frameworks/base/

NEXUS 5为驱动硬件抽象层添加服务
NEXUS 5为驱动硬件抽象层添加服务
查看framework.jar
NEXUS 5为驱动硬件抽象层添加服务
实现硬件访问服务,这里路径不太一样但是我们大概看下就知道话哪里好。同时罗老师也给了提示。他书中源码多给了一个SystemServer.java 目录也和源码对应了起来,其实这个就是为了告诉我们和他在同一个目录下。
就放到这里吧。
NEXUS 5为驱动硬件抽象层添加服务
NEXUS 5为驱动硬件抽象层添加服务
然而把他编译进去。

mmm ./frameworks/base/services/core/

NEXUS 5为驱动硬件抽象层添加服务
NEXUS 5为驱动硬件抽象层添加服务
NEXUS 5为驱动硬件抽象层添加服务
但是最终是要打包到services.jar所有要再输入:

mmm ./frameworks/base/services/

NEXUS 5为驱动硬件抽象层添加服务
NEXUS 5为驱动硬件抽象层添加服务
现在实现硬件访问服务的JNI方法。
NEXUS 5为驱动硬件抽象层添加服务

修改onload.cpp
NEXUS 5为驱动硬件抽象层添加服务
修改配置
NEXUS 5为驱动硬件抽象层添加服务
编译:(一层层的编译吧 有android.mk目录的就不要偷懒)

mmm ./frameworks/base/services/core/jni/
mmm ./frameworks/base/services/core/
mmm ./frameworks/base/services/
mmm ./frameworks/base/

同样要修改源码前面加个A
NEXUS 5为驱动硬件抽象层添加服务
NEXUS 5为驱动硬件抽象层添加服务
检查
NEXUS 5为驱动硬件抽象层添加服务
最后是更新system.img

make snod

NEXUS 5为驱动硬件抽象层添加服务
刷入手机就行了。

猜你喜欢

转载自blog.51cto.com/haidragon/2409664
今日推荐