Android4.2蓝牙基础架构学习

分类: Jellybean Bluetooth Bluetooth 2013-10-13 23:58 863人阅读 评论(3) 收藏 举报
androidbluedroidjellybean蓝牙应用程序

接下来就要进入到真正的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
  • 上一篇:Android4.2蓝牙学习环境搭建
  • 下一篇:Android4.2蓝牙Enable完全分析
查看评论
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

ZT Android4.2蓝牙基础架构学习相关推荐

  1. OpenStack(Kilo版本)基础架构学习笔记

    一.OpenStack项目简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack  ...

  2. 视频教程-JAVAEE真实课堂系列之javaScript全讲-云计算基础架构

    JAVAEE真实课堂系列之javaScript全讲 刘志远,北京邮电大学硕士研究生, 北京育华志远科技有限公司创始人, 育华志远教育品牌负责人,育华志远课程体系打造者. 率领团队为互联网行业培训千余名 ...

  3. 视频教程-JAVAEE真实课堂之MySQL数据库-云计算基础架构

    JAVAEE真实课堂之MySQL数据库 刘志远,北京邮电大学硕士研究生, 北京育华志远科技有限公司创始人, 育华志远教育品牌负责人,育华志远课程体系打造者. 率领团队为互联网行业培训千余名学员,打造最 ...

  4. 视频教程-JAVAEE真实课堂系列之JSP+EL+JSTL-云计算基础架构

    JAVAEE真实课堂系列之JSP+EL+JSTL 刘志远,北京邮电大学硕士研究生, 北京育华志远科技有限公司创始人, 育华志远教育品牌负责人,育华志远课程体系打造者. 率领团队为互联网行业培训千余名学 ...

  5. 视频教程-JAVAEE真实课堂系列之XML全讲-云计算基础架构

    JAVAEE真实课堂系列之XML全讲 刘志远,北京邮电大学硕士研究生, 北京育华志远科技有限公司创始人, 育华志远教育品牌负责人,育华志远课程体系打造者. 率领团队为互联网行业培训千余名学员,打造最高 ...

  6. esp32系列(5):esp32 蓝牙架构学习

    目录 1 ESP32 蓝牙架构学习 1.1 蓝牙 1.1.1 HCI 接口选择 1.1.2 蓝牙运行环境 1.1.3 框架 1.1.3.1 控制器 1.1.3.2 BLUEDROID 1.2 经典蓝牙 ...

  7. 1-Kubernetes基础入门体系架构学习(一)

    0x00 基础简述 Borg 系统 Kubernetes 系统 1.发展经历 2.简要介绍 3.系统架构 0x01 组件详述 1.Kubernetes-Master 2.Kubernetes-Node ...

  8. 10、Ktor学习-运行程序和基础架构;

    在外部主机中运行应用程序   当您需要在独立维护的主机(例如Tomcat)中运行Ktor应用程序时,您需要一个application.conf文件来告诉Ktor如何启动您的应用程序. 定义配置   在 ...

  9. RPA学习天地:艺赛旗RPA高阶培训(一)产品基础架构

    产品概述 IS-RPA产品包括机器人控制平台.机器人及设计器三部分. iS-RPA 设计器(iS-RPA Studio):主要负责提供高度可视化开发能力,为机器人设计自动化流程,作为机器人执行的任务, ...

最新文章

  1. AI算法领域常用的39个术语(下)
  2. solve Ax+By+C=0
  3. maven+nexus搭建maven仓库
  4. python 装饰器有哪些_Python装饰器有哪些常见用途?
  5. Java2Days 2012:Java EE
  6. 宁夏警官学院计算机专业,宁夏警官职业学院毕业设计模板.docx
  7. koa中上传文件到阿里云oss实现点击在线预览和下载
  8. JSP request response session
  9. 仅模糊背景图像而不是前面的文本
  10. Centos6 安装 Redis 和集群配置
  11. 湖北校园天翼飞young使用路由器上网
  12. java 追加文件换行_java 追加换行txt
  13. 雷电模拟器打开应用权限_雷电模拟器超级用户权限怎么设置,是什么,怎么关闭【获取超级用户权限】通知提示,如何自动允许...
  14. coreldraw梯形校正_CorelDRAW绘制等腰梯形的多种方法
  15. Mysql 一次性执行多条语句的实现
  16. ToLua 入门05_AccessingLuaVariables
  17. JSON树转换成线性列表(python)
  18. 必不可少的10类MAC装机必备软件,个个万里挑一
  19. 【实战】python-docx---每页表格固定显示行数
  20. 比尔总动员警察职业详解

热门文章

  1. 基于KVM虚拟化搭建lamp
  2. 微软社区精英计划 - 你会如何回答【6月26日】北京.Net学习活动QA时提出的问题...
  3. 网管员心声:Windows服务有“备”无患
  4. openssl 证书生成手册
  5. lecture notes for investment bank internship
  6. boolean searching, it is so important for searching your papers
  7. statistics DATA in jiangsu
  8. 什么是formal method的invarient
  9. 第五十二课、命令行参数的应用------------------狄泰软件学院
  10. SLF4j、log4j管理系统日志(Maven)