ZT Android4.2蓝牙基础架构学习

Android4.2蓝牙基础架构学习

分类: Jellybean Bluetooth Bluetooth 863人阅读 评论(3) 收藏 举报

接下来就要进入到真正的Android4.2蓝牙系统的学习了,Are you ready?


本文不会涉及任何代码,主要对整个Android的蓝牙结构进行一个框架上的分析。
Android4.2使用了Bluetooth.apk管理所有蓝牙相关的操作,Bluedroid作为蓝牙协议栈。整个蓝牙的关系架构如下图所示:

下面逐一进行讲解:
Applications:Android蓝牙应用程序,就是使用了蓝牙的API的程序
java Framework:提供给应用使用的API,我们平时使用的BluetoothAdapter,BluetoothDevice,BluetoothSocket等
BluetoothAPP:其实说起来,这个应该也是属于java framework范畴,不过由于它比较特殊,所以独立出来了,提供所有的上层服务以及与Bluedroid底层进行交互。
其中btAdapter主要提供蓝牙的基本操作,比如enable, disable, discovery, pair, unpair, createRfcomm等,其他的就都是Profile的各自的Service了。
Bluedroid:蓝牙协议栈,提供所有蓝牙的实际操作,开关蓝牙,HCI,ACL,SCO,L2CAP,RFComm,蓝牙的所有Profile等。
这里Bluedroid分为三部分:
BTIF(Bluetooth Interface):提供所有Bluetooth.apk需要的API(使用HAL)
BTA(Bluetooth Application):蓝牙应用,一般是指蓝牙的Profile的Bluedroid实现。
Stack:这个很复杂,实现的所有蓝牙底层的操作,其中还要分为btm(Bluetooth manager),btu(Bluetooth Upper Layer)等。后面会进行详细分析(我目前这一部分也不怎么熟悉,希望能够在写到这里的时候很熟)

整个系统的架构很简单,因为大多的事情都是在Bluedroid层里面做的,上层只管去Call和Callback就是了。接下来我会通过详细分析蓝牙的Enable功能给大家一个简单的认识。

PS:Android系统的代码并不简单,里面有很多代码会让人迷惑,一个简单的功能也要跳很多个文件,这对初学者来说有点困难,不过慢慢深入了就会觉得其实设计得真的很好。
更多 0
 
查看评论
2楼 hu851211 2013-12-24 11:25发表 [回复]
您好,有几个关于bluedroid的问题想请教,能否加一下QQ沟通,314269670
Re: 默默dede 2014-01-13 16:46发表 [回复]
回复hu851211:想请教一下关于蓝牙的知识,加你的QQ加不上
1楼 jerry06chow 2013-10-14 19:08发表 [回复]
希望跟着你的思路 把蓝牙学好 嘿嘿

发表评论
  • 用 户 名:
  •  
  • 评论内容:
  • 插入代码

转载于:https://www.cnblogs.com/jeanschen/p/3550652.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值