• Bluedroid介绍


    1. 概述

    在<Android蓝牙介绍>中,介绍了Android蓝牙的基本结构

    在实际运行的Android中,Bluedroid是以库文件的形式呈现(这里借用别人博客的图片)

    BluedroidOverview   
    -- /system/vendor/lib/libbt-vendor.so: 即厂商提供的模块
    实现了bt_vendor_interface_t类型接口BLUETOOTH_VENDOR_LIB_INTERFACE
    目前开源的实现有brcmqcom

    -- /system/lib/libbt-hci.so: Bluedroid协议栈HCI模块
    实现了bt_hc_interface_t类型接口bluetoothHCLibInterface

    -- /system/lib/hw/audio.a2dp.default.so: ad2p的硬件抽象层实现
    实现了a2dp音频设备, 具体可参考audio policy

    -- /system/lib/hw/bluetooth.default.so: Bluedroid协议栈核心模块
    实现了bt_interface_t类型接口bluetoothInterface
    通过该接口又可获取各Profile对应接口

    -- /system/lib/libbluetooth_jni.so: Bluetooth JNI模块
    Bluedroid(主要是bt_interface_t)的封装层, 供JAVA层使用

    2. 接口

    Bluedroid提供的模块与接口对应关系如下图所示

    bluetooth_API

    3. 线程

    Bluedroid线程由应用层发起创建

    bluedroid_process

     

    参考网址:
    <B2G/Bluetooth-bluedroid>

  • 相关阅读:
    Redis持久化
    Java多线程面试题
    Spring学习总结(1)-注入方式
    SpringCloud常用注解
    Linux安装Redis
    Linux系统安装MySQL
    [转]Java CPU 100% 排查技巧
    ImportError: attempted relative import with no known parent package
    python出现Non-ASCII character 'xe6' in file statistics.py on line 19, but no encoding declared错误
    10个不为人知的 Python 冷知识
  • 原文地址:https://www.cnblogs.com/hzl6255/p/3896097.html
Copyright © 2020-2023  润新知