- 博客(94)
- 资源 (13)
- 问答 (2)
- 收藏
- 关注
原创 十年车机性能优化经验总结系列(五):车机性能优化八维清单
优化项具体动作难易度收益备注(踩坑点)全局异常捕获抓到后写日志、清资源⭐⭐极高别让它静默崩。抓到之后别再搞重 UI,落盘+上报就够了。ANR 监控Watchdog 盯主线程超时(或接 Bugly / Firebase)⭐⭐⭐⭐极高ANR 难复现,监控优先;主线程Looper卡顿采样 + 上报堆栈。页面状态保存存列表 Position / 表单数据⭐⭐高别往里塞大列表,Binder 有上限(见第 0 条);大对象丢 ViewModel + 本地存储。降级开关。
2026-08-29 08:15:00
677
原创 十年车机性能优化经验总结系列(四):性能优化方案汇总(13 条)
13 条实打实的系统级优化手段,附 init.rc 验证手顺 —— 一份可直接落地的性能清单前三篇分别解决了「怎么采集数据」「怎么在实车动态调」「怎么写进代码」。本篇做收口:把零散的系统级优化手段汇总成,覆盖六个维度。每条都给出修改位置、改法和原理,并附 init.rc「pull-改-push-reboot」验证手顺,可直接落地到系统镜像。
2026-08-01 01:00:00
375
原创 十年车机性能优化经验总结系列(三):代码中设置线程优先级(Java 与 Native)
Java 与 Native 双管齐下,把实车验证过的优先级「焊」进代码,开机即生效实车上验证有效,不代表上线就有效——重启、热插拔、进程重建都可能让临时改动失效。系列二用命令动态调优,本文就是把验证过的手段,做到开机/启动即生效。重点区分与两套写法,并说清它们和实车命令的对应关系。
2026-08-01 00:45:00
625
原创 十年车机性能优化经验总结系列(二):实车调试——绑核与优先级
绑核、改调度、调 nice —— 在真机上把关键线程「钉」上大核,先验证有效,再固化进系统拿到性能快照、锁定目标线程后(见系列一),下一步是在真机上给它「开小灶」:绑到大核、改用实时调度、调高 nice 值。这套手法用来快速验证一个关键问题——「如果把关键线程扶上高性能通道,体验是不是真的变顺?」验证有效了,再固化进系统(见系列四)。
2026-07-31 00:30:00
328
原创 十年车机性能优化经验总结系列(一):性能数据采集与 bat 小工具
一条 bat 命令,10 秒拿到车机完整性能快照 —— 把零散的 adb 黑话打包成随手可跑的采集工具(总览)(一)性能数据采集(二)实车调试:绑核与优先级(三)代码设置优先级(Java/Native)(四)性能优化方案性能调优最怕「凭感觉改参数」。卡顿到底是 CPU 不够、内存吃紧,还是 GPU 掉帧?不采集、不量化,你永远在猜。本文把实车上最常用的几组 adb 命令整理成清单,并封装成一个一键 bat 小工具——插上设备、双击运行,10 秒拿到一份完整的车机性能快照。
2026-07-31 00:15:00
2624
原创 十年车机性能优化经验总结系列(总览)
一套可复用的车机性能调优闭环方法论 —— 从量化现状、实车验证到代码固化,十年(实际4.5个自然年,算上加班十年)踩坑经验一次讲透本系列基于一份 Android 车机性能调优实战文档整理,目标是形成一套可复用的调优方法论与落地手段。
2026-07-31 00:00:00
969
原创 安卓开发神器:一行命令搞定模拟器时间同步(附Bat脚本)
这个 bat 的全部价值,就是把"读本机时间 → 转 Android 格式 → 写进设备"这条手动三步压成一次双击。它不聪明,但省事;而真正决定它能不能用好的,不是那 6 行代码,是权限、时区、自动对时这三个藏在后面的坑。
2026-11-10 21:15:00
449
原创 十句值得抄下来的提示词
用 AI 的水平差距,往往不在模型强弱,而在提问的模板化程度。把"怎么问"从临场发挥变成固定套路,你就获得了两个东西:一是输出质量的下限被抬高了(不至于因为一句模糊提问换来一堆废话),二是你的经验开始复利(每次踩的坑都被编译成可复用的句式)。所以这十句真正的价值,不在于它们写得多漂亮,而在于——你不用每次都重新发明提问的方式。用出新的好句式,再回来补进这个列表。
2026-11-03 15:54:32
182
原创 一图看懂 No Focused Window ANR:埋炸弹、拆炸弹与资源影响链路
No Focused Window ANR 的本质是窗口没按时报到,不是"应用没响应"。根因多半落在系统资源紧张或 WMS→InputDispatcher 的焦点同步滞后上。定位别只盯着应用主线程,要从 WMS 选焦点、同步 InputWindowInfo、InputDispatcher 建焦点这条完整链路去找时间线——哪里慢了,炸弹就在哪里炸。
2026-10-28 21:15:00
200
原创 Android 中 ContentResolver 会验证 debug 签名吗?
这个检查是系统在底层完成的,debug 签名与 release 签名在机制上没有任何区别。只要代码里记录了 debug 签名的哈希值,验证就能通过。它本身不参与签名校验,也不关心调用方使用的是 debug 还是 release 签名。的自定义权限,那么 Android 系统在授权时会自动检查调用方应用的签名是否与声明方一致。只要签名匹配,debug 签名同样有效。的代码中手动校验了调用方的包名或签名哈希(例如使用。如果你使用的是 debug 签名,系统在验证签名时。的客户端 API,签名验证的逻辑发生在。
2026-10-22 21:15:00
222
原创 拆解一个 Android 一键构建脚本:每一行都在填坑
这份脚本的本质,是把团队踩过的环境坑(编码乱码、SDK 路径、Gradle 下载不可达、密钥外泄风险、窗口闪退)全部固化成默认值。它不聪明,但稳——任何人双击都能在同一种环境里复现出同一个包。脚本的价值,从来不是"能跑",而是"换个电脑、隔三个月还能跑"。
2026-10-10 21:15:00
374
原创 把 WorkBuddy 每日自动签到搬上云端:一次彻底摆脱「任务被删 + 关机漏签」的踩坑实录
本机计划任务的三个坑PATH找不到 python(0x80070002)、任务被 360 反复删除、命令行无法设置「无人登录也运行」、本地代理拦截 HTTPS。物理硬伤:Windows 计划任务在电脑完全关机时不执行——「关机也能签」必须搬到本机之外。选型:BIOS 定时开机 / 常开设备代跑 / 云端自动化三条路,按「是否接受令牌上云」定夺。云端落地四件事。
2026-10-05 20:15:00
1285
原创 车机为什么不爱换 UI 动画?不是懒,是“动画太贵“
手机车机GPU 调度动画优先安全任务抢占,动画捡剩的出帧逻辑先画再说每帧先过安全审查再画动画成本电费无所谓直接吃续航与发热预算结果年年换皮、越炫越好三五年不变、顶多换主题色车机 UI 朴素,不是审美落后,而是每一帧动画,都有一堆安全法规和能耗账本在盯着。
2026-09-30 21:45:00
385
原创 车机恢复出厂,为什么不像手机那样“一键清空“?
手机车机本质格式化 + 重装系统重置用户偏好层清掉什么应用、账号、照片、聊天桌面、登录态、音量、蓝牙配对等用户数据保留什么基本无VIN、ECU 密钥、刹车/BMS 标定、畸变系数、EDR 日志碰得到底层吗会(整盘擦)不会(受保护分区隔离)清完状态回到"新机"车照常能开走手机恢复出厂是"格式化重装",车机恢复出厂是"换了个皮肤"——它要保证你清完之后,车还能正常开走。
2026-09-26 21:45:00
182
原创 XXAgent 开发 Koog 选型与使用指南
立项阶段对比了 5 个 Kotlin / 端侧 Agent 框架,结论是选用——它是这批里唯一同时满足 A2A 可当 Server、有 MCP、有 OpenAI 兼容 provider 三条架构基线,且成熟度与依赖体积都更适合车机的方案。baseUrl = "https://api.siliconflow.cn", // ⚠️ 不带 /v1),
2026-09-26 21:45:00
145
原创 AI大模型的“幻觉“是怎么来的
这也解释了为什么幻觉编出来的东西往往"像模像样":模型太熟悉真实文本长什么样了——真实论文有作者、单位、摘要、参考文献,真实判决有案号、原被告、判决依据。模型内部没有"这是事实"和"这是猜测"的区分,只有"这个字接在上文后面,概率有多高"。你想让它"知道什么说什么、不知道就说不知道",而它被训练的目标只是"把话接得像人话"。说到底,大模型是个极擅长"说话"的工具,但"说真话"需要我们自己把关。于是遇到没学过、或记不清的内容,它不会停下来老实说"我不知道",而是顺着语境。是不是真的,它既不关心,也无从验证。
2026-09-20 22:15:00
217
原创 车机看门狗(Watchdog)为何会让整机硬重启
如果关键进程死了却没人兜底,用户面对的就是一块卡死的黑屏,比重启更危险。车机开着开着突然黑屏、重走 Logo、重新加载——很多人第一反应是"硬件坏了"或"系统抽风"。它上电就开始倒计时,系统必须定期"喂狗"——往寄存器写一个特定值,把计时器清零。计时器走到头,看门狗直接拉低复位引脚,整块主板硬重启。这不是软件层 restart,是硬件级别的复位,所以表现为"毫无征兆地黑屏重启"。说白了,你以为卡的是 UI,其实卡的是整车的命门。下次车机无故重启,先查哪个进程把狗饿死了,而不是急着骂硬件。
2026-09-18 21:15:00
313
原创 Binder 调试命令避坑速查
第一,所有带$(...)嵌套的命令,都要处理"多行返回值"和"尾部\r"这两件事。车机上进程名有重叠很常见,pidof吐两个 PID 是常态,不是异常。养成加| head -1的习惯。第二,下的文件名在平台之间不一致,写脚本前先ls。老内核那套的名字在新平台上基本找不到,这不是你记错了,是内核换了。
2026-09-15 21:15:00
360
原创 为什么车机OTA升级包动辄数GB,手机系统更新却只有几百MB?
几百MB的手机更新,追求的是流量与下载效率;数GB的车机OTA,本质是一套面向行车安全的冗余容错方案。更大的安装包,换来的是升级失败时车辆系统的自救能力。如果你想做成适合公众号发布的完整版技术博文,工作任务模式可以完善配图描述、标题备选和排版格式,要不要切换处理?几百MB的手机更新,追求的是流量与下载效率;数GB的车机OTA,本质是一套面向行车安全的冗余容错方案。更大的安装包,换来的是升级失败时车辆系统的自救能力。
2026-09-08 21:15:00
208
原创 车机Binder 线程池耗尽实战排查与内核内存原理深挖
优先级动作预期效果P0改为超时 + 异步回调避免单次阻塞耗尽所有线程P0监控告警 + 埋点统计慢调用快速发现同类问题P1HAL 层增加硬件读取超时(5s)根本解决底层阻塞P1Binder 线程池临时调整为 32预留缓冲(配合超时使用)P2优化 VHAL 驱动,避免永久阻塞彻底根治Binder 线程池耗尽→ 定位线程栈 → 追查底层阻塞 → 根因修复治标:加超时、扩线程池治本:HAL 层加看门狗、驱动层避免永久等待内核内存理解:分清“内存区域”和“缓冲区”,有助于排查碎片化等进阶问题。
2026-09-07 22:15:00
306
原创 车机续航为什么“乱跳“?
手机电量是"现在还剩多少",车机续航是"按现在这个搞法还能搞多久"。前者是静态快照,后者是动态预测。数字乱跳,不是车机精神分裂,而是它正在如实告诉你——
2026-09-04 20:15:00
352
原创 手机上 400 多个僵尸进程是怎么来的
僵尸进程本身不吓人,吓人的是那个不停生孩子又从不收尸的父进程。kill -9治标都难(还常被系统挡回来),治本——因为它清的是整棵进程树。遇到这类问题,先ps找 PPID,再 force-stop,比无脑 kill 靠谱得多。
2026-08-31 21:15:00
633
原创 为什么车机没有手机必备的“一键清理内存”功能?
日常用机场景里,手机卡顿只需点一下“一键清理”,杀掉后台进程、释放内存,瞬间就能恢复流畅。但很多人发现,卡顿的车机里从头到尾翻遍设置,都找不到同款清理功能。这并非车企偷懒,而是,手机通用的一键清理,放在车机上不仅没用,甚至会加剧卡顿、影响用车安全。手机安卓系统采用的是。内存资源紧张时,系统会主动终止闲置后台应用,我们手动一键清理,本质是强制批量杀掉后台进程、清空缓存。这套逻辑适配手机的使用场景:以娱乐、日常工具为主,没有核心安全进程,牺牲后台留存换取即时流畅度,完全不影响设备核心使用。
2026-08-28 19:45:00
420
原创 车机OTA升级为何严禁断电?从底层架构看“变砖”风险
车企升级页面上那句严肃的“请勿断电、请勿熄火”,真不是多余的提醒,而是汽车底层安全架构的最后一道防线。手机升级断电,顶多算是小毛病、小感冒;汽车升级断电,直接就是核心系统瘫痪,堪比进ICU急救。了解这些之后,大家在等待车辆OTA升级时,就不用觉得麻烦,也不会随意断电中断流程。安心等升级完成,才是保护爱车、保障行车安全的最好方式。
2026-08-27 20:15:00
185
原创 心安的五阶依托模型
自我价值与心安,依托于外部评价者(他人、群体、权威)的认可与反馈。行为是否正当、意义是否成立,都在"被理解"与"不被亏欠"中获得确认。
2026-08-26 20:15:00
435
原创 冬天早上车机“卡成PPT“?先别骂,它真的在努力
下次冬天早上开车,如果车机又"卡"了,别急着拍方向盘。想象一下:一个小芯片,穿着单薄的衣服,在零下几度的仪表台里,一边发抖一边疯狂加班,还要被系统安排"排最后"——它已经很努力了。给它两分钟,它会还你一个流畅的早晨。你的车机,不是坏了。它只是,有点冷。本文部分技术原理参考现代车载电子系统架构,如有更专业的见解,欢迎在评论区聊聊你的冬季用车体验。
2026-08-20 21:45:00
359
原创 Win11卡顿别瞎调!用命令解锁真正满血高性能模式
Win11 大部分卡顿,根本不是配置不够,而是系统隐性锁性能。图形界面的简单设置治标不治本,只有通过命令修改底层电源策略,才能真正释放硬件全部性能。这套方法适配所有Win11版本,零成本、无副作用、操作简单,电脑卡顿的朋友直接照搬即可,轻松拉满系统流畅度!
2026-08-18 20:15:00
392
原创 进隧道手机疯狂转圈,车机却淡定往前走?它其实在“盲算“
你肯定遇到过:开车钻进隧道,手机导航的小蓝点突然开始"抽风",要么原地打转,要么一把甩到隔壁车道。可中控屏上的车机,却像没事人一样,稳稳带着你往前挪。明明 GPS 早就没信号了,它到底是怎么"看"到路的?先说答案:它没看路,它在算。图1 · 隧道口场景:GPS 卫星信号被隧道屏蔽后,手机导航原地转圈,车机导航靠航位推算平稳前进。
2026-08-17 19:30:00
363
原创 小米/安卓手机自带应用能删 90%?手把手教你免 Root ADB 卸载系统 App
不刷机、不 root、不动/system分区,一条就能把厂商预装、用不上的系统 App 从当前用户里"请出去"——干净、可逆、随时能装回。适用场景:车机 / 手机 / 平板上那些删不掉又占资源的预装应用(钱包、商城、推送、自带浏览器……)。本文以小米为例,全程只需一台连了 adb 的电脑。安卓的多用户机制给了我们一个"免 root 删预装"的合法后门:每个用户(user)有一份独立的应用安装状态,而系统预装应用其实只是"装在所有用户上"。
2026-08-05 21:15:00
580
原创 android:largeHeap 是最后的性能手段,而非 GC 优化的首选
本文揭示了android:largeHeap="true"的真相:它只是申请更高的堆内存上限而非直接增加内存,会降低GC频率但可能导致更长的停顿和更高被杀风险。适用场景包括图片/视频处理等大内存需求,但普通应用应优先优化对象分配(如使用对象池)。文章提供了Kotlin代码示例演示如何检测堆状态和响应内存压力,并附带Java对象池Demo展示复用效果。关键提醒:largeHeap是最后手段,需配合onTrimMemory释放资源,且存在厂商差异和审核风险,核心优化方向应是减少对象分配而非单
2026-07-30 22:00:00
440
原创 @IntDef 替代 enum:Android 官方推荐的轻量常量方案
本文介绍了Android开发中慎用enum的原因,并推荐使用@IntDef注解作为替代方案。enum在Android中占用较多内存和DEX空间,而@IntDef通过编译期类型检查实现类似效果,几乎零开销。
2026-07-29 23:00:00
559
原创 车机主流芯片龙鹰一号8155/8295/8775/8797算力基础知识与技术分享
本文目标是建立对车机芯片算力(KDMIPS)的直观认知,并给出一套可落地的换算方法,把top命令显示的 CPU 百分比转换为绝对算力(KDMIPS),用于进程性能评估与芯片选型。主流座舱芯片 CPU 算力从 SA8155P 的 ~105K 到 SA8797P 的 ~560K DMIPS,约 6 年提升5.3 倍。绝对算力(K) = CPU% × (总算力K ÷ 核数)。工程估算需打0.7~0.8 折(效率折损),并预留15~30%安全余量。绝对算力(K) = CPU% × (总算力 ÷ 核数)
2026-07-28 09:43:10
1349
原创 VSCode 运行 Live Server 提示「Windows 找不到文件 Chrome」问题全解析
0.VSCode提示1.解决办法"liveServer.settings.AdvanceCustomBrowserCmdLine": "C:/Users/Administrator/AppData/Local/Google/Chrome/Application/chrome.exe",
2026-07-28 09:36:08
277
原创 如何让一个TextView无限显示字符串而不发生ANR(ArrayDeque详解)
实时日志、行情、聊天消息……很多场景都要让一个TextView持续不断地"吐"出字符串。但 naive 写法跑一会儿就甚至。本文用ArrayDeque做有界滚动缓冲, 配合主线程限频批量刷新,既能"无限"显示,又绝不卡死。顺带把ArrayDeque的 4 个高频坑一次讲清。
2026-07-28 09:30:34
462
1
原创 App 在后台,怎么知道自己离被系统“杀掉“还有多远?
一篇关于 Android 进程内 OOM 风险监控的内部技术分享:从 hidepid 机制一路讲到 lmkd 的 SIGKILL,再到 Android 17 的内存治理,并给出一套可落地的监控代码骨架。
2026-07-28 09:28:30
438
原创 Android面试题整合(待完善)
一.Activity生命周期onCreate->onStart->onResume->onPause->onStop(onRestart )->onDestroy打开AAct再调到BAct 生命周期过程依次走A的onCreate,onStart,onResume(打开A的生命周期),onPause(调到B)B的onCreate,onStart,onResume然后A的onStop二.Activity启动模式1.standard,每打开一个,任务栈里面就有一
2021-11-14 11:32:22
2539
原创 一些好用的精品小软件
如题,分享一些纯个人制作的精品小软件,现在的软件都太大了大部分都不超过1M,功能单一好用且不怎么占内存,没有什么花里胡哨的东西任意文字生成二维码:输入任意文字点击生成,即可生成二维码,且可保存到手机相册随意操作(如分享到QQ微信),已兼容到Android11毒鸡汤:一个显示一句毒鸡汤类型的话,点一下刷新一句,背景颜色变一下;兼容深色主题民法典:就是一本电子民法典的书,包含了搜索,导航跳转等比较方便的功能lockscreen:就是一个一键锁屏的功能,部分手机没有这个功能,必须按物理按.
2021-11-03 09:06:56
4670
原创 Android应用性能优化 - 开篇
Android技术优化日异月新,谷歌在GoogleI / O 2018 上终于发布了Android 9.0,系统性能也已经非常流畅,在我看来已远超某果(哈哈其实是因为我是穷逼用不起某果),但是由于国内各大厂商都会自己定制系统,然后就你懂的,当然不排除部分厂商确实做了一些优化,当然不包括某米,虽然我是某米粉丝,但是系统确实做的稀烂;在如此背景之下,Android应用性能优化显得更加重要了。我总结的主要以下几个方面进行优化: 一.安装包大小优化俗称的APK瘦身,个人觉得...
2021-08-07 12:56:32
499
转载 免root ADB命令卸载系统预装应用
转载地址:https://www.jianshu.com/p/e9434e7f86ea首先要知道系统预装的应用分3种:不可卸载 这部分没有 root 权限,是不能卸载的。比如 Phone、Message、Calendar 等。 可卸载,可恢复 这部分没有 root 权限,用户也可以卸载,但恢复出厂后又会回来。比如 EMUI 预置的很多第三方的 APP。 可卸载,不恢复 这部分预置在 data 分区,data 分区是用户存储数据的分区,恢复出厂清空数据时也会清理掉这部分 APP。这种情况一般
2020-10-20 15:18:01
10434
5
爱普生打印服务插件APP
2017-11-22
三星打印服务插件(Android端使用的)
2017-11-22
华为打印服务插件APP
2017-11-22
【批量下载】约1K道经典Java&Android面试题和答案打包下载.zip
2020-02-23
Android Studio编译时No signature of method
2019-08-15
smack连接ejabberd怎么获取离线消息?
2016-02-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅