由于我是用的公司的开发环境(repo源在公司server上,编译环境也是之前就搭上了),所以没有自己在手机上做过蓝牙系统级的开发,所以以下的环境的搭建可能并不是很靠谱。
对于只需要看看文章,看看源代码,并不需要在机器上调试蓝牙系统的朋友,不需要看编译源代码这一章,下载源代码也只需要/external/bluetooth/bluedroid和/packages/apps/Bluetooth就可以了(下载地址:http://pan.baidu.com/s/1j6ys9)
对于有条件可以在真机上做蓝牙系统开发的朋友,则需要编译Android系统源代码,但是不需要烧系统和Kernel,因为Android4.2的蓝牙已经都在应用层了。
虽然这个已经有无数的文章在介绍了,但是为了完整,还是得写。
这里官方的源码下载方式是用Google的repo工具下载,我本人尝试了几次之后,决定是放弃这样的下载方式,因为我的网络太差了,每次下了一半天就不动,所以去找了一个提供打包下载Android源码的地址,总算把源码下下来了(由于我用的那个下载地址目前已经不能用了,所以也不提供了)。
以下是Ubuntu下下载Android4.2源码的方法(注:并没经过本人测试,只是按照官方给的方法转载的)
参考:http://source.android.com/source/downloading.html
1.创建目录
[plain] view plaincopy
mkdir ~/android_source/
mkdir ~/bin/
2.下载git
[plain] view plaincopy
<span style="font-family:Arial,Helvetica,sans-serif">$ sudo apt-get install git-core gnupg</span>
3.下载repo
[plain] view plaincopy
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
4.初始化工作目录(主要是下载repo utils和manufests.xml)
[plain] view plaincopy
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.下载代码
[plain] view plaincopy
repo sync
接下来是漫长的等待。
如果其他还差什么工具,就根据错误提示,去搜索一下,然后下载吧。
这一步不是非做不可,如果只是想分析学习Android蓝牙的话,其实只看源代码也是可以的,但是如果能够通过实作的编译Bluedroid,拿到Android里面去调试,也许更好。
参考
1.下载编译工具集
[plain] view plaincopy
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
[plain] view plaincopy
$ source build/envsetup.env
$ lunch full-eng
$ m -j[x] (x根据你CPU有几个核来决定,我是8核,就是m -j8)
PS:你可以不用编译整个Android系统,可以直接
[plain] view plaincopy
cd packages/apps/Bluetooth; mm
cd externel/bluetooth/bluedroid; mm
但是还是得等很久,因为Bluetooth.apk需要依赖Android的framework才能编译。
由于我们只是做蓝牙开发,所以改动都在应用层上的,主要会修改到两个程序:
/system/app/Bluetooth.apk
/system/lib/hw/bluetooth.default.so
所以,大家在有Root权限的手机上,直接
[plain] view plaincopy
adb push Bluetooth.apk /system/app/Bluetooth.apk
adb push bluetooth.default.so /system/lib/hw/bluetooth.default.so
就可以了,然后重启Bluetooth.apk或者重启系统。
1、在Linux上读代码的经典组合:
[plain] view plaincopy
$ 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下装虚拟机学习。