
BT
Tommy_wxie
Tommy_wxie
展开
-
Kernel中uart接口的bluetooth driver初始化分析
在前面几篇文章中,我们把kernel中bluetooth stack相关的初始化分析完成,今天晓东带大家来一起分析uart接口的bluetooth driver的初始化。首先,我们来到kernel/drivers/bluetooth目录,看hci_ldisc.c文件。又见到我们熟悉的module_init:module_init(hci_uart_init);好吧,动手来看吧:转载 2013-12-31 16:26:50 · 7505 阅读 · 0 评论 -
[android源码分析]bluetoothd service的启动的总体流程分析
本篇文章将会从总体流程上解释一下每一个函数的意义,具体的每一个函数的解释将是一个很长的过程,后面的文章中我将会针对每一个有意义的函数来具体分析。在具体分析bluetoothdservice的启动之前,我们先来看一下bluetoothd service究竟是什么,他同样定义在init.rc中:servicebluetoothd /system/bin/bluetoothd -n转载 2013-12-31 16:38:40 · 3970 阅读 · 0 评论 -
Android4.0中蓝牙适配器state machine(状态机)的分析
今天晓东和大家来一起看一下Android4.0中蓝牙适配器(Bluetooth Adapter)的状态机变化的过程。首先,我们需要了解一下,蓝牙适配器究竟有哪些状态,从代码可以清晰地看到(frameworks/base/core/java/android/server/bluetoothadapterstatemachine.java):[java] view plaincop转载 2013-12-31 16:34:33 · 4765 阅读 · 1 评论 -
Android中bluetooth的架构
既然我们想要系统地进行分析一下Android的bluetooth,那么就有必要首先来从总体架构上看一下bluetooth在Android中是处于哪些层次,做到手中有枪,心里不慌。Bluetooth从总体来看,基本的架构图如下: 这张图是我拷贝的网上的一份介绍bluetooth的ppt上,他应该也是出于某一份大牛之手,可惜的是我并没有能够找到具体的出处,若有人看到可以告诉我一转载 2013-12-31 15:55:49 · 3833 阅读 · 0 评论 -
[android源码分析]sdp Server的启动分析
SDP server是蓝牙启动过程中的一个非常重要部分。本文简单介绍一下这个函数的实现。[cpp] view plaincopyint start_sdp_server(uint16_t mtu, const char *did, uint32_t flags) { //这里传入的flags是SDP_SERVER_COMPAT //所以compat值是有效转载 2013-12-31 16:40:30 · 2268 阅读 · 0 评论 -
Android启动之bluetooth
前一段时间我们分析了kernel中bluetooth的初始化操作,从这一章起,晓东将会和大家一起正式进入到Android中bluetooth的分析。毫无疑问,我们依然需要知道在Android启动的时候,蓝牙究竟有做些什么。 首先我们来回顾一下Android启动的一般流程,有人把它归结为4个步骤,分别为1)init进程启动;2)Native服务启动;3)System se转载 2013-12-31 16:30:41 · 4444 阅读 · 1 评论 -
Kernel中rfcomm层的初始化
篇文章《kernel中bluetooth的初始化》一文中晓东和大家分享了HCI层,L2CAP层以及SCO层的初始化流程,今天晓东继续和大家一起来看rfcomm层的初始化流程。 在正式开始之前,我们先来看一下rfcomm层是什么,百度百科是这样介绍rfcomm的:“一个基于欧洲电信标准协会ETSI07.10规程的串行线性仿真协议。此协议提供RS232控制和状态信号,如基带上的转载 2013-12-31 16:24:45 · 3146 阅读 · 1 评论 -
Android Bluetooth蓝牙开发\蓝牙协议\蓝牙通信例子_Android支持蓝牙4.0版本_BLE开发
一、Android Bluetooth现状在android官网可以了解到android4.2新增了部分新功能,但是对于BT熟悉的人或许开始头疼了,那就是Android4.2引入了一个新的蓝牙协议栈针。谷歌和Broadcom之间的合作,开发新的蓝牙协议栈,取代了基于堆栈的Bluez。因此市场上出现了老设备的兼容问题,很多蓝牙设备在android4.2手机上不能使用。N原创 2013-12-31 15:52:50 · 4202 阅读 · 1 评论 -
[android源码分析]enable_native中的hci dev注册和up
2、enableNative的分析 enable Native是真正的蓝牙使能的函数,蓝牙打开的一系列操作都是通过他来真正实现的。可以认为,这个函数蓝牙使能的主干,其余几个方面都可以认为是旁枝末节而已,因此,无论如何,我们必须了解到这个函数真正的精髓所在。 先来看jni层究竟是如何实现这个函数的:[cpp] view plainc转载 2013-12-31 16:37:25 · 2684 阅读 · 1 评论 -
Kernel中Hid和Bnep的初始化
有了前面的L2CAP,RFCOMM的初始化分析,再来分析Hid和Bnep的代码就轻松很多了。基本来说,这两个protol没有太多的新意,直接看代码就可以看出来了。[cpp] view plaincopystatic int __init hidp_init(void) { int ret; BT_INFO("HIDP转载 2013-12-31 16:26:17 · 1849 阅读 · 1 评论 -
kernel中bluetooth的初始化
我们大家都知道,Android其实是基于linux之上进行运行的。在Android系统的运行之初,首先是kernel层的一系列的初始化。今天晓东就先和大家来简单分析一下在开机之后,kernel中和bluetooth的初始化相关的内容有哪些。 我们仍然还是才kernel/net/bluetooth下面的代码开始查看,搜索一下initcall相关的内容也就只有在af_bluet转载 2013-12-31 16:13:12 · 3679 阅读 · 1 评论 -
Kernel中bluetooth相关的config选项
有了前几篇对bluetooth的初步了解,今天晓东就和大家正式开始bluetooth的代码阅读了。在开写这篇文章之前,晓东也很纠结,究竟该从哪里开始着手写相关的内容。最初的打算是准备从蓝牙的开关开始着手的,这是一条大家很好理解也很容易上手的路线。但后来好好想想,还是放弃了这样的想法,因为,我们的这次的系列文章准备稍微讲得深入一点,协议层是肯定要涉及的,而不是简单的浮在JNI之上去分析。所以,今天我转载 2013-12-31 16:10:31 · 5609 阅读 · 0 评论 -
Android4.0中Bluetooth的代码结构
也许在看了上一篇的《Android中bluetooth的架构》一文后,你已经有了强烈的想去动手看看源代码的冲动了吧?没错,看源码绝对是一个很好的理解方法,但是涉及到Bluetooth的源代码究竟在哪里呢?也许,有人很快就能够找到一些内容,但也许有同学还比较茫然,不知道究竟该去哪里阅读,没关系,这篇文章就由晓东来给您详细说一下在Android中Bluetooth的代码有哪些。转载 2013-12-31 16:05:29 · 1900 阅读 · 0 评论 -
[android源码解析]bluetoothd默认初始化中main.conf的解析
上文我们从总体上把握了bluetoothd启动的流程,下面我们就具体的细节来详细分析一下,首先要看到的就是init_defaults,在它里面最重要也是最有意义的就是main.conf的解析了。我们通常需要修改某个配置就去修改main.conf中的内容,那么这些内容又是如何真正被配置呢?本文就来和你一一说来。2.2.1 默认的初始化简介这个函数会初始化一些默认的配置,在main.c转载 2013-12-31 16:39:17 · 3648 阅读 · 0 评论