android4.2源码下载编译过程

1. 下载安装64位ubuntu11.10。

2. 执行sudo passwd root生成root密码,(10.04版需要修改)修改 /etc/gdm/gdm.schemas文件中的:
<default>bin,root,daemon,adm,lp,sync,shutdown,halt,mail,news,uucp,operator,nobody,nobody4,noaccess,postgres,pvm,rpm,nfsnobody,pcap</default>
去掉root用户名,然后就可以root登录了。

3. http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html下载jdk-6u41-linux-x64.bin,复制到虚拟机中。

4. 执行./jdk-6u41-linux-x64.bin安装jdk,然后配置/etc/profile文件如下:
export JAVA_HOME=/usr/local/java/jdk1.6.0_41
export JRE_HOME=/usr/local/java/jdk1.6.0_41/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
执行source /etc/profile使配置生效。

5. 执行下面的命令安装程序:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
  x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
  libxml2-utils xsltproc
1)需要软件源设置为main server,不然有些git-core包找不到。
2)ia32-libs安装不了,用ia32-libs-multiarch:i386代替,不知道行不行。
3)lib32readline5-dev装不了,安装lib32readline-gplv2-dev代替。
执行:
sudo apt-get install libx11-dev:i386

6. 设置ccache:
打开用户目录下的.bashrc文件,在最后加上:
export USE_CCACHE=1
export CCACHE_DIR=~/.ccache
目录~/.ccache是默认保存的地方。
编译前要在android目录执行命令:
prebuilts/misc/linux-x86/ccache/ccache -M 50G
4.0已经一下版本执行:
prebuilt/linux-x86/ccache/ccache -M 50G

7. gcc版本问题,需要降为4.4:
apt-get install gcc-4.4
apt-get install g++-4.4
到/usr/bin目录下查看gcc的连接情况:
ls -l gcc*
然后备份和修改连接:
mv gcc gcc.bak
ln -s gcc-4.4 gcc
gcc -v 
g++和gcc执行同样的操作。
最后还需要安装:
apt-get install g++-4.4-multilib
apt-get install libc6-dev-i386

8. 完成后检查一下包是否都安装完成:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs-multiarch:i386 \
  x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
  libxml2-utils xsltproc libx11-dev:i386 gcc-4.4 g++-4.4 g++-4.4-multilib libc6-dev-i386
 
9. 建立文件夹,并包含到path中:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
下载Repo脚本:
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
创建一个目录,然后给权限:
mkdir android42
chmod -R 777 android42/
cd android42
$ repo init -u https://android.googlesource.com/platform/manifest
$ repo init -u  https://android.googlesource.com/platform/manifest  -b android-4.2_r1

10. 编辑/etc/hosts文件
增加下面内容,保存
74.125.31.82 www.googlesource.com
74.125.31.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173 cache.pack.google.com

11.开始下载吧:
$ repo sync 
如果下载中断,按ctrl+z,然后重新执行上面的命令。

12. 下载完成了,我们设置一下ccache。
prebuilts/misc/linux-x86/ccache/ccache -M 50G

13. 执行初始化脚本:
$ . build/envsetup.sh
选择编译目标:
$ lunch full-eng
full是所以app、输入法等,eng是针对开发者的权限

14. 为了保证能成功编译,我们修改一下swap分区的大小。
free -m 
以M为单位查看swap的大小。
mkdir swap
cd swap
dd if=/dev/zero of=swapfile bs=1024 count=2000000
创建一个2g的分区
mkswap swapfile
swapon swapfile
转化并激活swap分区文件。要每次开机都生效,需要修改/etc/fstab文件,添加:
/root/swap/swapfile swap swap defaults 0 0
取消分区要执行:
swapoff swapfile

15. 开始编译吧:
make -j4

16. 中途没有出错,编译完成!下面设置环境变量:
gedit ~/.bashrc
添加:
export ANDROID_PRODUCT_OUT=/root/android42/out/target/product/generic
export ANDROID_PRODUCT_OUT_BIN=/root/android42/out/host/linux-x86/bin
export ANDROID_SWT=/root/android42/out/host/linux-x86/framework
export PATH=$PATH:$ANDROID_PRODUCT_OUT_BIN
执行(其实上面这个环境变量不需要设置也可以):source ~/.bashrc
. build/envsetup.sh
emulator
就可以启动模拟器了

17. 编译sdk。
. build/envsetup.sh
lunch sdk-eng
make sdk

18. 创建avd。
注释16步的添加,在.bashrc文件中添加:
export PATH=$PATH:/root/android42/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86/tools
执行:
source ~/.bashrc
android list
android create avd -n avd42 -t 1 两次回车
emulator -avd avd42
出现Failed to load libGL.so错误,执行下面语句:
ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so
模拟器还会报出警告: emulator window was out of view and was recentred
我们可以通过-scale ­­选项来解决这个问题,使用emulator -avd avdname -scale 0.9









  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值