当前位置: 代码迷 >> Android >> Ubuntu 10.尝试编译Android2.2 一
  详细解决方案

Ubuntu 10.尝试编译Android2.2 一

热度:82   发布时间:2016-05-01 19:32:08.0
Ubuntu 10.尝试编译Android2.2 1
---------2.2----------
需要  gcc  g++ 4.3

如果用最新的 4.4 肯定会出语法错误
比如
open(path, O_WRONLY | O_APPEND | O_CREAT );
改为
open(path, O_WRONLY | O_APPEND | O_CREAT , 0777 );
等,还有 const char* 问题,都是浪费时间。

其中会用到  gcc g++ cc 命令 注意连接到正确的版本

如果有这种错误,是因为 2.2的源代码没删除干净
No module defined for the given PRODUCT_POLICY (android.policy_phone)
frameworks/policies/base/PolicyConfig.mk:22: *** No module defined for the given PRODUCT_POLICY (android.policy_phone). Stop.
--------------------------------------

2.3 装 opensdk-6-sdk 即可,更方便。

编译会用到的包,提前安装。
aptitude install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

//
update-al

操作系统用一个单独的 .vmdk 文件,即单独的虚拟硬盘。

分区的划分, out 文件夹用一个单独的 .vmdk 文件,编译时候链接进去。每个版本用不同的。

存放源代码用一个单独的 .vmdk  ,每次更换版本如果有错,记得把上回的删干净再取

以后每个版本单独出 out ,比较适合我这样多个版本的人,而且方便同事间互相传,2.2 和 2.3 的打包后不超过3G。

这样就可以互不影响方便使用,也可以减少传输


编译完把 system.img useddata.img ramdisk.img 弄出来放到windows下(网络共享或者映射也行,不影响使用)用下面的 bat 脚本启动即可(自己稍作修改)。

@echo off::以下变量顺序不要打乱,有依赖关系set sdkpath=E:\android-sdk-windows:: 2.2 为 8 , 2.3.3 为10set sdkversion=10set platform=platforms\android-%sdkversion%set skindir=%sdkpath%\%platform%\skinsset syspath=%sdkpath%\%platform%set imgpath=%CD%set skin=WVGA800:: 模拟器启动的文件存放set sysimgpath=%syspath%\images:: 核心文件set kernel=%sysimgpath%\kernel-qemuset sdcard=C:\sdcard.imgset sysimg=system.img:: -datadir 写入锁文件目录 -initdata 为初始化的userdata.img , -data 为加载的 不存在会自建:: 可以使用-wipe-data将当前的userdata-qemu.img回复到出厂设置set initusrimg=userdata.img:: -data "%initusrimg%"  userdata-qemu.img 自动产生,路径由  datadir 指定set usrimg=userdata-qemu.img:: 以上两个参数不能一样set rmdsk=ramdisk.imgset cache=cache.imgset syssize=100:: 内存set memsize=512:: factor: 0.1-3.0set scale=1:: 240 dpiset dpi=240set noanim=-no-boot-anim :: -http-proxy:: 路径参数优先文件参数@echo onemulator -skin %skin% -skindir "%skindir%" -partition-size %syssize% -sysdir "%imgpath%" -datadir "%imgpath%" -initdata "%initusrimg%" -data "%usrimg%" -kernel "%kernel%" -system "%sysimg%"  -ramdisk "%rmdsk%" -cache %cache% -sdcard "%sdcard%"  -dpi-device %dpi% -scale %scale% %noanim% -verbose::-shell


单独编译资源文
croot
make android.policy