位置: 编程技术 - 正文

Android 蓝牙模块框架分析(蓝牙模块手机程序)

编辑:rootadmin
Android Bluedroid 框架图

推荐整理分享Android 蓝牙模块框架分析(蓝牙模块手机程序),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android蓝牙架构,蓝牙模块手机程序,android蓝牙模块,android蓝牙模块,蓝牙模块下载,android蓝牙模块开发,android蓝牙模块,android蓝牙模块开发,内容如对您有帮助,希望把文章链接给更多的朋友!

Android 蓝牙模块框架分析(蓝牙模块手机程序)

蓝牙组件Bluetooth core stack libraryHCI libraryVendor Specific HCI libraryUART, RFKILL,TUN/TAP and UHID device drivers相关模块bluetooth.apk : packagesappsBluetooth目录下libbluetooth_jni: packagesappsBluetoothjni目录下libhardware: hardwarelibhardware目录下 加载 module.{vendor}.so ,蓝牙模块就是bluetooth.{vendor}.sobluetooth.default.so: externalbluetoothbluedroidmain , externalbluetoothbluedroid 打开各个厂商的动态库libbt-vendor_{vendor}.so, eg:libbt-vendor_rtk.so 依赖libbt-hci.so、libbt-utils.so、libbt-vendor_xxx.solibbt-vendor_xxx.so: bluetooth.default.so 或者bluetooth.{vendor}.so会打开该库audio.a2dp.default.so:高级音频传输库主体调用流程(1) BluetoothManagerService == mBluetooth(AdapterService) ==>(2) AdapterService == classInitNative, initNative, enableNative ==> (3) com_android_bluetooth_btservice_AdapterService == hw_get_module // libhardware.so ==> classInitNative: 1. ro.hardware.bluetooth=vendor 2. load(../../bluetooth.vendor.so) 3. module->methods->open() initNative: 1. sBluetoothInterface->init() // bluetooth.default.so (externalbluetoothbluedroidbtifsrcbluetooth.c) bt_utils_init , btif_init_bluetooth() //btif_core.c BTIF main task prepares BT scheduler for startup --->btif_config_init --->bte_main_boot_entry --->GKI_init() --->bte_main_in_hw_init() //Internal helper function for chip hardware init --->bt_hc_get_interface() // libbt-hci.so --->bte_load_conf() --->bte_load_ble_conf() --->.... --->btif_fetch_local_bdaddr --->GKI_create_task(btif_task,...,..) 2. sBluetoothInterface->set_os_callouts() 3. sBluetoothInterface->get_profile_interface(BT_PROFILE_SOCKETS_ID) 4. sBluetoothInterface->get_profile_interface(BT_PROFILE_MAP_CLIENT_ID) 5. sBluetoothMceInterface->init() enableNative: 1. enable() // bluetooth.default.so externalbluetoothbluedroidbtifsrcbluetooth.c 2. btif_enable_bluetooth() 3. bte_main_enable() --->GKI_create_task(btu_task,...,..) --->bte_hci_enable() ---->bt_hc_if->init() // bt_hc_if为bt_hc_interface_t类型,也bt_hci_bdroid.c中init --->vendor_open() // 打开libbt-vendor.so 可以配置成各个厂商的库,eg:bcm的libbt-vendor_bcm.so --->utils_init() --->userial_init() --->....主干流程: Bluetooth.apk --> libhardware.so --> bluetooth.{vendor}.so --> libbt-hci.so --> libbt-vendor_xxx.so hardware层移植任务(1)对应厂商的bluetooth.{vendor}.so库的实现 // 参考bluetooth.default.so 完成hw_module_t 结构体HAL_MODULE_INFO_SYM的填充,相关结构体hw_module_methods_t,bt_interface_t方法的实现 详参externalbluetoothbluedroidbtifsrcbluetooth.c(2)完成libbt-vendor_{vendor}.so模块的实现 主要bt_vendor_interface_t结构体中init,op,cleanup方法的实现 动态加载节点(1) hardware层 bluetooth.{vendor}.so 加载 hardware.c文件中可以看到, load 加载的库在/system/lib/hw,/system/lib/hw,/vendor/lib/hw,/vendor/lib/hw之中,但是加载的库名称根据 定义的ro.hardware.bluetooth的&#;来确定(2)bluetooth.{vendor}.so加载 libbt-hci.so(3)libbt-hci.so加载libbt-vendor_xxx.so externalbluetoothbluedroidhcisrcvendor.c 文件会根据VENDOR_LIBRARY_NAME定义的&#;来加载动态库,默认是libbt-vendor.so相关链接:移植:

Android项目中的R文件丢失 Android项目中的R文件丢失恢复的方法如下:(1).修改xml文件命名中的大写字母(2).选中项目,点击Project—Clean,清理一下项目;(3).从别的工程中拷贝一份R文

Android基础系列-----------OpenGL ES(一) 一、OpenGLESOpenGL(全写OpenGraphicsLibrary)是个定义了一个跨编程语言、跨平台的编程接口的规范,它用于生成二维、三维图像。这个接口由近三百五十个

通过google全球缓存IP安装安卓SDK 国内google被墙,直接运行sdkmanager无法下载androidsdk离线下载安装太繁琐,而且容易出错通过googleip可以访问sdk下载地址步骤:1,修改hosts文件(位置:C:W

标签: 蓝牙模块手机程序

本文链接地址:https://www.jiuchutong.com/biancheng/385985.html 转载请保留说明!

上一篇:Warning: Build-tool 17.0.0 is missing AAPT at F:adt-bundle-windows-x86sdk

下一篇:Android项目中的R文件丢失(一个android项目一般包含哪些目录?各有什么用途?)

  • 出口退税通俗理解
  • 税后净营业利润和净利润的区别
  • 收到原材料发票的会计分录
  • 自产货物用于生产
  • 城建税 小规模
  • 对外投资固定资产的账务处理
  • 小规模纳税人免征增值税政策
  • 残保金是谁支付给单位?
  • 国际贸易公司注册需要什么条件海南
  • 委托境外研发费用不超过境内符合条件的研发费用
  • 年底暂估成本有风险吗
  • 劳务关系需要缴社保吗?
  • 稿酬所得是否需要按照累计预扣税率
  • 已结转的凭证可以取消结转吗
  • 企业拆迁补偿款要交税吗
  • 开具旧税号也能认证成功
  • 水电费计提和冲销
  • 租用服务器会泄漏数据吗
  • 报销差旅费必须要车票吗
  • 制造业销售费用率多少合适
  • 自然人股息红利免征个人所得税?
  • 期间费用的研究费用填什么
  • 技术合同与购销合同区别
  • 面粉厂怎样做帐,税率是多少?
  • 不征税的通行费怎么分录
  • 预付账款如何计提折旧
  • win10右键个性化提示该文件没有与之关联
  • 公司估值一般不超过市值多少
  • 债转股是好还是坏
  • KunlunPlatform.exe是什么进程?KunlunPlatform.exe是安全的程序吗?
  • php程序开发范例宝典光盘
  • PHP:mcrypt_cfb()的用法_Mcrypt函数
  • 内账怎么处理增值税
  • 增值税专用发票有几联?
  • php获取get
  • 收回前欠货款存入银行的会计分录
  • 前端解决跨域问题的8种方案(最新最全)
  • 音乐制作人评刀郎新专辑
  • 应交增值税缴纳后入什么费用
  • 安装php5.6
  • 织梦专题页模板
  • 帝国cms移动端
  • 小规模纳税人升为一般纳税人条件
  • 内账的账务处理
  • 收到现金货款会计分录
  • 申报表本期金额和上期金额
  • 持有至到期投资减值准备
  • 小规模公司销项发票税额记到哪里了
  • 用材料抵扣货款通知怎样写
  • 把其他应付款转成实收资本的话需要去工商改注册资本么
  • 购买无形资产的手续费计入
  • 转账支票的特点有哪些
  • 应交税费应交增值税已交税金怎么用
  • 电子监控系统安装与维修
  • 发票 发票专用章
  • 展览费计入管理费用吗
  • 企业应当设立什么负责企业安全生产的日常监督管理工作
  • 企业如何建账之类的账目
  • mysql的操作
  • mysql中key 、primary key 、unique key 与index区别
  • linux系统中对新磁盘分区的命令
  • os x10.11el capitan beta2下载地址
  • centos6 dhcp
  • 用户访问控制手段
  • 网页收集数据
  • 仿百度首页
  • Vuforia How To Use Android Plugins in Unity Apps
  • 瀑布流水风景图片
  • 办完营业执照多久可以开抖音小店
  • 抵扣怎么做账
  • 江苏省税务局土地增值税清算公告
  • 换发票需要交钱吗
  • 杭州市税务局举报
  • 出口退税是指对出口货物退还其在国内
  • 买了发票但是税控机里显示没有发票怎么办?
  • 北京纳税申报的具体流程
  • 郑州房产交契税在哪里交
  • 个人所得税没申报会退吗
  • 现在买新车都需要交什么费用
  • 关于企业所得税的说法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设