Android编译源码过程和重点
1. 安装64位Linux
2. 安装Java6
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
3. 安装Java5
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper main multiverse"
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper-updates main multiverse"
$ sudo apt-get update
$ sudo apt-get install sun-java5-jdk
4. 切换Java版本
切换到Java6:
$ sudo update-java-alternatives -s java-6-sun
切换到Java5:
$ sudo update-java-alternatives -s java-1.5.0-sun
5. 安装编译android需要的库
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
6. 安装svn
$ sudo apt-get install subversion
7. 安装vim
$ sudo apt-get install vim
8. 首先要到源码目录下
9. 为源码目录下的所有文件赋予权限
# chmod -R 777 /home/user 注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx
10. 在源码的根目录下执行source build/envsetup.sh
11. 执行choosecombo命令,在出现的选择按提示选择即可
12. 执行make sdk编译源码 (大约二三个小时左右,视CPU好坏)
13. 编译好后会整个大小会有几个G的增加,然后在out文件夹中会有几个文件夹和文件出现。证明已经编译成功。
14.新建一个项目:
然后在项目中加入一些权限:
android:sharedUserId="android.uid.system"
<uses-permission android:name="android.permission.INSTALL_PACKAGES"></uses-permission>
<uses-permission android:name="android.permission.DELETE_PACKAGES"></uses-permission>
<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA"></uses-permission>
<uses-permission android:name="android.permission.CLEAR_APP_CACHE"></uses-permission>
在程序中的写法:
Runtime.getRuntime().exec("pm install -r " + " 程序安装的目录结构 ");
然后将Android .mk放入项目根目录下,编辑Android.mk,将LOCAL_CERTIFICATE := platform加入其中,然后将该项目放在源码中的packages/apps/目录下。
项目需要注意的地方:
1.JAVA类中不能有汉字,需要有汉字的必须是写在String.xml中的。
2.不要有重写的标记。
15:编译项目(在JDK1.5环境下进行)
先在android源码目录下执行
$ . build/envsetup.sh
$ mmm packages/apps/Contacts/ **项目的所在目录**
如编译成功,你会在
/out/target/product/generic/system/app/目录下找到你生成的apk
注明:QQ技术交流群:108614806 感兴趣的加一下。