android源码2.3.7开发环境与编译实战(ubuntu10.04下)
16lz
2021-01-22
网上有这样或那样的教程,看糊涂了吧。在这里总结一下。
其实最标准的官方文档在这里 http://source.android.com/source/initializing.html
平台环境:
1. 主机windows xp sp3
2. 虚拟机virtualbox 4.2.6
3. ubuntu10.04LTS 64位版 (2.3.X以上源码必须用64位编译,否则可能遇到各种奇怪问题)
学习时,为什么选择下载2.3.7,而不是4.0.4或4.2.1?因为2.3的书籍和资料多,而且现在市场占有率大约在50%左右。源码比4.0以上小一些,容易下载。
[第1步]:搭建环境
1. 更改源并更新ubuntu系统包.
进入update manager,改源为中国的建议使用 北京交通大学的 mirror.bjtu.edu.cn/ubuntu 或163的,速度比较快。
然后安装更新,但是别升级操作系统(比如提示你升级ubuntu12.04,你可不要干)。
2. 继续添加源
其实最标准的官方文档在这里 http://source.android.com/source/initializing.html
平台环境:
1. 主机windows xp sp3
2. 虚拟机virtualbox 4.2.6
3. ubuntu10.04LTS 64位版 (2.3.X以上源码必须用64位编译,否则可能遇到各种奇怪问题)
学习时,为什么选择下载2.3.7,而不是4.0.4或4.2.1?因为2.3的书籍和资料多,而且现在市场占有率大约在50%左右。源码比4.0以上小一些,容易下载。
[第1步]:搭建环境
1. 更改源并更新ubuntu系统包.
进入update manager,改源为中国的建议使用 北京交通大学的 mirror.bjtu.edu.cn/ubuntu 或163的,速度比较快。
然后安装更新,但是别升级操作系统(比如提示你升级ubuntu12.04,你可不要干)。
2. 继续添加源
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse"
$ sudo apt-get update
3. 装JAVASDK
2.3.x以上必须装JAVA6 ,
$ sudo apt-get install sun-java6-jdk
4. 继续装依赖包$ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \ x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \ libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \ libxml2-utils xsltproc
改~/.bashrc
5. 为编译提前设好缓存,以加快编译速度并设50GB缓存
export USE_CCACHE=1
prebuilts/misc/linux-x86/ccache/ccache -M 50G
[第2步 下载源码]
这一部分网上讲的太多了,无外乎以下几个要点:
下载并设定repo目录:
$ mkdir ~/bin$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo 下载repo这个脚本$ chmod a+x ~/bin/repo 增加执行权限
是
$ mkdir ~/android/src 我们在这里设为当前用户目录android下的src目录来下载源码$ cd
~/android/src
下载源码初始化本地repo$ repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.7_r1
需要一些时间
下载源码
$ repo sync 这是个漫长的过程,一般要3-10小时不等。
[第3步 编译源码]
1. 设定环境$ source build/envsetup.sh
2. 设置编译对象,以下full是全版本的意思,eng是engineering就是工程版本,便于调试(也可以只运行lunch来选择版本,芯片方案厂家的BSP会提示更多选项)$ lunch full-eng
我们来看解释 full 的意思是 fully configured with all languages, apps, input methods
3. 激动人心的编译代码过程!
make 或 make -j2(双核CPU) 或 make -j4(四核CPU)
i5 2440双核四线程,编译用了2个小时
4. 一些环境变量的设置
同样在~/.bashrc最后,增加
export ANDROID_PRODUCT_OUT=~/android/src/out/target/product/generic
ANDROID_PRODUCT_OUT_BIN=~/android/src/out/host/linux-x86/bin
export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};
export ANDROID_SWT=~/android/src/out/host/linux-x86/framework
[4. 运行模拟器]
cd ~/android/src/out/target/product/generic
emulator -system system.img -data userdata.img -ramdisk ramdisk.img&
好了,熟悉的android模拟器运行了!激动不?
更多相关文章
- [RxJava学习]observeOn源码分析
- Android源码在UBUNTU编译全过程
- Android编程学习笔记 之 ListActivity源码详解
- Android6.0的phone应用源码分析(5)——RIL层分析
- 简单分析Android中添加shortcut方面的源码
- 虎扑体育客户端zen源码学习笔记
- 11、ffmpeg学习笔记—ffmpeg源码编译-Android
- Android短彩信源码解析-短信发送流程(三)
- Android Handler处理机制 ( 一 )(图+源码分析)——Handler,Message