Android4.2蓝牙基础架构学习

分类: Jellybean Bluetooth Bluetooth 2013-10-13 23:58 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发表 [回复]
希望跟着你的思路 把蓝牙学好 嘿嘿
发表评论
  • 用 户 名:
  • 评论内容:

ZT Android4.2蓝牙基础架构学习的更多相关文章

  1. aws基础架构学习笔记

    文章大纲 Aws 的优势 架构完善的框架(WAF) Aws 学习笔记 Aws架构中心 Aws 的优势 4.速度优势 5.全球优势 数分钟内实现全球部署 Aws全球基础设施 Aws 数据中心 来自多家O ...

  2. 自画一张linux基础架构学习框架图

    草图一张,仅供参考,学习并掌握下面这张图的技能只是个开始--

  3. 01.基础架构:一条SQL查询语句是如何执行的?学习记录

    01.基础架构:一条SQL查询语句是如何执行的?学习记录http://naotu.baidu.com/file/1c8fb5a0f2497c3a2655fed89099cb96?token=ff25d ...

  4. 蓝牙 BLE 协议学习: 3种蓝牙架构实现方案(蓝牙协议栈方案)

    导言 不同的蓝牙架构可以用在不同的场景中.从而协议帧的架构方案也会不同. 转载自:<三种蓝牙架构实现方案(蓝牙协议栈方案)> 蓝牙架构实现方案有哪几种?我们一般把整个蓝牙实现方案叫做蓝牙协 ...

  5. 金智维RPA培训(一)产品基础架构-RPA学习天地

    1.产品组成分为:Server,control,agent三个组件,支持CS和BS架构.独有的中继服务器可以解决跨网段的问题,这里应该还是采用了多网卡模式. 其中:Agent负责对流程的执行工作.Co ...

  6. 【转】Android bluetooth介绍(二): android blueZ蓝牙代码架构及其uart 到rfcomm流程

    原文网址:http://blog.sina.com.cn/s/blog_602c72c50102uzoj.html 关键词:蓝牙blueZ  UART  HCI_UART H4  HCI  L2CAP ...

  7. Android bluetooth介绍(两): android 蓝牙源架构和uart 至rfcomm过程

    关键词:蓝牙blueZ  UART  HCI_UART H4  HCI  L2CAP RFCOMM  版本号:基于android4.2先前版本 bluez内核:linux/linux3.08系统:an ...

  8. 蓝牙 BLE 协议学习: 000-有关概念介绍

    背景 在学校内就用过蓝牙技术参加过比赛(并拿了奖):而蓝牙作为物联网中比较常见的协议,有必要进行深入的学习.此后的文章会以 ble(v4.0) 进行学习. 介绍 蓝牙技术最初由电信巨头爱立信公司于 1 ...

  9. [翻译]用 Puppet 搭建易管理的服务器基础架构(4)

    我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第四部分. 原文地址:http://blog.jobbole.com/89214/ 本文由 伯乐在线 - Wing 翻译,黄利民 校稿 ...

随机推荐

  1. 体验 QQ机器人C# SDK 1.X 特性总结

    主要特性 依赖注入 框架本身采用 Autofac 作为依赖注入框架.进行插件开发时,必然会使用到该框架.建议开发者阅读官方文档熟悉其用法.https://autofac.readthedocs.io/ ...

  2. Linux中Redis的安装

    一.下载redis redis官网地址:http://www.redis.io/ 下载地址:http://download.redis.io/releases/ redis中文文档地址:http:// ...

  3. Python__函数和代码复用

    主要内容 函数的定义和使用 实例:七段数码管的绘制 代码复用与函数递归 PyInstall库的使用 实例:科赫雪花小包裹 函数的定义与使用 函数的理解与定义 函数的使用及调用过程 函数的参数传递 函数 ...

  4. Jprofiler注册码

    L-Larry_Lau@163.com#23874-hrwpdp1sh1wrn#0620 L-Larry_Lau@163.com#36573-fdkscp15axjj6#25257 L-Larry_L ...

  5. PL/SQL Developer 如何记住密码

    前言:使用时总结一下. 问题: 登录的时候不想每次都输入密码,能记住最好了. 解决方案: 1.点击配置->首选项 2.选择登录历史,勾上带口令存储,然后应用,确定即可.

  6. python数据类型之字典

    字典定义 字典是一种 key-value 的数据类型,这点很重要,是区别使用列表和字典的依据. 语法格式: info = { 'stu1101': "Aaron", 'stu110 ...

  7. 用pymysql操作数据库

    import pymysql # 打开数据库连接 connection = pymysql.connect(host='127.0.0.1', user='root', passwd=', db='s ...

  8. css网页布局血泪经验

    刚开始学css,没想到写页面刚写个banner就出了不少问题,写了几个下午都没有搞定对齐问题,现在从分析源码开始,尽量理解,总结,记住一般页面是从哪里开始布局的... 有些页面文字居中,其实不是用di ...

  9. python函数之调用函数

    调用函数 python中内置了许多函数,我们可以直接调用,但需要注意的是参数的个数和类型一定要和函数一致,有时候不一致时,可以进行数据类型转换 1.abs()函数[求绝对值的函数,只接受一个参数] # ...

  10. Python解析SWAN气象雷达数据--(解析、生成ASCII、Image、netCDF)

    解析   from datetime import * import time import calendar import json import numpy as np from struct i ...