开发者社区> 桃子红了呐> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

BlueDroid介绍 【转】

简介:
+关注继续查看

转自:http://blog.csdn.net/fen_liu/article/details/41213167

[-]

  1. 基本结构
  2. 代码区


http://www.cnblogs.com/hzl6255/p/3887547.html

自从Android 4.2开始,Android开始使用自己的蓝牙协议栈BlueDroid,而不是bluez

BlueDroid可分为两层: 
- BTE: Bluetooth Embedded System 
- BTA: Bluetooth Application Layer

BTE实现了核心的蓝牙功能,BTA则与框架的应用程序进行通信

1. 基本结构

下图显示了协议栈的基本结构

bluedroid 

Application framework 
framework/base/core/Java/android/bluetooth 
这里是app代码,使用android.bluetooth APIs和蓝牙设备交互 
其实现原理是通过Binder IPC机制使用蓝牙服务

Bluetooth system service 
位于packages/app/Bluetooth,打包为一个Android应用程序(通过JNI与蓝牙协议栈交互) 
它在Android框架层实现了蓝牙的服务和Profiles

JNI 
有关代码位于packages/apps/Bluetooth/jni下 
当进行蓝牙操作时,JNI的代码会调用到HAL层以获取回调

HAL 
HAL层定义了android.bluetooth和Bluetooth process calls into的标准接口 
其头文件位于hardware/libhardware/include/hardware

bluetooth.h: Contains the HAL for the Bluetooth hardware on the device 
bt_av.h:     Contains the HAL for the advanced audio profile. 
bt_hf.h:     Contains the HAL for the handsfree profile. 
bt_hh.h:     Contains the HAL for the HID host profile 
bt_hl.h:     Contains the HAL for the health profile 
bt_pan.h:    Contains the HAL for the pan profile 
bt_sock.h:   Contains the HAL for the socket profile

Bluetooth stack 
蓝牙协议栈,位于external/bluetooth/bluedroid 
实现了通用的蓝牙HAL及可配置组件

Vendor extensions 
厂商可通过创建libbt-vendor模块来自定义扩展接口和HCI层来方便调试

2. 代码区

如下网址可在线查看相关代码 
AndroidXref 
external/bluetooth/bluedroid 
packages/apps/Bluetooth 
hardware/libhardware/include/hardware

github上可进行代码的下载 
external_bluetooth_bluedroid 
packages_apps_Bluetooth
 
android_hardware_libhardware

也可以到Android官网去下载 
android Git repositories

参考: 
<Android BlueDroid
<
BlueDroid的结构和代码分布>











本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/6029566.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
自我介绍
各位朋友你们好,我是四川信息职业技术学院的一名大三学生,我学的专业叫软件技术,方向是前端方向。但是在外面培训的这段时间我更偏向于运维,而运维当然是与服务器分不开的,相比在自己电脑上安装虚拟机来说,云服务器会更加方便更加真实,所以我们老师给我们推荐了阿里云高校计划,通过简单的考试之后我拿到了两周的试用资格,使用云服务器的第一感觉就是很方便,性能强,系统都是一键安装。在控制面板里管理服务器也是非常的简单,可视化做的非常好,一系列的操作按钮可以解放很多复杂的操作,最重要的是他的弹性功能非常的人性化,如果当前服务器满足不了需求的话还能添加磁盘,加宽带等操作,一切都是自己做主,让我想到了自己配电脑一样。
231 0
自我介绍
说来实在惭愧,作为一名专科的软件技术专业的学生,竟然到快毕业了才知道云平台,还到了大二才正式开始使用。(我上的是两年制的大专) 我是通过一个网课老师介绍才使用阿里云的,也是为了优惠才发现了这个“飞天加速计划·高校学生在家实践”活动,作为薅羊毛高手,我当然不能放过这个机会,然后我就开始来写体验报告。
168 0
自我介绍
我是一名大三专科生,偶然看见了阿里云的“飞天加速计划·高校学生在家实践”活动。本着薅羊毛的心态,我当然不会放过这次机会。于是我通过测验,兴冲冲的来写报告了。
219 0
Android开发;教你做一个后台相机
做过相机的同学都知道,Camera需要一个SurfaceView来承载预览的输出流,SurfaceView的特性限制了它必须要有一个可见的View才能够使用。
1680 0
android数据绑定框架介绍
背景 数据绑定框架有很多,其实我就看过谷歌官方的数据绑定框架,官方的框架用起来的时候,觉得不是很顺手,侵入性还比较强。而且也一直纠结彷徨,从心底里质疑数据绑定框架的价值,到底给我们开发带来了什么,实用吗,可维护吗? 某一天的早晨突然灵光一现,决定自己去试试开发一个自己喜欢的数据绑定框架,经过
3228 0
介绍几个好用的android自定义控件
首先看效果图, 看下这两个界面,第一个中用到了一个自定义的FlowRadioGroup,支持复合子控件,自定义布局; 第二个界面中看到了输入的数字 自动4位分割了吧;也用到了自定义的DivisionEditText控件。 下面直接看源码FlowRadioGroup了; 1 /* 2 * Copyright (C) 2006 The An
1002 0
Android调用平台功能具体技巧分享
Android操作系统那个可以通过调用手机平台来实现一些特定的功能,诸如网页的显示,邮件的发送等等。那么今天就为大家总结了几个Android调用平台功能的应用技巧,帮助大家增加编程经验。 Android调用平台功能之显示网页 Uri uri = Uri.parse("http://google.com");    Intent it = new Intent(Intent.ACTION_
786 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载