Android 源码编译
Google官方资料参考 http://source.android.com/source/building-running.html
1. 环境设置,
下载好源码后,进入源码目录,即之前执行 repo sync的路径下,用下面两个命令之一,第二个命令简短一点,两个命令效果没区别
$ source build/envsetup.sh
$ . build/envsetup.sh
2. 选择编译的目标,用lunch指令,参数用来指定目标配置
$ lunch full-eng
参数形式是 BUILD-BUILDTYPE,其中 BUILD 是表明要合并的特殊特征的code name,下面是部分参数:
Build name | Device | Notes |
---|---|---|
full | emulator | fully configured with all languages, apps, input methods |
full_maguro | maguro | full build running on Galaxy Nexus GSM/HSPA+ ("maguro") |
full_panda | panda | full build running on PandaBoard ("panda") |
BUILDTYPE 可选下面参数:
Buildtype | Use |
---|---|
user | 限制访问;适合作为产品 |
userdebug | 类似 "user" 但可以有 root 访问权限和可调试;适用于调试设备 |
eng | 带有附加调试工具的开发配置 |
新手直接输入lunch,不带参数,会输出可选参数供你选择,类似下面这样
1. aosp_arm-eng
2. aosp_x86-eng
3. aosp_mips-eng
4. vbox_x86-eng
5. full_maguro-userdebug
6. full_toroplus-userdebug
7. full_manta-userdebug
8. full_toro-userdebug
9. full_mako-userdebug
10. full_panda-userdebug
11. mini_mips-userdebug
12. mini_armv7a_neon-userdebug
13. mini_x86-userdebug
14. full_arndale-userdebug
15. aosp_flo-userdebug
16. full_tilapia-userdebug
17. full_grouper-userdebug
18. aosp_deb-userdebug
3. 开始编译,make -j4
参数 j 后数字可以用你系统支持线程数的1-2倍的值,比如你用双至强 E5520 (2个 CPU, 每个CPU 4核8线程),那最快的编译方式应该用参数 -j16或-j32。
执行后,报错 :/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-gcc: 无法执行二进制文件
查了很久,确定是没有使用 64位Ubuntu造成,bt下载一个镜像,做个安装启动U盘搞定,地址很多,这儿推荐一个拥有很多bt资源的网址。
安装后启动时发生了一点儿GRUB 错误,注意查看主板BIOS启动项,我那个华硕主板BIOS默认是WINDOWS系统方式,这造成了GRUB Error22。重新设置后可以正常启动。
相关文章
- Android系统加载Apk文件的时机和流程分析(1)--Android 4.4.4 r1的源码
- IDEA Android用户登录页面、登录验证、页面跳转演示示例全部源码
- Android TabLayout 使用进阶(含源码)
- 学习Android Framework能否成功涨薪?字节架构师来告诉你
- 优秀Android开发源码合集(附解析)程序员进阶宝典
- Android 安卓真机调试 出现Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE....
- 《深入解析Android 虚拟机》——第1章,第1.3节编译Android源码
- 《Android 源码设计模式解析与实战》——第1章,第1.3节构建扩展性更好的系统——里氏替换原则
- 《Android 源码设计模式解析与实战》——第2章,第2.2节单例模式的定义
- 《Android 应用案例开发大全(第3版)》——第1.4节DDMS的灵活应用
- 《深入解析Android 虚拟机》——导读
- Android BLE 总结-源码篇(BluetoothLeAdvertiser)
- android CoordinatorLayout使用
- Android 带你从源码的角度解析Scroller的滚动实现原理
- Android打包常见错误之Export aborted because fatal lint errors were found
- Android系统原理与源码分析(1):利用Java反射技术阻止通过按钮关闭对话框
- android源码学习-Looper机制
- android源码学习-源码学习目录推荐
- Android 网络框架之okhttp源码解析
- android 图片选择,可选择图片,视频,音频,文件,方便扩展
- Android谈的少了 谷歌移动重点转向应用和数字助手
- android学习-数据存储(一)-----SQLite源码分析
- 物联网平台搭建的全过程介绍(五)——基于阿里云物联网平台的Android聊天app源码
- android学习四(Activity的生命周期)