Android开发之Fedora 13下编译Android源码
1. 建立目录:
mkdir ~/bin
PATH = ~/bin:$PATH
2. 下载下载工具
yum install git
curl https://android.git.kernel.org/repo > ~/bin/repo
chmod a+x ~/bin/repo
3. 建立工作目录
mkdir myAndroid
cd myAndroid
4. 运行repo来初始化
repo init –u git://android.git.kernel.org/platform/manifest.git
5. 获取文件
repo sync –j4
6. 开始在根目录下make
source build/envsetup.sh
lunch full-eng
make
7. 下面就开始make了,出什么错解决什么错就可以了。下面是错误列表和解决方式:
a) 提示javac找不到——> 运行yum install java*
b) 提示g++找不到——>运行g++
c) 提示bison找不到——>运行yum install bison
d) 提示flex找不到——>运行yum install flex
e) 提示cannot find –lncurses——>运行yum install ncurses-devel
f) 提示cannot find –lhistory——>运行yum install readln-static
g) 提示:error while loading shared libraries … … lib/libdvm.so … cannot resore segment prot after reloc : Permission denied.——>解决办法:编辑etc/sysconfig/selinux 和 etc/selinux/config文件,将SELINUX = enforcing 改为SELINUX = disable;然后运行命令:chcon –t texrel_shlibt /…/…/lib/libdvm.so。
h) 提示commond not found gperf——>运行 yum install gperf。
8. 编译出的东西都在out目录下。编译完成后,看看out/target/product/generic/目录下是否有如下文件:
out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Target ram disk: out/target/product/generic/ramdisk.img
Target userdata fs image: out/target/product/generic/userdata.img如果有这些镜像文件,说明编译成功了。可以在out/host/linux-x86/bin下运行./emulator这样一个模拟器就起来了,这个模拟器就是你自己编译出来的。
9. 在编译过程中可能会出现Clock skew detected.your build may be incomplete.如果有上面的文件,忽略这个警告信息。如果没有的话,需要解决。解决方法:
find –type f | xargs –n 5 touch
make clean
make
其中make clean的执行需要小心,它将删除已经编译完成的文件。
10. 编译完成以后,就可以“想干什么就干什么了… …”