基于Android 5.0的源码编译过程

来源:互联网 发布:开淘宝店怎么找客户 编辑:程序博客网 时间:2024/05/16 09:07

转载请注明出处:http://blog.csdn.net/yianemail/article/details/51577665
Q1:编译源码带来什么好处?
显而易见,获取隐藏api,编译 Android 源码会让你对 Android 整体框架有更具体的宏观概念。
Q2:源码的概念是什么?
“源码” 概念意义上指的是google发布的基于linux内核的一套解决方案。
针对ARM平台的做的各种适合嵌入式设备的一套代码。

包括现在很多Android手机厂商,其实都是对源码做修改。从而定制自己的Android设备。

源码编译过程 (我是基于OS X 10.10.3)

一:
1,创建大小写敏感的磁盘镜像

hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/Android.dmg.sparsefile

硬盘本地目录下(~/)创建一个40G的sparsefile image,名字叫做Android,此虚拟硬盘支持大小写。
2,把分区挂载到.bash_profile(bash_profile文件主要是系统开机启动的配置)。

open .bash_profile

把以下命令放在.bash_profile
# mount the android file image
function mountAndroid { hdiutil attach ~/android.dmg.sparsefile -mountpoint /Volumes/android; }

这里写图片描述

二: 需要安装的工具

(1) 安装Xcode (建议安装最新版,但是有ox 版本限制)
各个版本xcode
http://blog.sina.com.cn/s/blog_4caf02490102vr4s.html
(2)安装MacPort,macports from macports.org (需要修改.bash_profile 文件,加入以下命令)
export PATH=/opt/local/bin:$PATH
(3) 通过MacPort安装make,Git,GPG

执行sudo port install gmake libsdl git-core gnupg
然后输入你的密码
注:若出现
Error: git-core has been replaced by git; please install that instead.
Error: org.macports.configure for port git-core returned: obsolete port
Please see the log file for port git-core for details:
/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_git-core/git-core/main.log
To report a bug, follow the instructions in the guide:
http://guide.macports.org/#project.tickets
Error: Processing of port git-core failed

这里写图片描述

则表明你已安装过git (可以忽略此错误,继续往下执行)
(4) 修改文件描述符限制
修改.bash_profile
# set the number of open files to be 1024
ulimit -S -n 1024
这里写图片描述

三: 下载源码 (此处可参考google)
http://source.android.com/source/downloading.html
(1) 创建目录~/bin
mkdir ~/bin
(2) 修改 .bash_profile
export PATH=~/bin:$PATH

(3) 安装repo 关于repo ,并修改权限
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
这里写图片描述

(4) 创建Android 源码文件夹
mkdir android_source
cd android_source
(5) 执行repo init

git config --global user.name "(本机git用户名)"git config --global user.email "(本机git邮箱)"repo init -u https://android.googlesource.com/platform/manifest

最后你会得到一个 repo has been initialized in /Users/luhuanju/android_source的提示,说明初始化成功
这里写图片描述

(6)下载源码
repo init -u git://Android.git.linaro.org/platform/manifest.git -b + (源码tag)
关于源码tag
比如我的5.0版本:
repo init -u git://Android.git.linaro.org/platform/manifest.git -b android-5.0.2_r1
(7) repo同步,在android_source目录下执行repo sync下载代码
~/repo sync
(过程超级长~)

四 :编译源码
(1)初始化编译环境
. build/envsetup.sh
(2)选择编译目标包
执行 lunch

这里写图片描述

如果是只执行模拟器 选择1即可
注:若出现
Can not find SDK 10.6 at /Developer/SDKs/MacOSX10.6.sdk
Don’t have a product spec for: ‘aosp_arm’

这里写图片描述

则表明xCode sdk版本不对应
(/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs)查看当前系统的SDK版本是多少。比如我的SDK版本是MacOSX10.11.sdk,接下来编辑build/core/combo/mac_version.mk中的mac_sdk_versions_supported所在的行添加10.10就行了

这里写图片描述

(3)编译
make j4 (这个过程也是有点长~)

0 0