題記:
下載源代碼
雖然這個已經有無數的文章在介紹了,但是爲了完整,還是得寫。
這裏官方的源碼下載方式是用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)
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下裝虛擬機學習。