转载请注明出处: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 (这个过程也是有点长~)

更多相关文章

  1. android eclipse 真机调试
  2. Android之NDK开发详解
  3. android SDK应用
  4. 【摘录】Google Android操作系统内核编译图文教程
  5. 在电脑上pc端运行android安卓模拟器图...
  6. Android和Android(安卓)Linux kernel源码获取
  7. 基于Win10、Cordova9.0.0的Android开发环境配置
  8. Android之NDK开发
  9. android 隐藏API 在源码下编译报错cannot find symbol symbol

随机推荐

  1. Android Studio主题设置
  2. 我的Android 4 学习系列之开始入手:配置开
  3. 初学Android快速上手经验(自我小结)
  4. 像SpringMVC一样在Android上做Web开发
  5. 如何从云端推送消息到手机 (Android(安卓
  6. Android(安卓)悬浮窗权限各机型各系统适
  7. Android系列之Android系列之如何成为Andr
  8. RN系列:RN使用Android原生控件或自定义组
  9. 个人开发者做一款Android(安卓)App,androi
  10. 关于android常用的按下高亮的展示