- 博客(16)
- 资源 (5)
- 收藏
- 关注
原创 安卓日志系统开发
安卓提供了logcat和dmeg,已经当app,framework,native,kernel发生crash的时候都会生成对应的文件,但是目前没有一个整理管理这些文件的方案,所以设计了一套远程访问本地日志的以及本地记录日志的方案,便于系统进行问题的分析定位。3:把日志文件先保存到内存,然后压缩以后记录到磁盘,这样可以节省写的数据量,但是会占用宝贵的内存空间,而且日志大小不好控制。4:加大存储空间,理论上存储空间超10G,然后减少无效的日志,即使一直写,也能用30年以上。
2024-11-19 17:21:32
233
原创 蓝牙协议栈初始化流程
本文分析了蓝牙协议栈初始化过程中btif_init_ok函数的调用流程。该流程从BTU任务启动开始,通过线程切换机制将任务从BTU线程切换到JNI线程执行,最终调用btif_init_ok完成初始化。关键步骤包括加载BLE本地密钥、启用蓝牙核心栈、发送VSC命令获取芯片能力等。文章详细分解了函数调用链,并说明了VSC命令完成后的回调处理流程,以及初始化完成后的协议栈状态。整个流程涉及多个子系统协同工作,确保蓝牙功能正确初始化并进入可操作状态。
2025-10-18 17:27:27
141
原创 ble蓝牙发送协议栈分析
文章摘要:Android BLE广播启动流程分析,入口函数为BluetoothLeAdvertiser.java中的startAdvertising()。该方法首先检查蓝牙适配器状态、数据大小限制和重复启动情况,然后构建广告参数(包括连接性、扫描模式、间隔和功率设置),最后通过startAdvertisingSet()启动广播。关键步骤包括参数验证、回调包装以及调用底层API实现广播功能,同时处理各种失败情况。
2025-10-18 17:23:03
211
原创 BLE外围设备app代码
本文介绍了基于RK3566设备的Android BLE外围服务实现方案。该服务采用分层架构,包含BLE广播、GATT服务器、多设备连接管理和数据收发等核心功能。系统通过BluetoothLeAdvertiser实现广播管理,使用BluetoothGattServer处理GATT请求,并采用ConcurrentHashMap进行多设备连接管理。文章详细分析了服务生命周期、初始化流程、广播配置、GATT服务定义等关键模块,并介绍了Binder、回调和观察者等设计模式的应用。最后提出了广播间隔优化、内存管理和功耗
2025-10-18 15:36:13
807
原创 外围设备app架构代码框架
本文介绍了一个基于RK3566设备的Android BLE外围服务实现方案。该方案核心功能包括BLE广播、GATT服务器、多设备连接管理和数据收发。系统采用分层架构设计,包含应用层、服务层、BLE API层和协议栈层,通过Binder模式提供接口访问。关键设计包括:服务生命周期管理、BLE初始化流程、广播优化策略、GATT服务器架构、连接状态机以及数据通信机制。系统还实现了错误处理、安全控制、兼容性适配和性能优化策略,如广播功率调整、内存管理和低功耗设计。该方案支持Android多版本适配,提供了诊断功能和
2025-10-18 15:28:36
783
原创 如何从固件里面提取dtb
我们在工作中很多时候会碰到需要从一个固件里面提取dtb,然后把dtb转换成dts的需求,一般是我们缺乏对应平台的源码,但是有对应平台的烧录固件,我们需要通过烧录固件,参考类似平台的dts配置信息,我们安装RK平台来说下提取的过程和步骤。
2025-01-20 15:21:56
1062
原创 智能座舱蓝牙架构实现
智能座舱这边直接蓝牙电话,因为TBOX这边跑的是Linux系统,所以当时我移植了bluez蓝牙协议栈,并且实现了本地蓝牙耳机音乐播放的功能,TBOX这边的蓝牙芯片是主,可以接2个蓝牙从设备,但是蓝牙耳机声音是来自于智能座舱的,所以需要在TBOX和智能座舱之间实现多媒体声音的网络传输,在这个方案中我打通了Linux平台适配蓝牙耳机的功能,声音网络传送交给另外一个同事在做一直到我离开都没进展。TBOX这边也有一颗蓝牙芯片,它作为主机,连接蓝牙钥匙,整个原先的方案有3颗蓝牙芯片,所以公司领导想节省一颗蓝牙芯片。
2024-12-13 14:35:57
473
原创 会议终端机
公司被美国制裁了,所以原先X86那套的视频采集终端没法用了,需要开发一套替代的产品,此会议终端机可以外接4个摄像头,以及2路HDMI输入接口,一路HDMI 4K高清输出,接音频采集设备。主芯片采用RK3399,辅助芯片采用采用hisi3556 ,4个摄像头分别布置在整个会议的4个方向,可以获取任意一路视频流,或者4路合成的视频流。2:这个项目复杂的 地方在接了4路摄像头,原先的是接一路摄像头,需要提供应用那边可以拉取任意一路摄像头流的接口,底层传送代码需要重构。4:PCIE驱动的开发也是本项目的一个难点。
2024-12-13 14:11:53
194
原创 视频会议系统
传统的视频会议采用Linux平台,windows平台,随着Android在多媒体方面的突出表现,Android系统被引入到了视频会议里面,这款产品也是从0到1,产品采用hisi3798平台,搭载hisi3516双芯片的架构hisi3516 整个系统由安卓系统负责加载,只有DDR 没有emmc flash芯片,安卓系统编码能力比较弱,所以摄像头输入由hisi3516进行编码,然后通过pcie传送到hisi3798,hisi3798通过网络把编码以后的数据通过服务器传送到对端解码显示。
2024-12-10 09:00:50
224
原创 VR安卓系统开发
1:屏幕采用了插黑技术。2:主cpu用的是三星和高通的方案。3:触摸屏模拟成按键的形式4:传感器采用的3合一的芯片(陀螺仪,磁力计等)5:WiFi,摄像头,蓝牙等外围模块。
2024-12-06 14:02:59
295
原创 弱视助视仪开发
这个项目是我独自一个人负责的第一个安卓系统,因为部门就我一个搞安卓系统和驱动的,公司的产品原先是用DSP 平台做的,DSP 平台的缺点就是没法用一写开源项目,比如文字转语音等,所以公司打算做一款安卓平台的助视仪,他的产品形态可以说一台带安卓系统的数码相机,相机可以近距离的放在文字上面,通过按键对文字进行变色处理,比如白底黑字变成黄底黑字。可以通过按键实现画面的冻屏效果。产品主要卖给残联,国外主要是卖给老年人,属于闷声发点小财的市场。
2024-12-06 13:24:58
378
原创 车载终端开发项目
当时我们还去竞标长安汽车的一个项目,我们采用的是Android系统开发的中控台,对手采用的是黑莓的QNX,最后安卓系统凭借出生的生态系统和人机交互体验,打败了对方的QNX,不过10年后短暂的在零跑汽车做过一段时间智能座舱架构师的开发工作,了解到现在采用的都是双系统的架构,安卓跑在QNX构建的虚拟机上,当初斗的2个系统,在新的时代各自发挥着各自的强项。mcu芯片主要是为了实现低功耗而特意加的,因为当时的燃油车大部分都是蓄电池,支持不了安卓的待机功耗,所以需要通过一个单片机来控制安卓系统的启动。
2024-12-06 09:37:56
852
原创 Android OTA 差分升级
目录前言一、全量包和增量包的对比二、增量包1:打包命令2.差分包升级总结前言本文章基于rk3566 Android 11 对差分升级开发过程中碰到的一些问题进行了归纳总结全量包的优点: 不依赖设备当前的版本,不容易出错全量包的缺点: 整包的大小接近固件的镜像,下载时间过长 整包安全性不够,因为包含了固件的绝大部分信息增量包的优点: 包大小整体很小 安全性有保证增量包的缺点: 升级流程比增量部分要复杂很多,需要对设备的版本
2024-12-03 16:25:15
2436
原创 wifi 性能之吞吐量测试
吞吐量测试主要测试该网卡在局域网的平均传输速度,直接能体现出该网卡的网络性能,网络吞吐量包括上行速度和下行速度,如网络设备A在网上下载应用,这时候影响下载的最大因素是下行速度,如果上传资料,那么影响的最大因素是上行速度。防止 PC 电脑设备落后导致测试,网络吞吐量过低,无论测试有线!1:测试无线网络时,两个设备端之间,不能存在格挡物,如墙面、机器、金属等物品,导致无线通信传输受阻,影响吞吐量速度。安卓设备和pc接在路由器上,安卓通过wifi与路由器进行数据交互,PC通过有线网络和路由器进行数据交互。
2024-11-15 17:39:12
2924
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅