题记:
下载源代码
虽然这个已经有无数的文章在介绍了,但是为了完整,还是得写。
这里官方的源码下载方式是用Google的repo工具下载,我本人尝试了几次之后,决定是放弃这样的下载方式,因为我的网络太差了,每次下了一半天就不动,所以去找了一个提供打包下载Android源码的地址,总算把源码下下来了(由于我用的那个下载地址目前已经不能用了,所以也不提供了)。
以下是Ubuntu下下载Android4.2源码的方法(注:并没经过本人测试,只是按照官方给的方法转载的)
参考:http://source.android.com/source/downloading.html
1.创建目录
mkdir ~/android_source/ mkdir ~/bin/
2.下载git
$ sudo apt-get install git-core gnupg
3.下载repo
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo
4.初始化工作目录(主要是下载repo utils和manufests.xml)
repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1
这里的android-4.2.2_r1是Branch的名字,可以从https://android.googlesource.com/platform/manifest/+refs找到所有的branch,下载自己需要的版本。
5.下载代码
repo sync
接下来是漫长的等待。
如果其他还差什么工具,就根据错误提示,去搜索一下,然后下载吧。
编译源代码
1.下载编译工具集
1、安装各种工具集 $ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev build-essential 2、安装JDK $ sudo add-apt-repository ppa:ferramroberto/java $ sudo apt-get update $ sudo apt-get install sun-java6-jre sun-java6-plugin $ sudo apt-get install sun-java6-jdk
2.编译Android
参考:http://source.android.com/source/building-running.html
$ source build/envsetup.env $ lunch full-eng $ m -j[x] (x根据你CPU有几个核来决定,我是8核,就是m -j8)
PS:你可以不用编译整个Android系统,可以直接
cd packages/apps/Bluetooth; mm cd externel/bluetooth/bluedroid; mm
但是还是得等很久,因为Bluetooth.apk需要依赖Android的framework才能编译。
更新编译好的东东
adb push Bluetooth.apk /system/app/Bluetooth.apk adb push bluetooth.default.so /system/lib/hw/bluetooth.default.so
就可以了,然后重启Bluetooth.apk或者重启系统。
阅读源代码的工具
$ sudo apt-get install vim ctags cscope
具体怎么用,就Google一下吧。
2、windows的话就安装一个source insight吧,很好用,但需要注意的是,不要把所有Android代码都导入到project里面去,只导入/external/bluetooth/bluedroid和/packages/apps/Bluetooth/就可以了
另外,Linux也可以用source insight,用wine装,建议如果确实对Linux使用不熟悉的朋友,还是在windows下装虚拟机学习。