如果仅仅只是修改Android源代码中的一个很小的地方,是否需要编译整个Android系统呢?
可以用mmm命令进行模块编译来解决。
1. 在进行模块编译之前,必须完成整体编译,否则不能成功编译需要单个编译的模块。
2. 两种模块编译方式:
<1>在Android根目录下直接执行mmm module_path
<2>在Android根目录下先运行source build/envsetup.sh加载环境变量,然后进入模块代码所在的目录,执行mm。
无论采用上述两种方法中的哪种方法,编译成功后,均有如下类似的日志:
Install:out/target/product/**************
如果提示找不到命令mm或者mmm,则先执行source build/envsetup.sh。
3. 建议使用mmm module_path方式编译模块,如果使用mm方式编译,就会删除system.img、ramdisk.img、userdata.img等IMG镜像文件,之后还要重新make编译全部代码生成这些镜像文件,非常耗时。
4. 修改android的系统模块后, 需要重新生成system.img, 以前我用make systemimage,但这个过程太慢了,很烦人。于是通过make输出的信息, 找到一个比较快的方法,只编译模块和生成system.img,省去其它过程,重新生成system.img快了不少。
out/host/linux-x86/bin/mkyaffs2image -f out/target/product/generic/system out/target/product/generic/system.img
5. 安装模块,system不可写:mount -o remount rw system //system目录可以读写了。