我用了一台四核6G内存的ubuntu 15.10的机器做编译环境,整个ubuntu运行在Mac下的VirtualBox里面。整个过程中碰到了数个大大小小的坑,记录以备忘。
?
编译android源码过程中的各种java gc溢出问题。参看前一个blog,在编译前需要修改如下地方。
1.?prebuilts/sdk/tools/jack-admin.sh。在start-server后面直接加参数JACK_SERVER_COMMAND="java -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx6144M -cp $LAUNCHER_JAR?$LAUNCHER_NAME"
2. build/core/config.mk。这个文件里面有两处,一狠心,全都改成6144M。 ?
? ? 1) JILL :=java -Xmx6144m -jar $(JILL_JAR)
? ? 2) APICHECK_COMMAND := $(APICHECK) -JXmx6144m -J"classpath $(APICHECK_CLASSPATH)"
3. external/guava/guava-gwt/pom.xml: -Xms6144m -Xmx6144m -Xss1024k
?
此外,大概我的Ubuntu虚拟机内存远小于官方文档要求的16G(只分配了6G),所以用make -j4 在build过程中多次导致visual box挂掉,不知道是不是人品爆发,用make -j4 -l2.5解决了这个问题。
?
搞定了build,下一步是导入到android studio中。
1. 默认没有android studio认识的工程文件。
1)mmm development/tools/idegen/
2)development/tools/idegen/idegen.sh
2.打开android studio显示inotify警告
1)在etc/sysctl.conf中加入fs.inotify.max_user_watches = 524288
2)运行sudo sysctl -p
3)重新打开android studio
3.android studio提示需要oracle的jdk而不是openjdk(尼玛android source build又要求open jdk,傻逼java)
1)sudo add-apt-repository ppa:webupd8team/java
2)sudo apt-get update
3)sudo apt-get install oracle-java8-installer
?
?