首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
bluedroid专题
一文迅速上手 ESP32 bluedroid 蓝牙从机开发
前言 个人邮箱:zhangyixu02@gmail.com该博客主要针对希望迅速上手 ESP32 蓝牙从机开发人员,因此,很多蓝牙技术细节知识并不会进行介绍,仅仅介绍我认为需要了解的 API 函数和回调内容。本文主要是基于gatt_server demo来微调进行进行讲解。 代码 #include <stdio.h>#include <stdlib.h>#include <string.
阅读更多...
【BlueDroid】Android BLE 蓝牙开发入门
1. 精讲蓝牙协议栈(Bluetooth Stack):SPP/A2DP/AVRCP/HFP/PBAP/IAP2/HID/MAP/OPP/PAN/GATTC/GATTS/HOGP等协议理论 2. 欢迎大家关注和订阅,【精讲蓝牙协议栈】和【Android Bluetooth Stack】专栏会持续更新中.....敬请期待! 1. 初识低功耗蓝牙 Android 4.3(API Le
阅读更多...
Android BlueDroid分析: 配置文件(bt_stack.conf bt_vendor.conf )的加载与分析
说明 在Android BlueDroid启动,即stack启动的时候,回去加载好几个配置文件, 然后BlueDroid Stack根据这几个配置文件会进行调整, 例如Device ID(did), Log相关的Trace Level, COD(即Class of Device), BT snoop log相关配置等等.下面结合代码和配置文件一起来说明分析. 配置文件说明 配置文件分为运行时
阅读更多...
Android BlueDroid分析: OSI中的Thread的实现与使用分析
说明 thread封装了pthread, 完成的功能是, 使用fixed_queue作为workquque, 将需要被执行的thread function放入其中(enqueue), 使用thread_post来enqueue,enqueue完成后semophore发送信号给dequeue, 然后使用reactor中的epoll_wait监控到dequeue semaphore变更, 就读出qu
阅读更多...
Android BlueDroid分析: OSI中的reactor的实现与使用分析
说明 actor相当于内核中的worker, 用于监控与执行任务. reactor可以认为是: re+actor. 监控使用的是epoll, 而执行任务使用的是对应的epoll_wait返回后的event type, 然后调用相关的read或者write函数来完成对应event type的处理.而epoll_wait对某个fd是监控和执行一次还是多次是使用eventfd来进行控制. epoll
阅读更多...
Android BlueDroid分析: OSI中的HashMap的实现
说明 hash map在C语言标准库中并没有封装, 不像其他语言那么方便, 例如python中有Dictionary, 而hashmap又非常有用, 因此Bluedroid自己封装了一套.封装实现的文件列表如下: osi/src/hash_functions.c osi/src/hash_map.cosi/include/hash_functions.hosi/include/ha
阅读更多...
Android BlueDroid分析: OSI中的List与alloctor的实现分析
说明 在bluedroid中有许多数据是使用List来保存的, 而不同的数据的size各不相同,因此bluedroid中的osi封装了一个list. 不同的OS的malloc与free各不相同,因此为了屏蔽底层细节bluedroid对malloc与free进行了一个封装,成为alloctor. alloctor 定义 alloctor是一对函数函数指针的结构体,因此先要定义来
阅读更多...
[bluedroid]高通平台如何禁用APTX
1.问题背景 aptx是一种技术,全名就叫无损传输技术,也就是一种传输手段。它就像一个音频编解码器,它主要是用来解决一些蓝牙传输中的各种问题。但是说的无损,其实也是同样有损的,但是aptx能让音频延时的情况大大减少。 Apt-X是一种基于子带ADPCM(SB-ADPCM)技术的数字音频压缩算法。原始算法由Stephen Smyth 博士于20世纪80年代提出。由Audio
阅读更多...