android在源码下编译
第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命令,经过漫长的等待之后,就可以得到Android系统镜像system.img了。以后如果我们修改了Android源代码中的某个模块或者在Android源代码工程新增一个自己的模块,是不是还是执行make命令呢?答案是否定的,Google为我们准备了另外的命令来支持编译单独的模块,以及重新打包system.img的命令。在继续学习Android源代码之前,就让我们先来看看这个命令吧。
一. 首先在Android源代码目录下的build目录下,有个脚本文件envsetup.sh,执行这个脚本文件后,就可以获得一些有用的工具: USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh 注意,这是一个source命令,执行之后,就会有一些额外的命令可以使用: - croot: Changes directory to the top of the tree. - m: Makes from the top of the tree. - mm: Builds all of the moles in the current directory. - mmm: Builds all of the moles 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来查看,这里我们只关注mmm命令,也就是可以用它来编译指定目录的所有模块,通常这个目录只包含一个模块。
二. 使用mmm命令来编译指定的模块,例如Email应用程序: USER-NAME@MACHINE-NAME:~/Android$ mmm packages/apps/Email/ 编译完成之后,就可以在out/target/proct/generic/system/app目录下看到Email.apk文件了。Android系统自带的App都放在这具目录下。另外,Android系统的一些可执行文件,例如C编译的可执行文件,放在out/target/proct/generic/system/bin目录下,动态链接库文件放在out/target/proct/generic/system/lib目录下,out/target/proct/generic/system/lib/hw目录存放的是硬件抽象层(HAL)接口文件。
三. 编译好模块后,还要重新打包一下system.img文件,这样我们把system.img运行在模拟器上时,就可以看到我们的程序了。 USER-NAME@MACHINE-NAME:~/Android$ make snod
四. 参照Ubuntu上下载、编译和安装Android最新源代码一文介绍的方法运行模拟器: USER-NAME@MACHINE-NAME:~/Android$ emulator 这样一切就搞定了。
B. 最简最全,Android版Chromium源码下载+编译指南
Android版Chromium源码下载与编译指南:
一、硬件和软件准备
- 硬件:推荐使用Ubuntu或基于Ubuntu的Linux发行版,确保PC硬件资源足够。
- 软件:确保已安装Python和git。
二、网络环境
- 确保您的网络环境可以科学上网,以便访问谷歌的cs.chromium.org在线阅读源码。
三、设置depot_tools
- 通过git下载depot_tools,并将其添加到PATH环境变量。
- depot_tools中的fetch和gclient是常用的核心工具。
四、下载完整代码
- 创建一个src目录,并在其中使用fetch命令获取Android版本所需的代码。
- 若只想获取最新版本,可添加–nohistory参数。
- fetch命令可能会生成.gclient文件和src目录,多次运行以应对断点。
五、安装依赖和工具链
- 进入src目录执行脚本,可能需要切换国内apt源以提升下载速度。
- 使用gclient执行钩子函数,下载工具链并配置。
六、代码同步与编译
- 定期通过gclient命令保持代码同步。
- 配置编译选项时,关注Ninja编译器和args.gn文件。
- 根据内存调整并行任务数,使用gn clean命令清理旧的.ninja文件。
七、导入到Android Studio
- 将Chromium仓库导入到Android Studio中,以便更方便地浏览和调试C++和Java代码。
八、启动与调试
- 通过特定命令启动Chromium并进行调试。
九、附录
- gclient的基本用法和sync命令的其他选项可参考附录内容。
按照以上步骤,您应该能够成功下载并编译Android版的Chromium源码。请注意,编译过程中可能会遇到各种问题,建议详细阅读相关文档和社区支持,以便及时解决。