美文网首页程序员BluetoothAndroid开发
A: How do you work on Android sy

A: How do you work on Android sy

作者: ZafirTab | 来源:发表于2017-09-21 14:40 被阅读0次
    • 导语
      该篇文章主要讲述Bluetooth在Android系统中的实现架构。

    1. BlueDroid简介

    在Android4.2之前,Android使用的蓝牙协议栈都是Linux官方的BlueZ,在4.2之后Google推出了与博通合作开发的BlueDroid协议栈。BlueDroid被分为蓝牙嵌入式系统(BTE)和蓝牙应用(BTA)两层。BTE实现了蓝牙规格的核心功能,BTA实现了与Android框架层的通信。

    2. Arch分析

    从Android4.2一直到最新的Android8.0,BlueDroid的架构并没有大的变化。

    Android Bluetooth Arch

    现以Android 7.0为例进行简要介绍:

    • 应用框架层
      APPLICATION FRAMEWORK,该层是具体的蓝牙相关应用的代码,给蓝牙应用提供API调用。
      代码目录为frameworks/base/core/java/android/bluetooth
      该部分代码内部是通过Binder IPC机制来调用bluetooth进程。
    • 蓝牙系统服务层
      BLUETOOTH PROCESS,该层实际上最终被打包成Bluetooth.apk,其在Android框架层实现了蓝牙的service和profiles,并通过JNI调用HAL层。
      代码目录为packages/apps/Bluetooth
    • JNI层
      JNI层代码调用到HAL层,并在蓝牙底层发生某些动作(如发现设备)的时候,接受HAL层的回调。
      代码目录为packages/apps/Bluetooth/jni
    • 硬件抽象层
      HAL,该层定义了android.bluetooth API和蓝牙进程需要使用的标准接口,只有实现这些接口才能确保蓝牙硬件正常工作。
      代码目录为hardware/libhardware/include/hardware
    • 蓝牙协议栈
      Bluetooth Stack,该层实现了通用的蓝牙HAL接口,并且可以进行客制化的扩展和配置。
      代码目录为system/bt,6.0之前代码目录为/external/bluetooth/bluedroid
    • 供应商扩展
      Vendor extentions,该层专为蓝牙芯片供应商设计。供应商可以通过创建libbt-vendor.so并指定这些模块,来添加自定义扩展和HCI层调试。
      代码目录可以根据需求自己设置。

    Android 8.0 新特性预览

    最新的Android版本,对Bluetooth的支持进行了如下增强:

    • 支持 AVRCP 1.4 标准,该标准支持音乐库浏览。
    • 支持蓝牙低功耗 (BLE) 5.0 标准。
    • 将 Sony LDAC 编解码器集成到蓝牙堆叠中。此技术可以增强蓝牙在音频传输方面的能力,实现更高品质的音效。
      关于LDAC实现主要在A2DP profile中。

    相关文章

      网友评论

        本文标题:A: How do you work on Android sy

        本文链接:https://www.haomeiwen.com/subject/gwizsxtx.html