android开发-5源代码编译运行

来源:互联网 发布:滴滴模拟跑软件 编辑:程序博客网 时间:2024/06/05 17:49
一、编译
设置ccache加快编译速度。默认的ccache在~/.ccache文件夹下。默认的是1G大小。我在~/目录下新建一个cache文件夹用来做缓存。
sudo mkdir ~/cache
sudo vi ~/.bashrc
里面新增的内容是:
export USE_CCACHE=1
export CCACHE_DIR=/home/blkj/cache
然后设置cache的大小,在androidSource文件夹下,也即工程文件夹下要make的地方终端输入命令:prebuilts/misc/linux-x86/ccache/ccache -M 10G 
官方推荐的是50-100G。


按照官方的提示,在androidSource路径下,终端依次执行如下命令:
source build/envsetup.sh
lunch full-eng  (lunch aosp_arm-eng 之编译arm平台)
make -j4
最好用make -j4这个命令进行编译,这个4等于cpu内核数*2.如果是2核就写-j4,如果是4核就-j8.这样可以大幅度提高编译速度。
编译完成后在out/target/product/generic文件夹下有3个镜像文件:ramdisk.img system.img userdata.img,
其中, ramdisk.img是emulator的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,emulator加载这3个映像文件后,会把 system和 userdata分别加载到 ramdisk文件系统中的system和 userdata目录下。
二、运行
1. 设置环境变量:(每次重启后要执行)
    export PATH=$PATH:~/android/442/out/host/linux-x86/bin  
    export ANDROID_PRODUCT_OUT=~/android/442/out/target/product/generic
    其中,~/android/442/out/host/linux-x86/bin有我们要执行的emulator命令,而~/android/442/out/target/product/generic是Android镜像存放目录,下面执行emulator命令时会用到。
2. 运行模拟器。
进入到Android源码目录中执行:
source build/envsetup.sh 
lunch sdk-eng
emulator
    模拟器运行需要四个文件,分别是Linux Kernel镜像zImage和Android镜像文件system.img、userdata.img和ramdisk.img。执行emulator命令时,如果不带任何参数,则Linux Kernel镜像默认使用~/Android/prebuilt/android-arm/kernel目录下的kernel-qemu文件,而Android镜像文件则默认使用ANDROID_PRODUCT_OUT目录下的system.img、userdata.img和ramdisk.img,也就是我们刚刚编译出来的镜像问题。
    当然,我们也可以以指定的镜像文件来运行模拟器,即运行emulator时,即:
emulator -kernel ~/android/442/prebuilts/qemu-kernel/arm/kernel-qemu 
-sysdir ~/android/442/out/target/product/generic 
-system system.img -data userdata.img -ramdisk ramdisk.img
可以再emulator后面加&这样终端就可以空出来执行adb命令了。
0 0
原创粉丝点击