
Android车载应用分析
文章平均质量分 94
林栩link
专注车载开发的Android程序猿
展开
-
【车载Android】模拟Android系统的高负载环境
Stress是一个功能强大的Linux压力测试工具,专门设计用于模拟高负载条件下的系统环境。它能够对系统的关键组件,如CPU内存输入/输出操作和磁盘驱动器,施加压力,以评估它们在极端负载下的表现。通过执行stress命令,可以精确地模拟各种资源的消耗模式,从而测试系统和应用在面对高并发任务和复杂运算时的稳定性和性能。原创 2024-04-22 15:06:04 · 1143 阅读 · 0 评论 -
车载Android应用开发与分析 - 初试 SystemUI Plugin
本文初试了SystemUI插件机制,在编写本文时发现Plugin相关的资料少的可怜,即使是官方资料有的也过时了。所以就像标题那样,本文只是简单尝试了Plugin,如何使用Plugin来详细定制一个完全符合我们需求的SystemUI呢?这个我们放到以后再写,因为接下来需要先来分析SystemUI Plugin的原理,在资料如此稀少的情况下,不了解原理几乎无法写出符合需求的Plugin。在分析的原理的过程中,我们会逐步补完、理解一些Plugin的概念。参考资料SystemUI Plugin 简介及使用。原创 2023-09-13 10:09:07 · 1993 阅读 · 1 评论 -
RE:从零开始的车载Android HMI(四) - 收音机刻度尺
本文我们来编写一个收音机刻度尺原创 2023-08-24 09:49:27 · 1607 阅读 · 0 评论 -
【性能优化】使用Perfetto定位应用启动性能的瓶颈
Perfetto是Android 10 引入的系统级跟踪工具,支持Android,Linux和Chrome,用于取代Systrace。相比于Profiler和AGI,它不再局限于应用内,而是可以提供整个系统的运行状态,当我们需要查看应用有没有影响到系统的稳定性和流畅性时,或者反过来用于分析系统对应用运行的影响时,就可以使用Perfetto来进行系统级跟踪和分析。原创 2023-08-24 09:48:44 · 1539 阅读 · 1 评论 -
【车载性能优化】将线程&进程运行在期望的CPU核心上
车载Android应用开发中,可能会出现一种奇葩的要求:与用户交互时应用需要全速运行,保证交互的流畅性,但是如果应用进入后台就需要怠速运行,让出更多的资源保证系统或前台应用的流畅度。原创 2023-07-22 13:54:01 · 2001 阅读 · 6 评论 -
【车载Android】多用户(一) - Linux用户与Android多用户
Android是一个基于Linux内核的操作系统,它支持多用户模式,即可以在同一台设备上创建多个用户账户,每个用户都有自己的应用、数据和设置。这样可以保护用户的隐私,也可以方便不同的使用场景。但是,Android的多用户机制并不完全等同于Linux的用户组机制,它们之间依然有较大的差异原创 2023-07-12 11:20:35 · 2387 阅读 · 2 评论 -
车载Android应用开发与分析 - SystemUI 「功能」与「源码结构」分析
在Android系统中SystemUI是一个系统级的APP,它提供了系统的用户界面,由进程启动。SystemUI本身不属于进程,它是一个独立的进程。它的HMI包括了状态栏、导航栏、通知栏、锁屏、近期任务等等。SystemServer是一个由Zogyte进程启动的程序,它负责启动和管理Android系统中的各种核心服务。原创 2023-07-07 09:34:01 · 3179 阅读 · 1 评论 -
【车载 Android】应用换肤方案(一) - Runtime Resource Overlay
手机应用的动态换肤功能目前已经使用的比较广泛了,也有许多文章分析了其中的原理,使用方式也大同小异,基本都需要在应用内集成一个三方的框架,或独立开发一个换肤框架。此类换肤方式需要长期维护一套换肤框架,对原始应用存在一定的侵入性,开发的复杂度、工作量都会比较大。车载应用出于稳定性的考虑,对于引入第三方框架会比较克制,所以目前车载系统应用少见有直接采用手机应用换肤方案的(当然也不是没有,博主也做过)。那么车载应用要如何在降低复杂度、工作量的前提下实现应用换肤呢?原创 2023-02-28 10:36:40 · 2802 阅读 · 4 评论 -
【书评】搞车载系统服务?这本入门书或许可以翻一翻
关注我的朋友,多数都是从事车载应用开发的程序员,相信其中一定有一部分人正在从事车载系统服务的定制和开发,那么今天就给这样一部分人群推荐一本我最近刚刚读完的书, 《智能汽车宝盒之钥 - Android Automotive车载信息系统》原创 2023-02-26 00:15:54 · 1789 阅读 · 3 评论 -
【Android R】车载 Android 核心服务 - CarPropertyService 解析
对比开发车载Android和手机Android应用,最大的区别应该就是许多车载应用需要考虑汽车整体的运行状态,例如,控制车载空调或车速达到一定的阈值时,出于安全的...原创 2022-11-19 16:19:11 · 4678 阅读 · 3 评论 -
【Android R】车载 Android 核心服务 - CarService 解析
在之前的文章从应用工程师的角度再谈车载 Android 系统中提到了"CarService是车载Android系统的核心服务之一,所有应用都需要通过CarService来查询、控制整车的状态",不仅仅是车辆控制,实际上CarService几乎就是整个车载Framework最核心的组件,这也让CarService成了各种bug的重灾区,一部分原因就是开发同学对于CarService的运行原理与实现方式理解的不够深,那么本篇我们就来讲解Android Automotive R上CarService是如何实现。原创 2022-11-07 06:31:19 · 7317 阅读 · 2 评论 -
从应用工程师的角度再谈车载 Android 系统
众所周知,今年互联网行业发展的并不愉快,导致互联网行业就业形势不太理想,“开猿节流”的事情时有发生,于是不少Android开发萌生了转行做车载的想法。原创 2022-10-18 23:18:13 · 3992 阅读 · 3 评论 -
Android车载应用开发与分析(13)- 系统设置-蓝牙设置
Android 车载应用开发与分析是一个系列性的文章,这个是第13篇分析系统设置,该系列文章旨在分析原生车载Android系统中核心应用的实现方式,帮助初次从事车载应用开发的同学,更好地理解车载应用开发的方式,积累android系统应用的开发经验。系统设置是车载Android系统中非常重要的一个系统级应用,是整个车载IVI系统的控制中心,整车的音效、无线通信、状态信息、安全信息等等都是需要通过系统设置来查看和控制。例如,开启/关闭 wifi 和蓝牙,查看每个应用的网络流量,开启调试信息等。原创 2022-10-09 10:19:54 · 3946 阅读 · 2 评论 -
Android 车载应用开发与分析(12) - SystemUI (一)
Android 车载应用开发与分析是一个系列性的文章,这个是第12篇,该系列文章旨在分析原生车载Android系统中核心应用的实现方式,帮助初次从事车载应用开发的同学,更好地理解车载应用开发的方式,积累android系统应用的开发经验。注意:本文的源码分析部分非常的枯燥,最好还是下载android源码然后对着看,逐步理顺逻辑。本文中使用的源码基于android-11.0.0_r48在线源码可以使用下面的网址(基于android-11.0.0_r21)原创 2022-09-19 10:34:46 · 8155 阅读 · 2 评论 -
车载Android进阶篇(NDK其一) — CMake基础
在车载应用开发时,NDK其实并不常用。不常用但也不是完全用不到,车载应用开发以下的一些场景会需要使用NDK调用Linxu API。例如:将线程绑定到指定的CPU核心上运行。使用高性能图形API。例如:使用OpenGL ES或Vulkan绘制图。复用C/C++库其他需要使用Native API的情况NDK 使用入门 | Android NDK | Android Developers。本文主要讲解,在Android使用NDK所必须的构建工具 — CMake。...原创 2022-08-08 01:14:18 · 2112 阅读 · 0 评论 -
RE: 从零开始的车载Android HMI(三) - SurfaceView
从零开始的车载Android HMI是一个系列性的文章,目的在于展示一些在Android手机应用开中不常用,但是在车载应用开发中较为常用的一系列AndroidHMI组件,希望能够帮助初入车载应用开发的同学了解车载应用开发过程中常用的各种UI组件。......原创 2022-07-23 18:43:50 · 2130 阅读 · 0 评论 -
RE: 从零开始的车载Android HMI(二) - Widget
Widget,又叫“微件”、“小部件”。小部件是放置在主屏幕(Launcher)上的Android应用程序的小工具或控件。通过小部件可以将自己喜欢的应用程序放在主屏幕上,以便快速访问它们或是显示一些重点信息。............原创 2022-07-11 10:27:10 · 2312 阅读 · 1 评论 -
RE: 从零开始的车载Android HMI(一) - Lottie
多年以前汽车还是以机械仪表主体的年代,各大汽车主机厂商并不十分关注操作系统UI的交互功能,但是随着车载SOC算力的不断提高以及主机厂商对汽车座舱竞争的白热化。座舱的HMI在设计上在强调功能性的同时也开始关注UI的艺术性,HMI的设计师们期望艺术与功能应该协同工作,让用户沉浸在“第三空间”的体验中。有了需求程序员就需要关注如何实施和落地,然而Android应用本身虽然有着完整的动画框架支持,但是开发复杂、调试耗时,大型的gif或逐帧动画对于CPU&内存占用都不太理想,所以许多Android的手机应用基本上不怎原创 2022-07-03 21:00:17 · 3580 阅读 · 0 评论 -
Android车载应用开发与分析(11)- 车载Android应用开发入门指南
将时间回退到2017年我大学刚毕业时,彼时移动互联网就已经开始退潮,各大个培训机构也纷纷停止了Android相关的培训,曾经热火朝天的应用开发从那时起,就开始走向下坡路,小程序以及众多跨平台框架也让市场对Android原生开发的需求逐年降低,市场需求的降低也造就了Android开发的面试变得史无前例的“卷”。终于我在2019年选择离开了互联网,投身当时还不是非常火热的车载Android领域继续从事Android原生开发。而这一年中国首个外商独资的整车制造项目,“...原创 2022-05-03 01:04:06 · 15157 阅读 · 21 评论 -
Android车载应用开发与分析(10)- 车载空调系统(HVAC)
HVAC 功能介绍HVAC 全称:供暖通风与空气调节(Heating Ventilation and Air Conditioning)。用户可以通过他来控制整个汽车的空调系统,是汽车中非常重要的一个功能。汽车的空调HMI虽然并不复杂,但是大多都是用符号来表示功能,对于还没有实际用过汽车空调系统的开发者来说,理解空调的各个符号表示的含义也是非常有必要。下面就以Android 12中的HVAC来介绍空调系统中包含的最基础的功能。1.1 双区温度调节空调的温度调节功能,默认是华氏度,可以在系统设置.原创 2022-04-04 13:33:10 · 7295 阅读 · 2 评论 -
Android车载应用开发与分析(番外)- 2022年Fragment使用解析(上)
本文虽然冠名『车载』但涉及到的知识点是所有Android APP开发通用的本文基于 AndroidX Fragment library 编写,阅读本文需要有一定Fragment使用基础写这篇博客的原因是最近和同事交流某个项目中遇到的问题时,发现我们对Fragment使用方式相比4-5年前几乎.原创 2022-03-28 09:38:01 · 1275 阅读 · 0 评论 -
Android车载应用开发与分析(7)- 车载多媒体(二)- 多媒体应用架构与MediaSession框架
播放音频或视频的多媒体应用通常由两部分组成:播放器:接收传入的数据多媒体,并输出音频或视频。可以是MediaPlayer、ExoPlayer或其他Player。界面:用于显示、控制播放.原创 2022-02-13 15:15:53 · 5343 阅读 · 9 评论 -
Android车载应用开发与分析(6)- 车载多媒体(一)- 音视频基础知识与MediaPlayer
多媒体应用是车载信息娱乐系统的一个重要组成部分,一般包含音视频播放、收音机、相册等。车载应用多媒体系列初步计划分为六篇,这是第一篇。参考资料、等。原创 2022-02-13 15:15:34 · 4479 阅读 · 2 评论 -
Android 车载应用开发与分析(5) - CarLauncher(一)
在之前的Android车载应用开发与分析(1) - Android Automotive概述与编译中了解了如何下载以及编译面向车载IVI的Android系统,一切顺利的话,运行模拟器,等待启动动画播放完毕后,我们所能看到的第一个APP就是车载android的桌面,而这就是本篇文章的重点 - CarLauncher。本篇文章以解析Android 11 源码中CarLauncher为主。为了便于阅读源码,现将CarLauncher的源码整理成可以导入Android Studio的结构,源码地址:https:/原创 2022-01-08 15:25:01 · 8348 阅读 · 3 评论 -
Android 车载应用开发与分析 (4)- 编写基于AIDL 的 SDK
前言之前我们介绍了车载应用开发体系中如何使用Jetpack在HMI中构建MVVM架构Android 车载应用开发与分析 (3)- 构建 MVVM 架构(Java版),通过之前的介绍,也了解到在大多数车载系统应用架构中,一个完整的应用往往会包含三层,分别是HMIHuman Machine Interface,显示UI信息,进行人机交互。Service在系统后台进行数据处理,监控数据状态。SDK根据业务逻辑Service对外暴露的通信接口,其他模块通过它来完成IPC通信,通常是基于AI转载 2021-11-23 09:37:03 · 2399 阅读 · 1 评论 -
Android 车载应用开发与分析 (3)- 构建 MVVM 架构(Java版)
前言在大多数车载系统应用架构中,一个完整的应用往往会包含三层:HMIHuman Machine Interface,显示UI信息,进行人机交互。Service在系统后台进行数据处理,监控数据状态。SDK根据业务逻辑Service对外暴露的通信接口,其他模块通过它来完成IPC通信。当然并不是所有的应用都需要Service,只有不能长久的驻留在内存中,且需要监控系统数据和行为的应用才需要Service。举个例子,系统的OTA需要一个Service在IVI的后台监控云服务或SOA转载 2021-11-15 09:24:29 · 3454 阅读 · 3 评论 -
Android车载应用开发与分析(2) - 集成第三方APK
前言在车载的应用开发过程中,会有一类特殊的需求,就是在预装一些第三方app,常见的有百度地图车载版、车载微信等等。这类app OEM 厂商都不会得到源码,只能得到一个apk。本篇文章基于Android R演示如何在aosp_car_x86_x64中预装第三方apk。aosp_car_x86_x64我们在编译AOSP选择的build_type,如果你还不知道如何编译AOSP可以参考这篇文章Android车载应用开发与分析(1) - Android Automotive概述与编译。各个OEM厂商预装第三方转载 2021-10-11 19:57:22 · 3374 阅读 · 1 评论 -
Android车载应用开发与分析(1) - Android Automotive概述与编译
在智能手机行业初兴起时,包括BAT在内许多传统互联网企业都曾布局手机产业,但是随着手机市场的基本定型,造车似乎又成了各大资本下一个追逐的方向。百度、小米先后宣布造车,阿里巴巴则与上汽集团共同投资创立了,面向汽车全行业提供智能汽车操作系统和智能网联汽车整体解决方案的斑马网络,一时间造车俨然成了资本市场的下一个风口。而作为移动端操作系统的霸主 - Android,也以一种新的姿态高调侵入造车领域,这就是 Android 车载信息娱乐系统 - Android Automoti...原创 2021-08-25 01:03:14 · 17438 阅读 · 9 评论