国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > Android――4.2 蓝牙 BlueTooth 初探入门 (一)

Android――4.2 蓝牙 BlueTooth 初探入门 (一)

来源:程序员人生   发布时间:2014-12-14 08:52:50 阅读次数:6682次

      蓝牙,wifi,3g 作为移动端平台最多见的dongle,蓝牙现在利用愈来愈广泛,特别是现在流行智能终端,多点互控,wifi,3g等资源消耗大,红外又有距离和障碍物的限制,所以说蓝牙通讯在未来其它的不说,单在智能TV上利用的情形将会愈来愈广泛.这里只是初步理解学习,以后将会1层1层从kernel直到application


                                        撰写不容易,转载需注明出处:http://blog.csdn.net/jscese/article/details/41283879


结构层次:

先看1张层次图:



可以看到大体分成了3个部份,

java:

最上层就是 application framework,供利用程序使用的API,

java层的api类的 源码路径:framework/base/core/java/android/bluetooth 

packages/apps/Bluetooth/src/com/android/bluetooth下的bluetooth services (以Bluetooth.apk情势编译进系统)


native space:

第2层由上面的packages/apps/Bluetooth下的service调用到的本地的JNI开始,调用到hardware中的定义(hardware/libhardware/include/hardware/bluetooth.hhardware/libhardware/include/hardware/bt_*.h),

bluetooth.default.so 的实现放在external/bluetooth/bluedroid

这里面就是bluetooth的核心协议栈

可以看到分为了几部份,后面介绍分别的代表的作用

其中还有1个抽象的接口协议层hci,用于与不同厂家的Vendor 连通,Vendor HCI中是需要实现必须的接口的


kernel:

最下面 内核层,是linux的通用驱动了,这里的都是linux 对与蓝牙操作触及到的驱动模块




之前的android版本我不熟,但是网上的说android4.2相对照之前的,蓝牙改动很大,把原来的BlueZ替换成了Bluedroid(也就是external中的),把原来放在framework中的bluetooth service jni 改放到了package中app中,

就我目前调试来看 之前的/system/bluetooth也没有用到.




模块图:

 这是来自google官网 http://source.android.com/devices/bluetooth.html 里面的1张图:






这就是从application到vendor,其中Bluetooth Stack中模块则由Bluetooth Application Layer(缩写为BTA)和Bluetooth Embedded System(缩写为BTE)两大部份组成。

BTA 实现了蓝牙装备管理、状态管理及1些利用规范,与Android framework 交互.

BTE 则通过HCI与厂商蓝牙芯片交互以实现了蓝牙协议栈的通用功能和相干协议。另外,BTE还包括1个统1内核接口(GKI),蓝牙芯片厂商可借助GKI快速轻松得移植蓝牙协议栈.


后续再来分析每一个层次的模块运作与上下交互~











生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生