zoukankan      html  css  js  c++  java
  • 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发表 [回复]
    希望跟着你的思路 把蓝牙学好 嘿嘿

    发表评论
    • 用 户 名:
    •  
    • 评论内容:
    • 插入代码
  • 相关阅读:
    第四周学习报告
    第三周学习报告
    第二周学习报告
    第一周学习报告
    大创首月学习计划
    20183122 综合实验《Python程序设计》实验报告
    20183122 实验三《Python程序设计》实验报告
    20183122 实验二《Python程序设计》实验报告
    数据存储和JSON,CSV
    python模块那点事
  • 原文地址:https://www.cnblogs.com/jeanschen/p/3550652.html
Copyright © 2011-2022 走看看