这里主要是遇到两个问题:第一个是,自己编写的hal层源码怎么添加进Android的默认编译中去,也就是说在根目录执行make时,自己编写hal源码也会被编译。第二个问题是,编译完成后还要自动安装在指定的系统目录lib/hw下。
刚开始时不太了解,总是需要使用mmm来进行编译安装,但是打包之后再编译这是不现实的。为此需要添加到默认中去。
一般来说hal层所在的位置在hardware/libhardware/modules目录下。假如我写个led的hal层,那么在modules目录下建立一个led文件夹即可,在led文件夹添加代码和Android.mk。对于第一个问题的解决方法是,修改modules目录下的Android.mk文件,在hardware_modules变量中添加led文件夹的名字即可。这样在默认中就会自动编译这个led的文件了。
这样虽然可以编译了,但是却不会自动安装。那么安装这个要修改哪里呢,找了好久终于找到了,要修改device/samsung/smdkv210/device.mk这个文件中的PRODUCT_PACKAGES变量,在该文件的最后添加PRODUCT_PACKAGES += led.default这行代码即可。
有了以上两个修改,默认就会编译并且安装了,其他的也都类似了。
另外还有一个jni层的东西,这个修改添加的文件都是默认被编译安装的,只需要添加代码即可。