- 博客(50)
- 资源 (1)
- 收藏
- 关注
原创 Android车机系统上电获取历史定位信息异常分析
摘要:车机语音应用在地下车库场景无法获取天气信息,分析发现Android Automotive的CarLocationService位置缓存机制未生效。原因是系统未启用多用户模式,导致重启后未加载缓存的位置文件。解决方案包括:1)修改源码强制执行位置加载;2)调整系统异常重启时的缓存清除策略。该问题涉及GPS定位、车机电源管理和多用户模式的系统级交互。(149字)
2025-09-29 21:43:12
117
原创 Android13车机系统自定义系统栏显示策略之状态栏下拉异常
文章摘要: 本文针对Android 13车机系统在自定义系统栏显示策略中存在的遗留问题展开分析。当用户从状态栏中间区域下拉而非顶部边缘时,系统未按预期进入沉浸式临时显示模式(TransientBars),导致应用界面被顶起。通过分析系统框架层手势逻辑和状态栏触摸事件传递链路,提出解决方案:在CarSystemUI状态栏触摸时写入非持久化Settings键值,触发DisplayPolicy进入TransientBars模式。
2025-08-19 21:55:37
302
原创 AndroidR车机系统Settings数据库增加非持久化存储键值方案-续
本文介绍了在Android车机系统中实现Settings数据库非持久化存储的改进方案,扩展了Settings.Secure、Settings.System数据库的非持久化存储功能。
2025-08-19 11:04:23
118
原创 Android13车机系统实现系统栏自定义显示策略
摘要:本文针对车载系统状态栏和底部导航栏的显示控制需求进行分析与实现。在非P档时强制显示状态栏以满足安全法规要求,P档时允许应用全屏显示;底部导航栏采取差异化策略,系统应用采用沉浸式设计,第三方应用默认隐藏。通过修改config配置参数和定制CarSystemUI控制策略,实现了系统栏的灵活控制。
2025-08-18 17:56:11
224
原创 Android13文件管理USB音乐无专辑图片显示的是同目录其他图片
当音乐无专辑图片时,Android原生代码的ThumbnailUtils.createAudioThumbnail方法默认会获取目录下第一个jpg/png文件作为封面
2025-08-02 19:43:28
164
原创 Android11车机系统海外项目资源包RRO方案优化
本文介绍了汽车设置应用如何通过Android RRO(运行时资源叠加)方案实现多车型差异化资源管理。针对不同车型(国内/海外、轿车/SUV)和配置(方向盘、轮毂等),采用产品变体(productFlavors)构建不同APK版本,并通过JSON配置文件动态启用对应资源包。系统根据车辆下线配置自动匹配适用的资源叠加包,解决了硬编码判断带来的维护问题。该方案实现了资源的高效复用,同时支持灵活配置多种车型组合,为汽车行业多车型共平台开发提供了可扩展的技术实现。
2025-07-04 18:20:01
366
原创 Android13车机系统增加三方动态库至BOOT_JARS
摘要:本文介绍了车机系统系统增加三方动态库至BOOT_JARS的参照实现,并通过反射接口调用系统动态JAR包。
2025-07-04 12:34:12
119
原创 AndroidR平台ToastPresenter引出BinderProxy泄漏
Android 11车机系统在自动化测试中频繁出现BinderProxy泄漏导致system_server重启问题,主要表现为BinderProxyMap条目超限(超过2万条)。经分析发现,问题源于频繁弹出Toast提示时,AccessibilityManager未正确释放客户端连接,导致Binder代理对象持续累积。该问题在Android 12中已修复,建议修改ToastPresenter改用AccessibilityManager单例模式或移植高版本的修复方案。
2025-06-18 18:55:55
237
原创 AndroidR车机系统Settings数据库增加非持久化存储键值方案
本文提出了一种针对Android系统Settings数据库的优化方案。原生Settings数据库在Android高版本中采用XML存储方式,用于系统应用间的数据共享。然而,某些临时状态数据(如倒车霸屏状态)频繁写入存储介质会导致不必要的闪存损耗。为此,作者设计了两种过滤机制:通过白名单和固定前缀来标识无需持久化的global设置项。
2025-06-16 14:20:38
81
原创 AndroidR车机TextToSpeech音频焦点异常问题分析
针对车机系统中语音TTS服务被异常终止导致音频焦点未释放的问题,提供三种解决方案
2025-06-06 18:14:15
571
原创 Android11车载WiFi热点默认名称及密码配置
基于Android framework源码,车载项目修改WiFi热点默认名称及密码按一定规则生成
2025-04-12 18:12:04
528
原创 Window 10使用WSL2搭建Linux版Android Studio应用开发环境
Android应用端使用Ubuntu环境Android Studio进行开发,使用repo进行平台性管理,包含所有应用仓库。基于个人使用习惯,不少开发同事还是希望使用Window系统进行开发,系统工具各方面使用方便,如企微、办公软件等。本文介绍如何在Window 10使用WSL2搭建Linux版Android Studio应用开发环境。
2025-04-12 16:53:03
779
原创 AndroidR车机多应用共享Unity3D方案 - 动效一镜到底
每集成一个支持Unity 3D的应用,均需占用一份Unity引擎内存资源,为了达到较好的体验效果并保持热启动,该内存资源无法回收。而项目的内存资源有限,故采取将Unity 3D资源整合为一个3D应用,仅耗费一份引擎内存资源,不同的应用通过场景切换控制3D的显示。应用只需配置是否显示壁纸即可完成3D显示,应用内或应用间切换时通知3D进程转换场景。项目同时存在3D桌面与3D车控,从3D桌面进入车控时,希望达到一镜到底的转场动画效果。
2024-05-22 17:38:12
178
原创 Android P车机添加屏幕多指全局自定义手势操作
参照原生状态栏全局下拉手势拦截,实现屏幕全局多指手势响应操作,并对手势进行转换为KeyEvent,以便项目自定义手势行为或应用拦截手势行为。
2024-01-20 14:17:06
1071
1
原创 AndroidR集成三方Native服务组件
该项目为海外欧盟市场版本,需集成三方IDS安全组件,进程运行时注入iptables指令至链表,检测网络运行状态,并收集异常日志并压缩打包成gz文件,提供给Android上层应用上报云端。
2023-12-28 18:06:30
929
原创 AndroidR车机实现多屏同显方案
项目存在中控屏及副驾屏,客户希望实现本地视频播放,多屏同时显示,声音统一全车扬声器发出。客户要求提供演示demo,进行评估。
2023-11-11 16:39:36
2229
6
原创 AndroidR车机系统添加关背光的WindowType
要求:副驾屏熄屏的时候音频继续播放、视频暂停播放。副驾屏熄屏的时候, 增加蒙层,影响下层应用生命周期,即视频应用进入后台时均暂停播放。
2023-09-24 20:53:15
262
原创 AndoidR车机系统添加CarVirtualPlayer虚拟播放器
车机系统存在虚拟音频源(收音机、AUX、蓝牙音乐、手机互联CarPlay&HiCar等),音频流数据不通过应用层,但应用需要响应方控媒体按键如上下曲、播放暂停等。
2023-09-24 13:46:07
307
原创 AndroidR多物理屏快速切换同一应用时黑屏
原生代码在多屏幕切换场景存在这个问题,快速切换同一应用时黑屏。遇到问题时,有了排查方向,可对比高版本源码进行确认,Google可能已经修复了相关问题,总体来说问题分析的时间远远大于解决问题的时间。
2023-08-04 17:04:41
349
原创 MediaRecorder录音原生时序
Android 多媒体框架支持捕获和编码各种常见的音频和视频格式。如果设备硬件支持,可以使用 MediaRecorder API。
2022-11-16 19:27:30
1001
原创 MediaPlayer音频播放原生时序
MediaPlayer 类是媒体框架最重要的组成部分之一。此类的对象能够获取、解码以及播放音频和视频,而且只需极少量设置。
2022-11-16 17:22:05
880
原创 安卓S平台userroot版本SELinux权限配置
user root版本,开启usb调试,无法进行数据传输,只能充电,电脑也无法成功连接adb由于对应版本必现。
2022-06-09 17:34:16
872
原创 安卓S平台图库不显示OTG设备内图片
插入OTG设备,打开OTG连接,进入智能图库,其他相册,没有显示OTG图片由于对应版本必现,刷入版本后,查看android.log日志。搜索媒体扫描日志打印信息如下:日志只有内部存储的mount广播发出,没有OTG设备挂载广播。.........
2022-06-09 17:28:07
1117
原创 音频播放卡顿优化
背景 音乐播放过程中,进行高CPU操作时,后台音乐播放出现卡滞。分析1、日志分析日志中audioserver出现“AudioFlinger: underrun”的打印05-27 15:35:00.186 396 777 W AudioFlinger: underrun, framesReady(0) < framesDesired(289), state: 605-27 15:35:07.035 396 777 W AudioFlinger: under..
2022-02-18 17:04:29
1848
原创 系统开机时间优化
背景 开机时间较长,无法满足客户及内部测试指标要求。引用官方推荐AOSP优化启动时间参考:优化启动时间 | Android 开源项目 | Android Open Source Project分析一、开机相关日志1、抓取开机到主页时间段内的bootchart图;2、开机bootprof文件,统计各个阶段开机耗时;3、bw系统日志,包含logcat及kernel等日志。二、抓取日志步骤如下:1、串口连接车机,不接外设如U盘等设备,执行su获取roo...
2022-02-18 16:55:42
722
原创 车机屏保功能
一、引言**项目客户需求项 –屏保功能,当功能打开后,点击桌面图标进入屏保或一段时间无操作自动进入屏保模式,屏保显示当前时间及日期。经考虑使用原生的DreamService实现,方案优点:原生架构,方案成熟及使用灵活,支持第三方标准屏保应用; 仅需实现定制的屏保界面,不同项目可根据客户需求实现不一样屏保界面二、简介(转载)白日梦是Android设备的新型互动屏保模式。当设备置入底座或充电闲置状态时(屏幕没有关闭),此模式自动激活。白日梦模式每次显示一个,可以是纯粹的视觉效果,在用..
2022-02-18 15:44:53
2994
原创 Android车机系统层在第三方导航应用内添加图标
一、背景上篇文章记一次进程fd文件句柄内存泄露排查_shusuanly的博客-优快云博客中提到,系统方实现应用在前台的时候添加一个悬浮图标在应用之上,应用退出时取消浮窗。悬浮窗方案存在如下缺点:需要根据应用是否处于前台,进行控制显示与隐藏; 快速切换应用时无法做到同步显示,且增加系统计算压力; 复杂应用内存在多个层级的显示,悬浮窗始终显示在顶层,会遮挡部分显示。二、分析由于PhoneWindow是Window的唯一实现类,而每一个Activity都有一个Window即Phon
2021-11-05 16:01:03
708
原创 记一次进程fd文件句柄内存泄露排查
一、问题现象【台架测试】BE/G1 压力测试(播放视频,再导航,再连续点击图片下一页按钮50次,反复以上操作)后,车机异常卡顿【台架测试-压力】BE/G1 第446次插入U盘,系统卡顿【台架测试】BE/G1 2GDDR低配压力测试,反复拨打挂断电话第73次时,系统卡顿(车机点击拨打电话,车机未显示通话界面,手机端显示通话中)【台架测试】BE/G2 拔插U盘第175次的时,出现系统卡顿,约15S后恢复【实车测试】CA/G1 USB 音乐播放中,语音唤醒大约100多次后,车机运行卡顿【台
2021-11-04 20:43:39
411
原创 Android P车机系统为倒车全景添加新的WindowType
一、需求1、车机系统中,倒车或全景的window需要显示在其他应用之上;2、倒车或全景界面,下层应用生命周期进入onPause -> onStop,避免应用耗费UI资源,如地图导航、视频播放、Camera显示等。二、分析1、针对需求1,倒车全景应用在后台Service中使用WindowManager.addView(View,LayoutParams)的方式添加窗口显示,不依附于Activity,类似悬浮窗显示;2、系统添加倒车全景类型的WindowType,调整优先级在其他wi.
2021-11-03 20:01:26
2021
原创 夏令时引起仪表时间显示错误
一、问题现象测试同事反馈,车机设置不同时区,车机时间显示正确,而仪表显示时间不对。二、问题背景车机Android系统时间变化时,会同步当前系统UTC时间及时区信息给MCU,由MCU根据时区信息转换为本地时间后,每一分钟变化时将本地时间发送至CAN总线,仪表根据CAN总线时间进行显示。三、问题分析由于部分国家使用夏令时,存在15分钟、30分钟、45分钟、1小时等非整数小时的Offset(相对UTC+0时间)时间差,同时夏令时启用仅在一段日期类生效。固原方案仅使用时区来计算本地时间时,当启用
2021-11-03 16:38:40
2338
1
原创 Android P宽屏项目SystemUI下拉栏覆盖NavigationBar导航栏
Android P宽屏项目SystemUI下拉栏覆盖NavigationBar导航栏需求该项目为宽屏显示,NavigationBar导航栏配置在左侧。UI设计为下拉界面全屏显示,要覆盖左侧导航栏。分析1、SystemUI下拉栏默认从导航栏右侧开始显示;2、StatusBar的window层级比NavigationBar低,会被NavigationBar遮挡。实现1、调整下拉栏LayoutParams始终从左侧位置开始;2、修改framework中window层级定义,调整StatusBar的
2021-03-27 14:31:12
646
原创 DisplayMetrics获取宽高不对
DisplayMetrics获取宽高不对一、引言该车机项目为宽屏显示,使用Android 9.0系统开发,分辨率为1920x720,配置navigation bar为120px,显示在左侧。二、问题通过如下方法拿到的屏幕高度值是576,正常应该是720。DisplayMetrics dm = getResources().getDisplayMetrics();int screenHeight = dm.heightPixels;三、分析1、dumpsys displaydumpsys
2021-03-06 14:30:28
1741
原创 一线城市想回重庆发展的同学关注下
一线城市想回重庆发展的同学关注下如果你现在正在北京、上海、深圳、杭州等比较发达的城市工作,但是当地房价很高,你基本上买不起房,毕业前几年一个人拼一下还可以,有了女朋友以后,结婚、生小孩、小孩读书等等一系列生活的问题,突然你会发现在一线城市很难混下去了,于是你会产生很多想法:1、要不要回老家?2、小孩谁来带,放老家吗?3、小孩以后读书怎么办?4、如果是独生子女,还要担心未来父母怎么办?生个病没人照顾怎么办?等等一系列问题。自我介绍下,我2012年重大毕业,去深圳酷派做手机开发.
2021-01-26 12:17:49
715
2
AndroidP_SystemUI下拉栏全屏覆盖NavigationBar导航栏
2021-03-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅