- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 android 禁止串口日志输出
本文基于android9;在做Mtk android9车载项目时,信息安全上要求去除realse版本的串口打印功能,涉及到SOC和MCU两个串口,SOC串口取消由android侧负责,所以做了简单的调研;
2025-03-25 14:21:01
286
原创 Android系统网络时间更新服务NetworkTimeUpdateService
博主参与车载IVI Android系统开发工作,涉及到车机得系统时间得更新同步,所以对android系统时间做了一定得学习。:NITZ(Network Identity and Time Zone)时间和NTP(Network Time Protocol)时间。:NTP时间,网站时间,GPS时间、CAN上得时间;NITZ时间与手机服务运营商关系密切,而NTP网络时间则较为独立,访问某个服务器,获取时间即可。NTP时间获取的过程较为单一,且由于工作中主要是涉及到Android NTP时间的获取;
2025-03-25 10:55:51
919
原创 源码更新android系统自带webview版本
博主维护一个android9系统的车机平台项目,目前遇到一些关于webview得问题。如系统自带webview版本过老,有很多CVE漏洞问题无法解决。还有最近集成tiktok,发现会有爆破音问题,排查下来也是因为webview版本过老导致。所以需要更新新版本webview。在原生的 Android 7+ 系统中,WebView 的版本能够独立于 Android 系统更新(通过 Google 应用商店更新)。
2025-03-19 10:33:12
429
原创 android property系统属性
系统属性(property)是一种全局的键值对存储系统,允许不同组件和进程间以轻量级的方式进行数据传递。它主要用于系统配置、状态标识等场景,使得不同进程能够通过属性的设置或获取来通信。
2025-03-13 17:34:53
835
原创 activity隐到后台未触发onstop
可以发现,com.saicmotor.hmi.launcher.ui.MainActivity只发生了onpause,未执行onstop动作。在维护的车载项目上,发生问题现象:天气界面拨打ECALL,挂断后闪现车机主页面后再返回天气页面。demo应用2,ActivityWindow,全覆盖效果,在上面的状态上运行此demo。天气应用未完全覆盖住launcher,或者有部分区域透明;运行后如下效果,上半部分透明显示到了launcher部分。实际结果:闪现主页面再返回天气界面;预期结果:返回天气页面;
2025-03-12 16:27:10
346
原创 DisplayManagerService知识分析
DisplayManagerService 用来管理显示的生命周期,它决定如何根据当前连接的物理显示设备控制其逻辑显示,并且在状态更改时,向系统和应用程序发送通知,等等。管理所有显示设备,包括屏幕和外部显示设备的连接和断开;处理与显示相关的事件和请求,如屏幕旋转、分辨率调整、显示模式切换等;提供对所有显示设备的状态和属性的查询和设置;协调多个应用程序之间的显示资源的分配和释放;提供与显示相关的系统服务,如截屏、录屏等。
2024-06-20 09:20:16
1641
原创 git push提交代码时报ERROR: commit c9e0a5b: missing Change-Id in message footer
已经git add,git commit后,在git push提交代码时出现报错如下,主要原因是缺少Change ID,可以参照提醒gitdir=$(git rev-parse --git-dir);scp -p -P 29418 uluxy181@10.118.234.22:hooks/commit-msg ${gitdir}/hooks/,试着加上ID。2,cd到.git/hooks目录,发现commit-msg文件报红,应该是文件丢失。3,回退刚才git add 和git commit 提交的代码。
2024-03-20 14:40:00
428
原创 repo sync报错error.GitError: manifests rev-list (‘^HEAD‘
cd到项目根目录的.repo/manifest目录。repo sync再次尝试是否可以正常使用repo。恢复代码到指定commitID。
2024-03-07 15:26:44
821
1
原创 Android Display图像绘制原理
1.16.6ms是什么意思,每次16.6ms都会调用一个绘制流程么?16.6ms是指刷新频率为是60HZ,1s需要执行60次,平均每次16.6ms。也可以理解为VSync的一个周期是16.6ms。并非每次16.6ms都会执行三大绘制流程,屏幕静止状态,CPU并不会执行绘制流程2.画面撕裂是怎么造成的?画面撕裂是早期使用的是一个buffer进行屏幕的刷新读取和GPU的写入操作,且不存在同步锁的情况下,新数据覆盖旧的数据导致一张画面显示多帧的场景3.为什么在主线程耗时,布局层级太多,会出现卡顿?
2023-11-20 11:03:47
672
原创 Android时间相关的概念理解
本人做车载android系统开发工作,多个项目上对系统时间或者时区做了一定的修改,在此过程中对对时间日期等信息做了一定的了解。本文围绕一些日期/时间的概念分别做主题讲解。
2023-09-13 19:19:56
926
原创 Android 时区使用和总结
通过AlarmManager完成对alarm服务的一系列操作。基本的操作主要用设置时区、监听时区变化、主动查询时区。
2023-09-12 10:29:11
4144
原创 LruCache基本使用和原理分析
在 Java 中,可以使用 BasicLruCache 类来实现一个基本的 LRU(Least Recently Used,最近最少使用)缓存。BasicLruCache 是 Android 提供的一个简单的 LRU 缓存实现,但在标准的 Java 类库中并不存在。
2023-09-09 14:28:11
621
原创 Android Toast位置调整
在默认的android系统中,Toast的位置默认是在屏幕正下方。但是开发过程中,可能需要将Toast显示在不同的位置,这时就需要重定义Toast的位置。可以分为两个方面,一个是从应用层控制,另一个是从系统层来控制;
2023-04-05 18:03:22
2910
原创 Android Log系统介绍
Android开发人员经常会遇到这样那样的问题,需要借助日志分析来解决。Bug日志有助于在开发阶段识别Android应用中的Bug。一旦应用发布到市场上,开发者(或者支持工程师)也要通过分析bug日志来解决问题。可见,日志系统在开发过程中非常重要。Android使用的是一个集中式日志系统来记录所有的日志,应用开发者可以编写自定义日志,也可以定义日志过滤器,来打印关键日志信息来反馈程序运行状况。
2023-04-04 09:41:15
3282
原创 Android系统多语言设置
Android系统默认支持多个国家语言。实现对整个android系统的语言设置,网上很多人使用的是反射的方式,但更简单的应该是通过系统提供的LocalePicker里方法来实现。本文基于Android 9,高版本尚未验证。
2023-04-03 19:06:03
4112
1
原创 Android window type图层分析
android系统中提供了三类窗口的图层,包括应用级窗口、子窗口、系统级窗口,每一类窗口都已经定义了多个图层TYPE。根据项目的需求不同,经常需要自定义或者调整一些图层优先级。
2022-11-09 14:36:13
1323
1
原创 Android Bootchart使用
bootchart 是一个用于 linux 启动过程性能分析的开源工具软件,在系统启动过程中自动收集 CPU 占用率、磁盘吞吐率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程。bootchart 让用户可以很直观的查看系统启动的过程和各个过程耗费的时间,以便让用户能够分析启动过程,从而进行优化以提高启动时间。
2022-11-03 16:21:39
2785
1
原创 Android dumpsys使用
dumpsys是一种重要的调试安卓系统的工具,通过它可以得知你想知道的系统服务的一些信息,如输入dumpsys cpuinfo就可以得到当前CPU的使用信息。
2022-10-31 14:19:54
1713
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人