转载请注明出处: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; }

基于Android 5.0的源码编译过程_第1张图片

二: 需要安装的工具

(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

基于Android 5.0的源码编译过程_第2张图片

则表明你已安装过git (可以忽略此错误,继续往下执行)
(4) 修改文件描述符限制
修改.bash_profile
# set the number of open files to be 1024
ulimit -S -n 1024
基于Android 5.0的源码编译过程_第3张图片

三: 下载源码 (此处可参考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
基于Android 5.0的源码编译过程_第4张图片

(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的提示,说明初始化成功
基于Android 5.0的源码编译过程_第5张图片

(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

基于Android 5.0的源码编译过程_第6张图片

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

基于Android 5.0的源码编译过程_第7张图片

则表明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就行了

基于Android 5.0的源码编译过程_第8张图片

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

更多相关文章

  1. Android和Android Linux kernel源码获取
  2. Android 虚化图片的方法
  3. android 显示Gift图片
  4. android imageview图片显示出来
  5. Ubuntu 64位编译 android 4.0源码
  6. Android kswapd-->lowmemorykiller启动和扫描过程
  7. Android 4.0 gallery2 生成video thumbnail的过程

随机推荐

  1. Android(安卓)内容提供器---内容提供器基
  2. Android获取双卡双待手机的SIM卡信息示例
  3. 微信消息中的电话超链接(ios vs Android)
  4. Firefox常见问题总结
  5. Android个推php后台开发
  6. Android之Handling Runtime Changes(处理
  7. Android(安卓)studio更新版本后Gradle sy
  8. Android重力感应Demo
  9. Android(安卓)利用Hierarchy Viewer工具
  10. android App集成支付宝