在MAC上下载和编译android源码
来源:互联网 发布:会员积分软件 编辑:程序博客网 时间:2024/06/07 04:51
在MAC上下载和编译android源码
打开磁盘工具,文件,新建映像,如图所示。
- cd MacPorts-2.3.4/
- ./configure
- make
- sudo make install
3.修改Mac默认的最大可同时打开文件数
在~/.bash_profile中增加以下语句,让同时打开文件数增加到1024.
ulimit -S -n 1024
4. 下载Mac xcode 开发工具,用最新版吧。
5.配置java环境
jdk1.6下载
jdk1.7下载
jdk1.8下载
在~/.bash_profile文件中配置java环境中增加以下语句
vim编辑器里面的内容如下:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH:
export JAVA_HOME
export CLASSPATH
export PATH
二、下载android 源码。
Android系统源码,同步官方无任何改动
为了减小源码包体积,删掉了.repo文件夹,对编译无影响.采用7z高比率压缩
下载地址(长期有效):
http://pan.baidu.com/s/1ngsZs
三.源码编译
- 终端输入
source build/envsetup.sh
- 设置编译目标
lunch aosp_arm-eng
- 开始编译
make -j8
或make -j4
或make -j16
,取决于你的CPU的线程数。 如果一切顺利的化,在几个小时之后,便可以编译完成.看到### make completed successfully (01:18:45(hh:mm:ss)) ###
表示你编译成功了.
四、运行模拟器
1.在编译完成之后,就可以通过以下命令运行Android虚拟机了,命令如下:
- source build/envsetup.sh
- lunch(选择刚才你设置的目标版本,比如这里了我选择的是1)
- emulator
2.如果你是在编译完后立刻运行虚拟机,由于我们之前已经执行过source及lunch命令了,因此现在你只需要执行命令就可以运行虚拟机:
emulator
五、源码编译问题。
1.在经过漫长的时间后,笔者终于把android源码下载下来。在编译前,请确保你的上述环境都搭建完成。执行“ make clobber”检测全局环境是否搭建完成。如果为搭建完成,会给出相应的提示。否则会出现以下的错误:异常1:build/core/config.mk:600: Error: could not find jdk tools.jar at /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/../lib/tools.jar, please check if your JDK was installed correctly. Stop.<br/>
原因:系统没有找到可对应的jdk版本。
异常2:
Checking build tools versions…
build/core/main.mk:117: *
build/core/main.mk:118: You are building on a case-insensitive filesystem.
build/core/main.mk:119: Please move your source tree to a case-sensitive filesystem.
build/core/main.mk:120: **
build/core/main.mk:121: * Case-insensitive filesystems not supported. Stop.<br/>
原因:makefile无法找到Mac osx扩展(区分大小写)的分区。
2.报错 Unsupported curl, please use a curl not based on SecureTransport
无法启动 Jack server,完整报错信息:
FAILED: /bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar 2>&1 || (exit 0) ) && (JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8 -XX:+TieredCompilation\" prebuilts/sdk/tools/jack-admin start-server 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update server prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar 4.8.ALPHA 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-2.28.RELEASE.jar 2.28.RELEASE || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-3.36.CANDIDATE.jar 3.36.CANDIDATE || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-4.7.BETA.jar 4.7.BETA || exit 47 )"Unsupported curl, please use a curl not based on SecureTransportJack server installation not foundUnsupported curl, please use a curl not based on SecureTransportUnsupported curl, please use a curl not based on SecureTransport
这是因为 cURL 版本和 Jack 工具链不兼容,在 这里 找到解决办法,brew install curl --with-openssl
来重新安装一个基于 OpenSSL 的 cURL,并修改环境变量以覆盖系统自带的版本:export PATH=$(brew --prefix curl)/bin:$PATH
。
3.内存溢出
- 1
- 1
修改Jack的配置文件prebuilts/sdk/tools/jack-admin
,将
- 1
- 1
修改为
- 1
- 1
然后在终端输入
- 1
- 1
重新编译时会重新启动jack server。
继续编译make -j8。
4. 其它关于 Jack server 的错误
具体错误信息没有记下来,总之有时候会因为其它原因 Jack server 启动不了,一种可能性是因为已存在 ~/.jack-server
,把它删掉,并运行 jack-admin kill-server
杀掉进程(如果它确实在运行的话)。
5.磁盘空间不够
官网说 25GB 就够了,但其实远远不够,建议分 100GB。
- 在MAC上下载和编译android源码
- Android 在ubuntu上下载和编译系统源码
- MAC上配置android系统编译环境、下载android系统源码和编译
- 在ubuntu 上下载 编译android 源码
- mac 上的android源码下载编译查看
- Mac上下载编译Android 6.0源码详细记录
- mac 下载编译Android源码
- ubuntu12.04上Android 4.2源码的下载和编译
- Mac下载并编译Android源码
- Android 源码下载和编译
- Android 源码下载和编译
- Android源码下载和编译
- Android源码下载和编译
- Android源码下载和编译
- android源码下载和编译
- Android源码下载和编译
- android 源码下载和编译
- 在Ubuntu上下载、编译和安装Android最新源代码
- 一只小蜜蜂hdu2044
- 树重心分解,求点对。
- background-size兼容
- 【类反射】类的解剖(获取类的定义信息)
- 由自动装箱和拆箱引发我看Integer源码
- 在MAC上下载和编译android源码
- 写给初学者18_android_四大组件_Service
- 动态规划练习29:合唱队形
- mac 之 iTerm
- 检测TCP网络断开的几种情况
- 简记tp的一个小知识点
- Spring--IoC--基于XML的DI-为应用指定多个配置文件-平等关系
- 获取全局Context
- (转)WinForm实现在服务器端创建文件夹