android源码下载与编译过程记录

原创 2015年11月10日 18:27:47


参考:

https://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/


1、下载

参考了以下的下载失败重下载脚本:

[zzz@localhost android-src]$ cat myrepo.sh 
#!/bin/sh
repo sync
while [ $? -ne 0 ] 
do 
    echo "try repo sync again"
    repo sync
done
[zzz@localhost android-src]$ 


下班前开始跑,第二天就有了。


2、编译第一次直接进入下载的源代码目录,运行make,过了3个多小时后,报错:

[ 31% 9980/31772] host Java: bouncycastle-host (out/host/common/obj/JAVA_LIBRARIES/bouncycastle-host_intermediates/classes)
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
[ 31% 9983/31772] host Java: bouncycastle-bcpkix-host (out/host/common/obj/JAVA_LIBRARIES/bouncycastle-bcpkix-host_intermediates/classes)
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
[ 31% 9987/31772] Build: out/host/linux-x86/obj/EXECUTABLES/jack_intermediates/jack
Writing client settings in /home/gumh/.jack-settings
Installing jack server in "/home/gumh/.jack-server"
Launching Jack server java -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8 -XX:+TieredCompilation -cp /home/gumh/.jack-server/launcher.jar com.android.jack.launcher.ServerLauncher
[ 31% 10007/31772] host C++: zipalign <= build/tools/zipalign/ZipEntry.cpp
build/tools/zipalign/ZipEntry.cpp:145:52: warning: unused parameter 'pZipFile' [-Wunused-parameter]
status_t ZipEntry::initFromExternal(const ZipFile* pZipFile,
                                                   ^
build/tools/zipalign/ZipEntry.cpp:151:12: warning: destination for this 'memcpy' call is a pointer to dynamic class 'CentralDirEntry'; vtable pointer will be overwritten [-Wdynamic-class-memaccess]
    memcpy(&mCDE, &pEntry->mCDE, sizeof(mCDE));
    ~~~~~~ ^
build/tools/zipalign/ZipEntry.cpp:151:12: note: explicitly cast the pointer to silence this warning
    memcpy(&mCDE, &pEntry->mCDE, sizeof(mCDE));
           ^
           (void*)
2 warnings generated.
[ 31% 10012/31772] host C: libzopfli <= external/zopfli/src/zopfli/lz77.c
external/zopfli/src/zopfli/lz77.c:95:60: warning: unused parameter 'datasize' [-Wunused-parameter]
void ZopfliVerifyLenDist(const unsigned char* data, size_t datasize, size_t pos,
                                                           ^
1 warning generated.
[ 31% 10040/31772] Building with Jack: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex
FAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex.rsp
GC overhead limit exceeded
Try increasing heap size with java option '-Xmx<size>'
Warning: This may have produced partial or corrupted output.
ninja: build stopped: subcommand failed.

make: *** [ninja_wrapper] Error 1
[zzz@localhost android-src]$ 



//---2015-11-13--//

make之前还运行了下面的指令:

#source ./build/envsetup.sh

这个命令选择你的编译环境的硬件体系

#lunch

下面这个命令就开始编译了

#make


通过跟踪顶层makefile,找到有关jack的目录:prebuilts/sdk/tools,其中看到有个jack-admin,正是启动jack所在的shell。里面有个设置:

#
# Settings
#
JACK_HOME="${JACK_HOME:=$HOME/.jack-server}"
CLIENT_SETTING="${CLIENT_SETTING:=$HOME/.jack-settings}"
TMPDIR=${TMPDIR:=/tmp}
JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation}"


修改一下,增加-Xmx2048M:

#
# Settings
#
JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx:2048M}"

再次make,好像没起作用:

[  1% 296/20841] Build: out/host/linux...bj/EXECUTABLES/jack_intermediates/jack
Jack server already installed in "/home/gumh/.jack-server"
Launching Jack server java -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8 -XX:+TieredCompilation -cp /home/gumh/.jack-server/launcher.jar com.android.jack.launcher.ServerLauncher


找到jack-admin中的start-server语句,直接在里面增加:

 start-server)
    isServerRunning
    RUNNING=$?
    if [ "$RUNNING" = 0 ]; then
      echo "Server is already running"
    else
      echo "before to start-server,JACK_SERVER_VM_ARGUMENTS=" $JACK_SERVER_VM_ARGUMENTS
      JACK_SERVER_COMMAND="java -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS
-Xmx2048M -cp $LAUNCHER_JAR $LAUNCHER_NAME"
      echo "Launching Jack server" $JACK_SERVER_COMMAND
      (


再次执行make指令,这次ok了。

这里有一个问题没弄清楚:有时候执行make的时候,会自动启动jackserver,有时候又不会,会报错说server未启动,请用jack-admin start-server来启动的提示。


经过了4个多小时,终于完成了。

external/gtest/include/gtest/gtest_pred_impl.h:77:52: note: expanded from macro 'GTEST_ASSERT_'
  if (const ::testing::AssertionResult gtest_ar = (expression)) \
                                                   ^
1 warning generated.
[100% 20544/20544] host Executable: ne...t_test_osi_intermediates/net_test_osi)

查看一下:

[zzz@localhost android-src]$ ll out/target/product/generic/
total 1594800
-rw-rw-r--.  1 zzz zzz          7 Nov 14 11:27 android-info.txt
-rw-rw-r--.  1 zzz zzz         63 Nov 14 11:25 build_fingerprint.txt
drwxrwxr-x.  2 zzz zzz       4096 Nov 14 14:37 cache
-rw-r--r--.  1 zzz zzz   69206016 Nov 14 14:37 cache.img
-rw-rw-r--.  1 zzz zzz      72964 Nov 10 15:40 clean_steps.mk
drwxrwxr-x.  4 zzz zzz       4096 Nov 14 11:27 data
drwxrwxr-x.  3 zzz zzz       4096 Nov 14 12:02 dex_bootjars
drwxrwxr-x.  5 zzz zzz       4096 Nov 14 13:58 gen
-rw-rw-r--.  1 zzz zzz      72739 Nov 14 14:37 installed-files.txt
drwxrwxr-x. 12 zzz zzz       4096 Nov 14 14:36 obj
-rw-rw-r--.  1 zzz zzz        788 Nov 14 11:25 previous_build_config.mk
-rw-rw-r--.  1 zzz zzz    1244829 Nov 14 14:37 ramdisk.img
drwxrwxr-x.  3 zzz zzz       4096 Nov 14 11:27 recovery
drwxrwxr-x. 15 zzz zzz       4096 Nov 14 11:28 root
drwxrwxr-x.  6 zzz zzz       4096 Nov 10 17:57 symbols
drwxrwxr-x. 14 zzz zzz       4096 Nov 14 14:36 system
-rw-r--r--.  1 zzz zzz 1610612736 Nov 14 14:37 system.img
-rw-r--r--.  1 zzz zzz  576716800 Nov 14 14:37 userdata.img
[zzz@localhost android-src]$ 


这些应该如何测试呢?下面再补。


版权声明:本文为博主原创文章,欢迎转载!转载请写明原文链接出处!

Android7.0 JACK编译器不支持多用户同时编译的问题的解决

Android7.0(也就是Android N)上默认使用JACK编译器而不再使用openjdk了,但发现JACK不是很好用,比如最大的一个问题就是,同一台linux服务器上不允许不同用户同时进行an...
  • lizekun2010
  • lizekun2010
  • 2016年09月14日 10:29
  • 33248

Android7.0 编译问题

AndroidN编译需要用到java 1.8以上版本. 第一次出错: 1 warning generated. [ 31% 10040/31772] Building with Jack:...
  • lcqlw123
  • lcqlw123
  • 2016年11月01日 20:19
  • 5264

在windows下编译chromium

最近自己的成长目标想从模块设计转到系统架构上,刚好大组有个浏览器调研的任务,而chromium又是google开源的浏览器,所以开始对它进行了一些前期研究。这个过程十分不容易,我对windows下的开...
  • ljm198745
  • ljm198745
  • 2014年10月27日 08:23
  • 9230

编译安卓7.0源码出现make: *** [ninja_wrapper] Error 1

32 warnings generated.ninja: build stopped: subcommand failed.build/core/ninja.mk:148: recipe for ta...
  • u010684585
  • u010684585
  • 2017年07月28日 15:41
  • 2123

Linux下编译Android源码问题汇总

前言 本人最近在研究Android源码编译,现将编译过程中遇到问题汇总于此。
  • u014485786
  • u014485786
  • 2016年06月01日 15:53
  • 18386

android 开发遇到的问题总结--不定期更新

一9图片在eclipse中正常android studio中异常 二android 50之后toolbar阴影怎么去除 三利用android studio 开发Cocos2d-x 四android源码...
  • u012915455
  • u012915455
  • 2016年08月31日 10:42
  • 7239

ubuntu64位系统编译时头文件找不到的问题

今天编译webrtc时出现以下错误: ninja -C out/Debug All ninja: Entering directory `out/Debug' [1/6] CXX obj/talk/a...
  • kl222
  • kl222
  • 2013年11月29日 16:16
  • 6217

编译android 7.0 出现Try increasing heap size with java option '-Xmx<size>'错误解决方案

出现这个错误是由于电脑内存不足,在命令行分别执行以下三条语句,然后继续编译 export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:...
  • csdn_zyp2015
  • csdn_zyp2015
  • 2017年02月21日 10:45
  • 6466

Android N 遇到Try increasing heap size with java option

./prebuilts/sdk/tools/jack-admin export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+Tiered...
  • zxf20063033
  • zxf20063033
  • 2017年02月21日 19:59
  • 2443

Android源码编译GC overhead limit exceeded. Try increasing heap size with java option '-Xmx<size>'

自己碰到问题的解决方案,希望能给大家带来帮助
  • sinat_22657459
  • sinat_22657459
  • 2016年11月17日 11:15
  • 2912
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android源码下载与编译过程记录
举报原因:
原因补充:

(最多只允许输入30个字)