精华内容
下载资源
问答
  • Android蓝牙驱动开发总结,详细解析蓝牙驱动的流程,非常好的资料!
  • Android蓝牙驱动开发总结Android之蓝牙驱动开发总结一 Bluetooth基本概念1二 Android Bluetooth架构12.1 Bluetooth架构图12.2 Bluetooth代码层次结构3三 Bluetooth协议栈分析43.1 蓝牙协议栈43.2 Android与蓝牙协议...

    Android蓝牙驱动开发总结

    Android之蓝牙驱动开发总结一 Bluetooth基本概念1二 Android Bluetooth架构12.1 Bluetooth架构图12.2 Bluetooth代码层次结构3三 Bluetooth协议栈分析43.1 蓝牙协议栈43.2 Android与蓝牙协议栈的关系5四 Bluetooth之HCI层分析54.1 HCI层与基带的通信方式64.2 包的分析及研究74.3 通信过程的研究与分析8五 Bluetooth之编程实现85.1 HCI层编程85.2 L2CAP层编程105.3 SDP层编程12六 Bluetooth之启动过程实现136.1 Bluetooth启动步骤146.2 Bluetooth启动流程146.3 Bluetooth数据流向146.4 Bluez控制流程146.5 Bluetooth启动过程分析15七 Bluetooth之驱动移植157.1 android系统配置157.2 启动项修改167.3 电源管理rfkill驱动167.4 Rebuild Android image and reboot167.5 实现BT睡眠唤醒机制167.6 系统集成17八 Bluetooth之调试与编译178.1 Bluetooth驱动调试178.2 Bluetooth 调试工具18九 Bluetooth之应用程序开发189.1 Bluetooth的API开发189.2 The Basics开发189.3 Bluetooth Permissions开发199.4 Setting Up Bluetooth服务199.5 Finding Devices服务209.6 Connecting Devices服务229.7 Managing a Connection服务269.8 Working with Profiles服务28十 总结与疑问29一 Bluetooth基本概念蓝牙是无线数据和语音传输的开放式标准,它将各种通信设备、计算机及其终端设备、各种数字数据系统、甚至家用电器采用无线方式联接起来。它的传输距离为10cm~10m,如果增加功率或是加上某些外设便可达到100m的传输距离。它采用2.4GHz ISM频段和调频、跳频技术,使用权向纠错编码、ARQ、TDD和基带协议。TDMA每时隙为0.625μs,基带符合速率为1Mb/s。蓝牙支持64kb/s实时语音传输和数据传输,语音编码为CVSD,发射功率分别为1mW、2.5mW和100mW,并使用全球统一的48比特的设备识别码。由于蓝牙采用无线接口来代替有线电缆连接,具有很强的移植性,并且适用于多种场合,加上该技术功耗低、对人体危害小,而且应用简单、容易实现,所以易于推广。蓝牙技术的系统结构分为三大部分:底层硬件模块、中间协议层和高层应用。底层硬件部分包括无线跳频(RF)、基带(BB)和链路管理(LM)。无线跳频层通过2.4GHz无需授权的ISM频段的微波,实现数据位流的过滤和传输,本层协议主要定义了蓝牙收发器在此频带正常工作所需要满足的条件。基带负责跳频以及蓝牙数据和信息帧的传输。链路管理负责连接、建立和拆除链路并进行安全控制。二 Android Bluetooth架构2.1 Bluetooth架构图Android蓝牙系统分为四个层次,内核层、BlueZ库、BlueTooth的适配库、BlueTooth的JNI部分、Java框架层、应用层。下面先来分析Android的蓝牙协议栈。图1 面向库的架构视图Linuxkernel层:bluez协议栈、uart驱动, h4协议, hci,l2cap, sco, rfcommbluez层:这是bluez用户空间的库,开源的bluetooth代码,包括很多协议,生成libbluetooth.so。library层:libbluedroid.so等framework层:实现了Headset /Handsfree 和 A2DP/AVRCP profile,但其实现方式不同Handset/Handfree是直接 在bluez的RFCOMM Socket上开发的,没有利用bluez的audio plugin,而A2DP/AVRCP是在bluez的audio plugin基础上开发的,大大降低了实现的难度。Android的蓝牙协议栈采用BlueZ来实现,BlueZ分为两部分:内核代码和用户态程序及工具集。图2 面向进程的架构视图2.2 Bluetooth代码层次结构(1)JAVA层frameworks/base/core/java/android/bluetooth/包含了bluetooth的JAVA类。(2)JNI层frameworks/base/core/jni/android_bluetooth_开头的文件定义了bluez通过JNI到上层

    展开全文
  • Android 蓝牙驱动开发Android蓝牙驱动开发总结Android 蓝牙驱动开发一 Bluetooth 基本概念 1二 Android Bluetooth 架构 12.1 Bluetooth 架构图 12.2 Bluetooth 代码层次结构 3三 Bluetooth 协议栈分析 43.1 蓝牙...

    Android 蓝牙驱动开发

    Android 之蓝牙驱动开

    发总结

    Android 蓝牙驱动开发

    一 Bluetooth 基本概念 1

    二 Android Bluetooth 架构 1

    2.1 Bluetooth 架构图 1

    2.2 Bluetooth 代码层次结构 3

    三 Bluetooth 协议栈分析 4

    3.1 蓝牙协议栈 4

    3.2 Android 与蓝牙协议栈的关 5

    四 Bluetooth 之 HCI 层分析 5

    4.1 HCI 层与基带的通信方式 6

    4.2 包的分析及研究 7

    4.3 通信过程的研究与分析 8

    五 Bluetooth 之编程实现 8

    5.1 HCI 层编程 8

    5.2 L2CAP 层编程 10

    5.3 SDP 层编程 12

    六 Bluetooth 之启动过程实现 13

    6.1 Bluetooth 启动步骤 14

    6.2 Bluetooth 启动流程 14

    6.3 Bluetooth 数据流向 14

    6.4 Bluez 控制流程 14

    6.5 Bluetooth 启动过程分析 15

    七 Bluetooth 之驱动移植 15

    7.1 android 系统配置 15

    7.2 启动项修改 16

    7.3 电源管理rfkill 驱动 16

    7.4 Rebuild Android image and reboot 16

    7.5 实现 BT 睡眠唤醒机制 16

    7.6 系统集成 17

    八 Bluetooth 之调试与编译 17

    8.1 Bluetooth 驱动调试 17

    Android 蓝牙驱动开发

    8.2 Bluetooth 调试工具 18

    九 Bluetooth 之应用程序开发 18

    9.1 Bluetooth 的AP

    展开全文
  • Android蓝牙驱动开发总结
  • Android蓝牙开发必备,是初学者,初级工程师学习Android 蓝牙的必备手册。 主要分为三部分 1.打开蓝牙; 2.查找附近已配对或可用的设备; 3.连接设备; 4.设备间数据 交换。
  • Android-DualBle库的使用方法,demo里面,有具体的栗子,仔细阅读下,很多注释的,应该容易理解1、建立自己的蓝牙设备对象,demo中有两种蓝牙设备,蓝牙控制led的设备(LedDevice)、蓝牙控制加热器设的备...

    Android-DualBle

    库的使用方法,demo里面,有具体的栗子,仔细阅读下,很多注释的,应该容易理解

    1、建立自己的蓝牙设备对象,demo中有两种蓝牙设备,蓝牙控制led的设备(LedDevice)、蓝牙控制加热器设的备(HeaterDevice),他们继承蓝牙库的对外设备(BLEAppDevice),添加自己的新特征,如led灯颜色,heater定时时间。蓝牙对象必须包含自己的服务、发送、接收三种uuid,以及自定义一个设备类型id,重写三个抽象方法,把uuid写进去。构造方法必须如下的方式,固定两个参数,并且调用父类的构造方法。

    2、建立自己蓝牙设备的数据包结构对象(可选),继承DataParserAdapter,重写相应方法。框架内部根据你定义的结构,自动帮你把蓝牙回应的数据包提炼出来(主要是处理断包、粘包问题),最终的数据包通过onDeviceRespSpliceData(BLEPacket message)方法回调给你。当然你也可以不用架构的处理算法,自己拼包,在DataCircularBuffer 类中,pushOriginalDataToBuffer(byte[] originalData)方法,是各个蓝牙设备数据推过来的入口,在这里接入自己的算法。

    如果不建立DataParserAdapter对象,则默认为null,蓝牙回应的数据,通过onDevicesRespOriginalData(BLEPacket message) 方法回调给你。

    3、建立自己的蓝牙管理对象,继承BLEBaseManager,重写必要的、可选的方法。蓝牙的各种信息交换,都是通过这个类回调给你。很重要!仔细阅读BLEServerListener接口里的方法说明,重写自己需要的方法。 (1)必须重写 onGetDevicesServiceUUID()方法,把自己定义的设备类型ID和设备的service uuid,用map写进去。框架连接上设备后,读取设备的service uuid,根据这个map分辨出是那种类型的设备。

    (2)必须重写BLEAppDevice onCreateDevice(BluetoothDevice bluetoothDevice, int deviceType)方法,框架识别设备类型后,回调给你,你根据设备类型,创建设备对象实例。

    (3)onAddScanDevice(BluetoothDevice bluetoothDevice)方法,框架扫描到设备,就会回调这个方法。

    (4)onAddNewDevice(BLEAppDevice device)方法,框架连接成功一个设备,各种状态完备后,回调这个方法。

    这些方法在BLEServerListener接口都有详细说明

    建立三个对象,就可以使用此框架了,如此简单!

    4、初始化蓝牙框架,APP获得蓝牙相应权限后,调用BLEBaseManager的 initBle(..)方法初始化蓝牙。见demo

    注意

    多设备同时工作,必定引起并发竞争问题,自己要做好同步!demo只是使用方法,没有处理那些问题。

    源码中package com.gbd.sourcing.app.sprayer.bleissus.analysis包里的内容,跟蓝牙库没有直接关系,不影响你的使用,直接忽略他们,他们是对蓝牙数据收发的封装,后面的文章会讲到。

    展开全文
  • 蔡工RK3288_Android7.1驱动开发入门

    千人学习 2020-02-17 13:13:44
    1、基于RK3288平台,基于Android7.1,kernel4.4的驱动移植、调试和开发,驱动框架分析,跟代码等; 2、讲解RK平台的常用外设模块驱动(例如LCD,TP,GPIO,wifi+BT,IR,... 3、介绍一些Android底层驱动开发知识等;
  • Android驱动开发与移植实战详解,完整扫描版

    千次下载 热门讨论 2014-03-13 21:39:22
    李骏、陈小玉编著的《Android驱动开发与移植实战详解》分为18章,依次讲解了Android系统的基本知识, Linux内核的基本知识,分析了Android系统的源码,深入分析HAL层的基本知识,GoldFish下的驱动、MSM内核和驱动、...
  • Android驱动开发

    千次阅读 2015-12-09 13:38:24
    Android应用程序要和硬件...网上关于android系统开发的经典博文较多,大多是在模拟器环境下测试驱动开发,接下来写几篇文章记录一下在全志cubieboard开发板上测试的应用程序控制硬件设备的过程,以备忘和分享测试方法。
    Android是基于Linux的操作系统,底层是Linux内核层(Linux2.6, Linux3.4等),android使用了Linux操作系统的内核和驱动,其中驱动部分除了Linux的设备驱动,android还增加了专用驱动(例如Binder实现进程间通信)。
    
    应用程序要和硬件设备打交道,例如控制硬件设备的LED灯,要经过几个系统架构层:Framework层、JNI层、HAL层、内核驱动层,才能控制到LED灯。

    Android系统的架构层(摘自网络图片)如下:


    从下到上各层依次是:
    1. Linux内核层:Linux内核和驱动模块。Linux的设备驱动有3类,字符设备驱动、块设备驱动、网络接口驱动。Android系统增加了专用驱动,该部分和硬件设备无关是纯软件的东西,如Ashmem(匿名共享内存),Logger(日志驱动),Binder(基于 OpenBinder 框架的一个驱动)。所以android底层的Linux操作系统和标准Linux有一点小差异,但是在设备驱动实现方面和标准Linux一样。
    主要驱动罗列如下:
         1)设备驱动:
          Frame Buffer:帧缓冲,实现显示驱动
          Event:输入设备驱动;
          内存驱动:基于MTD;
          ALSA(Advanced Linux Sound Architecture):音频驱动;
          V412摄像头:视频驱动;
          蓝牙设备驱动;
          WiFi设备驱动。
         2)专有驱动:
          Ashmem:匿名共享内存;
          Logger:日志驱动;
          Binder:进程间通信驱动;
          Power Management:电源管理模块;
          Low Memory Killer:低内存管理器。

    2. HAL层:硬件抽象层,将Android Framework和内核隔离,Android Framework的开发可以不用考虑太多内核驱动程序。HAL没有开源,HAL层的存在主要是google为了保护硬件厂商的驱动程序,不用开源而保密硬件规格。
    3. Libraries和Runtime层:这层是Native层,提供动态库、android runtime运行环境、Dalvik虚拟机等,大部分是C/C++实现。

    4. Framework层:Application层的框架,大部分是Java代码。为应用程序提供API,例如UI程序需要的各种控件,和组件。

    5. Application层:Java开发的应用程序,主要是用户界面,实现人机交互,还可以使用Framework层的API。


    网上关于android系统开发的经典博文较多,大多是在模拟器环境下测试驱动开发,接下来写几篇文章记录一下在全志cubieboard开发板上测试的应用程序控制硬件设备的过程,以备忘和分享测试方法。
    目录:
    一、Android驱动开发-- 1.内核driver层
    二、Android驱动开发-- 2.测试驱动程序
    三、Android驱动开发-- 3.HAL层
    四、Android驱动开发-- 4.JNI层
    五、Android驱动开发-- 5.应用层

    接下来,开始第一节:Android驱动开发-- 1.内核driver层。


    展开全文
  • Android蓝牙开发简介

    千次阅读 2016-05-08 21:26:48
    Android蓝牙系统蓝牙是一种支持设备短距离通信(一般10m内)的无线电技术,可以在众多设备之间进行无线信息交换。Android系统中的蓝牙模块Android包含了对蓝牙网络协议栈的支持,使蓝牙设备能够无线连接其他蓝牙设备...
  • Android蓝牙开发

    2015-01-08 15:58:00
    手机与PC间通过蓝牙实现通信: 一、插入蓝牙适配器,安装蓝牙驱动IVT BlueSoleil 转载于:https://www.cnblogs.com/zhimingcow/p/4211215.html
  • android蓝牙开发——基本概念
  • 蔡工RK3288_Android7.1驱动开发入门 多年Android/Li...
  • 一、Android Bluetooth现状 ...谷歌和Broadcom之间的合作,开发新的蓝牙协议栈,取代了基于堆栈的Bluez。因此市场上出现了老设备的兼容问题,很多蓝牙设备在android4.2手机上不能使用。 N
  • Android驱动开发-底层驱动开发

    千次阅读 2013-03-13 22:12:33
    Android驱动开发的一些参考资料,转载过来以后学习学习! Android 开发之 ---- 底层驱动开发(一) 驱动概述  说到 android 驱动是离不开 Linux 驱动的。Android 内核采用的是 Linux2.6 内核 (最近Linux 3.3 ...
  •  最近做项目,需要开发安卓应用,实现串口的收发,目测CH340G在安卓手机上非常麻烦,而且驱动都是Java版本的, 就没选择,博主在大二的时候学习过Java SE基本的语法,写过一些小程序就放弃了Java的道路。...
  • Android 蓝牙通信及WiFi开发

    千次阅读 2017-03-16 11:31:09
    在我们正常的Android蓝牙功能开发步骤中,一般要经过系统权限和蓝牙开关状态监测、设备扫描、设备连接、蓝牙数据通信这几个过程。 在Android 4.3系统之后,我们可以使用蓝牙4.0(低功耗蓝牙),它最主要的特点是低...
  • 李骏、陈小玉编著的《Android驱动开发与移植实战详解》分为18章,依次讲解了Android系统的基本知识, Linux内核的基本知识,分析了Android系统的源码,深入分析HAL层的基本知识,GoldFish下的驱动、MSM内核和驱动、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,073
精华内容 2,829
关键字:

android蓝牙驱动开发