如何单独编译Android源代码中的模块
首先,在Android源代码目录下的构建目录中有一个脚本文件envsetup.sh。执行这个脚本文件后,您可以获得一些有用的工具:user-name @ machine-name:~/Android $。../build/envsetup.sh注意,这是一个源命令。在它被执行后,将有一些额外的命令要使用:-c root:将目录更改到树的顶部。-m:从树顶上制作。-嗯:建造所有的模块。在当前目录中。- mmm:在提供的目录中构建所有模块。- cgrep:所有本地C/ C++文件上的Greps。- jgrep:对所有本地Java文件执行grep。- resgrep:在所有本地res/*上执行Greps。xmlfiles。-godir:转到包含文件的目录。这些命令的具体用法可以通过在命令后添加-help来查看。在这里,我们只关注mmm命令,也就是说,我们可以使用它来编译指定目录中的所有模块。通常,该目录只包含一个模块。
2.使用mmm命令编译指定的模块,例如电子邮件应用程序:user-name @ machine-name:~/Android $ mmm packages/apps/Email/。编译后,您可以在out/target/product/generic/system/app目录中看到Email.apk文件。Android系统自带的应用程序都放在这个目录中。此外,Android系统的一些可执行文件(如由C编译的文件)放在out/target/product/generic/system/bin目录中,动态链接库文件放在out/target/product/generic/system/lib目录中,out/target/product/generic/system/lib/HW目录存储硬件抽象层(HAL)。
3.编译完模块后,重新打包system.img文件,这样当我们在模拟器上运行system.img时,就可以看到我们的程序了。用户名@机器名:~/Android$制作snod
4.按照文章《在Ubuntu上下载、编译并安装Android的最新源代码:user-name @ machine-name:~/Android $ emulator》中所述运行模拟器,一切都将完成。