Welcome 微信登录

首页 / 操作系统 / Linux / 编译Android 2.3.1 源代码心得

终于编译Android 2.3.1 源代码通过了!这里介绍一下过程:1. 在编译之前,先安装好以下的库:sudo apt-get install bisonsudo apt-get install zlib1g-devsudo apt-get install lib64z1-devsudo apt-get install flexsudo apt-get install libncurses5-devsudo apt-get install libx11-devsudo apt-get install gperf以上可能不全,具体等编译的时候缺哪个库再去下就行了~~2. 安装Java 6 JDK:sudo apt-get install sun-java6-jdk3. 下载Android 2.3.1 的源代码并解压;4.  make clean(在编译之前先make clean会很方便的!)如果原先有out文件夹,那么  make clean 后就没了5.make这是一个非常非常非常漫长的过程,等吧~~~~6. 如果成功,会生成一个out文件夹,里面有三个文件夹:host,target和temp。看名字就知道他们的作用了,host是在PC上运行的(如SDK,emulator等),target是在目标板上运行的~~target里有 system.img 、userdata.img、ramdisk.img三个文件。另外在这个目录下还有一些文件夹,有一些是和这三个文件一样的,只不过是没有打包的。附一段make编译成功的输出:Target system fs image: out/target/product/sdkDemo/obj/PACKAGING/systemimage_intermediates/system.imgInstall system fs image: out/target/product/sdkDemo/system.imgTarget ram disk: out/target/product/sdkDemo/ramdisk.imgTarget userdata fs image: out/target/product/sdkDemo/userdata.imgInstalled file list: out/target/product/sdkDemo/installed-files.txt下面来启动我们编译好的Android SDK:1.   cd out/host/linux-x86/bin/2.   ./android提示没有设置ANDROID_SWT,添加如下环境变量:export ANDROID_SWT=/home/hutao/Android_project/gingerbread/out/host/linux-x86/framework/注意:这是你自己的framework路径!)再次 ./android,错误:Error: Error parsing the sdk.Error: /home/hutao/Android_project/gingerbread/out/host/linux-x86/platforms is missing.Error: Unable to parse SDK content.其实解决方法很简单,只要在相应路径下新建一个platforms文件夹即可;再次 ./android,错误:Error: Error parsing the sdk.Error: /home/hutao/Android_project/gingerbread/out/host/linux-x86/platforms is missing.Error: Unable to parse SDK content.解决方法同上;最后终于启动Android SDK啦!3. 下载Android SDK target:选择available packages,选择相应的Android SDK Platform以及API,点击Refresh,后面就开始下载了~~4. 为Android SDK建立一个avd(android virtual disk):在virtual devices里点“New”,填上Name和target,之后点Create AVD,这样就建好了一个avd5. 在主界面中点start就启动emulator了,等比较长的时间后就可以看到效果了~~3.2../emulator,出现如下错误:emulator: ERROR: You did not specify a virtual device name, and the systemdirectory could not be found.If you are an Android SDK user, please use "@<name>" or "-avd <name>"to start a given virtual device (see -help-avd for details).Otherwise, follow the instructions in -help-disk-images to start the emulator看来是我们没有创建device(avd),那就创建一个:./android create avd --target 8 --name avd_mayq提示没有sdk,那好吧,我们先make sdk: