- 博客(96)
- 资源 (14)
- 收藏
- 关注
原创 AAOS性能优化(一) -- Application Not Responding
若主线程(Main thread、UI thread)处于阻塞状态,就有可能会触发ANR(Application Not Responding,应用无响应)错误。当出现这种错误时会导致退出应用。Android系统中,ActivityManagerService(简称AMS)和WindowManagerService(简称WMS)会检测APP的响应时间,如果APP在特定时间无法处理相应屏幕触摸或键盘输入事件,或者特定时间没有处理完毕,就会出现ANR;
2025-12-22 16:05:55
907
原创 【AAOS】【源码分析】Car Location服务(一)- 车载定位介绍
摘要:车载定位技术通过GNSS、惯性导航、蜂窝网络等多种方式实现车辆精确定位,是智能交通和自动驾驶的核心技术。GNSS系统利用卫星信号进行三角测量定位,由空间段、地面段和用户段组成,全球四大系统(GPS、北斗、GLONASS、Galileo)提供不同精度的定位服务。随着自动驾驶发展,高精度定位需求增加,车载定位技术将更广泛地应用于车辆导航和管理领域。
2025-11-11 15:17:11
715
原创 【AAOS】【源码分析】Car Location服务(二)- NMEA 数据
NMEA是国际通用的导航数据通信标准,广泛应用于GPS、北斗等卫星定位系统。目前主流协议NMEA-0183采用ASCII格式传输数据,包含GGA(定位信息)、RMC(导航信息)等标准语句,每条语句以"$"开头并以校验和结束。NMEA协议历经多次升级,从0180、0182发展到0183,并演进为支持CAN总线的NMEA2000和基于以太网的OneNet协议。该协议具有通用性强、兼容性好等特点,被各类导航设备广泛采用,可实现位置、速度、时间等关键数据的标准化传输与解析。
2025-11-03 22:03:42
900
原创 【AAOS】【源码分析】Car Location服务(三)- 整体介绍
AAOS 的 Location 系统(位置信息系统)是 Android 框架中负责提供定位服务(GPS/GNSS)与位置相关功能的子系统。它负责从底层硬件(GNSS 芯片、网络定位模块、传感器等)获取位置信息,并提供给上层应用(如导航、天气、车队管理、车辆状态报告等)。AAOS 的定位系统是基于 Android 标准架构扩展而来的,但增加了针对车载环境的接口与策略,如:车厂自定义的 GNSS HAL(Hardware Abstraction Layer)与车载总线(CAN、VHAL)交互。
2025-10-30 11:42:19
833
原创 AAOS性能优化(二) -- LeakCanary基本介绍
LeakCanary是Square公司开源的Android内存泄漏检测工具,可自动识别Activity、Fragment等未释放对象,通过堆转储分析生成详细的泄漏路径报告。其优势在于集成简单、自动化检测和可视化分析,但不支持线上监测。核心模块包括检测(watcher)、分析(analyzer)和Android适配层。工作原理分为三阶段:检测未回收对象→转储堆快照→分析泄漏路径。适用于开发调试阶段,能有效减少OOM等问题。
2025-10-20 16:21:21
835
原创 【AAOS】【源码分析】Car Bluetooth(十) -- AAOS与AOSP Bluetooth的区别和联系
摘要:AAOS蓝牙框架基于AOSP的Fluoride协议栈,但针对车载场景进行了扩展。主要差异包括:强制支持车载专用Profile(如HFP、PBAP)、新增CarBluetooth服务、实现多用户管理、定制符合驾驶安全的UI界面,以及为OEM预留音频路由等定制接口。AOSP侧重通用设备功能,而AAOS强调驾驶场景适配,在保持核心协议栈不变的前提下,通过分层扩展满足车规级需求。
2025-08-27 10:25:09
883
原创 【AAOS】Android Automotive 16模拟器源码下载及编译
摘要:Android车载系统源码编译运行指南。首先通过repo工具下载源码(repo init + repo sync),然后执行环境配置和编译(source envsetup.sh + lunch + make)。编译完成后使用emulator命令运行模拟器,可看到车载系统界面效果,包括Home主屏、应用列表、设置菜单、HVAC空调控制以及通知中心等功能模块。该过程完整展示了从源码下载到模拟运行的Android车载系统开发流程。
2025-08-19 11:37:33
495
原创 【AAOS】【源码分析】Car Bluetooth(三) -- 蓝牙启动
Android蓝牙启动流程分为三个关键阶段:1)内核层加载蓝牙驱动并初始化HCI接口;2)HAL层通过init.rc启动蓝牙硬件服务进程;3)SystemServer启动蓝牙管理服务。具体流程为:内核加载驱动后创建/dev/hci0设备,init.rc启动HAL服务进程,SystemServer发布BluetoothManagerService,随后调用HAL接口初始化HCI协议栈,最终完成蓝牙协议栈启动进入STATE_ON状态。该过程实现了从底层驱动到上层服务的完整启动链路。
2025-07-20 13:55:56
1041
原创 【AAOS】【源码分析】Car Bluetooth(二) -- 整体源码
Android13将蓝牙设为可选Mainline模块,通过APEX包格式(包含APK、原生库和API)实现快速更新和安全修复。代码结构分为接口层、框架层、系统服务层和协议栈模块,支持独立升级,旨在减少碎片化、提升安全性和用户体验。该设计能降低维护成本,加快功能迭代,并解决蓝牙相关的安全漏洞问题。
2025-07-20 13:51:11
447
原创 【AAOS】【源码分析】Car Bluetooth(一) -- 基本介绍
大部分逻辑在Linux 内核中,用户空间通过 D-Bus 调用。:使用 D-Bus 作为通信机制。:Android 上兼容性差,D-Bus 效率低,接口杂乱。
2025-06-23 17:32:02
656
原创 【AAOS】【源码分析】用户管理(五)-- MUMD介绍
MUMD(多用户多屏显示)是Android Automotive OS为车载多乘员场景设计的功能,支持不同座位用户独立操作各自屏幕。
2025-06-20 17:23:23
1188
原创 【AAOS】【源码分析】CarFramework
CarFramework是专为汽车定制的Android框架,主要区别在于它提供特定汽车API和服务。
2025-06-13 16:53:21
903
原创 【AAOS】【源码分析】用户管理(四)-- 用户切换
文章摘要:Android用户切换流程分为UI触发和HAL层触发两种方式,主要涉及用户检测、创建和切换三个环节。当目标用户不存在时,系统会执行createUser()创建新用户并初始化相关配置;若用户存在则直接切换。HAL层支持7种自动切换场景,包括车钥匙认证、座椅识别、人脸识别等。该功能由CarUserManager模块实现,采用后台线程切换以避免UI阻塞。整个流程涵盖用户管理、HAL通信和系统服务协同工作,在车载等多用户场景中实现无缝身份切换。
2025-06-10 15:56:32
343
原创 【AAOS】【源码分析】用户管理(一)-- 基本介绍
Android是一个基于Linux内核的操作系统,因此Android也支持多用户模式,即可以在同一台设备上创建多个用户账户,每个用户都有自己的应用、数据和设置。这样可以保护用户的隐私,也可以方便不同的使用场景。但是,Android的多用户机制并不完全等同于Linux的用户组机制,它们之间依然有较大的差异。
2025-05-21 09:55:37
1318
原创 【AAOS】【源码分析】电源管理(二)-- 车库模式
车库模式(GarageMode)是AAOS(Android Automotive OS)中的一种特殊空闲模式,旨在确保汽车在关闭引擎后仍能执行系统更新、扫描和优化等任务。与手机不同,汽车在关闭后系统通常处于断电状态,因此车库模式通过保持系统唤醒状态,为汽车提供类似手机的空闲时间窗口。当汽车关闭时,系统进入车库模式,显示屏关闭但电源保持接通,允许执行后台任务。用户可以通过ADB命令控制车库模式的启动、结束和状态查询,并设置其持续时间。
2025-05-19 15:11:47
900
原创 【AAOS】【源码分析】CarAudioService(二)-- 功能介绍
车内的音频环境要远比手机设备复杂,除了信息娱乐系统以外,车内的音频设备同样有可能被其他系统使用,因此音频处理也比手机系统更复杂,接下来会通过代码角度来分析车载音频的具体处理逻辑。
2025-04-09 14:32:03
1316
原创 【AAOS】【源码分析】CarAudioService(一)-- 基本介绍
CarAudioService(汽车音频系统)是在核心 Android 音频堆栈的基础之上打造而成,以支持用作车辆信息娱乐系统的情况。AAOS 负责实现信息娱乐声音(即媒体、导航和通讯声音),但不直接负责具有严格可用性和计时要求的铃声和警告。虽然 AAOS 提供了信号和机制来帮助车辆管理音频,但最终还是由车辆来决定应为驾驶员和乘客播放什么声音,从而确保对保障安全至关重要的声音和监管声音能被确切听到,而不会中断。
2025-04-07 14:17:03
856
原创 【AAOS】【源码分析】CarSystemUI -- Keyguard
keyguard实现代码:packages/apps/Car/SystemUI/src/com/android/systemui/car/keyguard。用于锁屏界面的资源文件:packages/apps/Car/SystemUI/res-keyguard。AAOS 15的Keyguard支持多种身份验证方法,包括PIN码、密码、图案解锁。
2025-04-07 10:34:20
692
原创 【AAOS】Android Automotive 14模拟器源码下载及编译
【代码】【AAOS】Android Automotive 14模拟器源码下载及编译。
2024-10-13 15:58:24
1108
原创 【AAOS】Android Automotive 15模拟器源码下载及编译
【代码】【AAOS】Android Automotive 15模拟器源码下载及编译。
2024-10-13 11:39:37
1213
原创 【车载以太网】【SOME/IP】vsomeip代码解析--routing_manager
RoutingManager负责维护客户端的订阅列表,并在服务端有新的发布事件时,将该事件路由到所有订阅了该事件的客户端。
2024-09-17 15:38:40
1618
原创 【车载以太网】【SOME/IP】vsomeip代码解析
vsomeip整体配置文件环境变量#define VSOMEIP_ENV_APPLICATION_NAME "VSOMEIP_APPLICATION_NAME" #define VSOMEIP_ENV_CONFIGURATION "VSOMEIP_CONFIGURATION" #define VSOMEIP_ENV_CONFIGURATION_MODULE "VSOMEIP_CONFIGURATION_MODULE" #define VSOMEIP_ENV
2024-09-17 10:08:43
789
翻译 【车载以太网】【SOME/IP】vsomeip介绍
vsomeip 是GENIVI项目中的一个SOME/IP开源实现,基于Mozilla Public Liense v2.0协议开源,由BMW贡献。
2024-09-13 17:33:33
2128
原创 【车载以太网】【SOME/IP】Wireshark 解析
Dissector.get 的参数原本是 someip ,它的参数和 p_someip = Proto(“someip”, xx) 修改后的名字保持一致就没有问题了。Dissector.get 的参数原本是 someip ,它的参数和 p_someip = Proto(“someip”, xx) 修改后的名字保持一致就没有问题了。Wireshark从3.2版本开始支持SOME/IP,启用相应的插件即可以使用Wireshark解析解析并查看SOME/IP数据。
2024-09-13 11:46:36
2643
E37&E37.1&E37.2.pdf
2020-07-20
SEMI E4-0699.pdf
2020-07-20
SEMI E5-1104 SEMI EQUIPMENT COMMUNICATIONS STANDARD 2 MESSAGE CONTENT (SECS-II)
2020-07-20
gem-0.2.5-src.zip
2021-09-23
SEMI E30&E30.1&E30.5
2020-07-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1