(转)android 编译单个模块
2012-07-31 15:51 ...平..淡... 阅读(197) 评论(0) 编辑 收藏 举报android中的一个应用程序可以单独编译,编译后要重新生成system.img
在源码目录下执行以下脚本
. build/envsetup.sh (.后面有空格)
就多出一些命令:
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the modules in the current directory.
- mmm: Builds all of the modules in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.
可以加--help查看用法
我们可以通过mm在当前目录模块下进行编译,如编译联系人:
packages/apps/Contacts/ #mm
我们可以使用mmm来编译指定目录的模块,如编译联系人:
# mmm packages/apps/Contacts/
or # make Contacts
编完之后生成两个文件:(应用本身和测试应用)
out/target/product/generic/data/app/ContactsTests.apk
out/target/product/generic/system/app/ Contacts.apk
可以使用以下命令来重新生成system.img
$ make snod
生成成功后,再重新运行模拟器加载使用:
$ emulator -system system.img -data userdata.img -ramdisk ramdisk.img