<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[learnframework的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/learnframework</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; learnframework]]></copyright><item><title><![CDATA[安卓系统性能优化高级实战开发专题--开机，app冷启动优化]]></title><link>https://blog.csdn.net/learnframework/article/details/164451624</link><guid>https://blog.csdn.net/learnframework/article/details/164451624</guid><author>learnframework</author><pubDate>Mon, 07 Sep 2026 16:41:05 +0800</pubDate><description><![CDATA[2、普通的fw系统开发岗位：找fw工作时候，因为性能优化属于基本上系统开发的面试都成了必问的部分，因为性能优化这块的工作本身就不是说完全的独立的模块，很多时候也需要相关业务模块的开发人员去分析去修复，自然而然对性能优化这块的知识掌握的好，面试就很占优势，哪怕你不是面试性能优化岗位。所以说无论你是专门想去做系统性能的，还是做系统开发的，其实都是会要求你有性能优化的相关的技能，掌握性能优化你的选择面肯定就大很多。2、国内各个top手机厂商的性能优化实战案例，学习一线手机大厂的相关性能优化分析，调研，调优策略。]]></description><category></category></item><item><title><![CDATA[VSCode + clangd 配置保姆级教程（方案2）]]></title><link>https://blog.csdn.net/learnframework/article/details/164424735</link><guid>https://blog.csdn.net/learnframework/article/details/164424735</guid><author>learnframework</author><pubDate>Sun, 06 Sep 2026 11:39:12 +0800</pubDate><description><![CDATA[确实使用clangd发现代码的跳转更加准确了，而且在编写代码时候发现提示的也是很准确的，和写java代码一样准确，效率确实是大大提升。VSCode + clangd 配置保姆级教程（方案2）]]></description><category></category></item><item><title><![CDATA[VSCode + clangd 配置保姆级教程-AOSP中c++开发效率提升 300%！（建议收藏）]]></title><link>https://blog.csdn.net/learnframework/article/details/164398949</link><guid>https://blog.csdn.net/learnframework/article/details/164398949</guid><author>learnframework</author><pubDate>Sun, 06 Sep 2026 10:08:06 +0800</pubDate><description><![CDATA[确实使用clangd发现代码的跳转更加准确了，而且在编写代码时候发现提示的也是很准确的，和写java代码一样准确，效率确实是大大提升。]]></description><category></category></item><item><title><![CDATA[安卓开机性能优化：如何安全高效地裁剪 SystemService]]></title><link>https://blog.csdn.net/learnframework/article/details/164085356</link><guid>https://blog.csdn.net/learnframework/article/details/164085356</guid><author>learnframework</author><pubDate>Wed, 26 Aug 2026 15:32:54 +0800</pubDate><description><![CDATA[经常有学员会对开机启动进行相关的性能优化，查看Perfetto的对应开机trace时，发现在SystemServer启动期间，会启动很多的Service，这些Service启动总计的耗时也有将近3s。但其实有一些Service对于一些特定设备是可以不需要的，比如Print这种服务，VR，HDMI等，这种对于某些特定设备是不需要的，要根据自己手机特性看看是否保留，比如很多设备硬件没有了nfc，指纹。找到原来的Feature的声明的xml，然后在里面直接移除，或者overlay原来的xml。]]></description><category></category></item><item><title><![CDATA[面对DP 11倍涨价，安卓FW工程师如何减少Token成本]]></title><link>https://blog.csdn.net/learnframework/article/details/163852254</link><guid>https://blog.csdn.net/learnframework/article/details/163852254</guid><author>learnframework</author><pubDate>Tue, 18 Aug 2026 15:22:51 +0800</pubDate><description><![CDATA[不要以为有了AI工具你就可以啥也不管，其实AI只是你的辅助，你绝不可以过渡依赖AI，对于AI工具去需求实现和bug修复的每个过程，自己也要清楚核心思路等。有了AI不是让你可以啥都不需要懂，不需要学习了，有了AI只是让你的工作和学习效率更高了，每个人都会用AI，但是AI上限其实决定于你的个人知识能力，而不是AI本身。就像菜鸡用AI去实现fw实战需求和你高手用AI实现能一样效果么？]]></description><category></category></item><item><title><![CDATA[安卓开机时间优化，就认这2招]]></title><link>https://blog.csdn.net/learnframework/article/details/163821007</link><guid>https://blog.csdn.net/learnframework/article/details/163821007</guid><author>learnframework</author><pubDate>Mon, 17 Aug 2026 14:59:55 +0800</pubDate><description><![CDATA[在很多同学做性能优化相关工作时候，都会避免不了有个开机时间优化的任务，但是如何优化整个开机时间，开机涉及的各个阶段太多了，具体哪里是开机时间瓶颈呢？优化后如何测试自己的开机时机呢？想要抓取开机启动整个过程的trace，放到perfetto上进分析，但是发现开机过程中无法连接上设备，没办法抓到完整的trace，所以perfetto无法分析出整个开机过程。准备好一个config文件，主要用于配置perfetto抓取时候的相关配置，比如要抓哪些tag等，是否也抓取日志等，这个配置官网给了一个最简单的版本。]]></description><category></category></item><item><title><![CDATA[Winscope如何让你的系统app在可以展示ViewCapture相关数据？]]></title><link>https://blog.csdn.net/learnframework/article/details/163774616</link><guid>https://blog.csdn.net/learnframework/article/details/163774616</guid><author>learnframework</author><pubDate>Sat, 15 Aug 2026 22:31:47 +0800</pubDate><description><![CDATA[此方法通过避免为每个窗口使用单独的环形缓冲区来避免过度消耗内存，但无法解决针对每个帧在 Perfetto 中存储每个状态的整个视图层次结构的问题。屏幕录制可以直观呈现视图在特定时间的状态，并显示其变化情况，但它们需要大量的 CPU 资源，并且可能会影响性能。此外，ViewCapture 会在视图级别逐帧显示可视化图表，与屏幕录制相比，可更轻松地检查特定时刻的视图状态。ViewCapture 会捕获窗口内各种视图及其属性的相关信息，以便您了解特定时刻的用户体验状态，并跟踪随时间的变化。:（冒号）：分隔符。]]></description><category></category></item><item><title><![CDATA[性能优化：统计安卓apk的安装时间的3种方法]]></title><link>https://blog.csdn.net/learnframework/article/details/163722358</link><guid>https://blog.csdn.net/learnframework/article/details/163722358</guid><author>learnframework</author><pubDate>Thu, 13 Aug 2026 16:09:10 +0800</pubDate><description><![CDATA[上面已经分享了3-4种的统计apk安装时间的方法，这里作为开发，大家可以首选Perfetto的方式进行统计，然后再找到相关的apk安装的性能瓶颈点进行相关的优化，优化后，再使用同样方式进行查询apk的安装时间。]]></description><category></category></item><item><title><![CDATA[深挖SF和Skia源码剖析圆角独立设置setCornerRadius]]></title><link>https://blog.csdn.net/learnframework/article/details/163689179</link><guid>https://blog.csdn.net/learnframework/article/details/163689179</guid><author>learnframework</author><pubDate>Wed, 12 Aug 2026 21:50:35 +0800</pubDate><description><![CDATA[基于 AOSP16-r4 源码分析，揭示 Transaction.setCornerRadius 在 SurfaceFlinger + Skia 渲染管线中的完整流程，以及单参数统一圆角与四角独立弧度两种 API 在源码层面的本质差异。当前实现中 x 和 y 始终相等（均为传入的 radius 值），但这为以后扩展留下了空间——理论上可以实现类似 CSS。使用四参数 API，每个角的裁剪区域可以不同，从而让子 Layer 更精确地判断是否需要继承圆角。到了最核心的部分——Skia 如何将。]]></description><category></category></item><item><title><![CDATA[安卓16王炸更新！四角圆角终于能“各玩各的”]]></title><link>https://blog.csdn.net/learnframework/article/details/163662900</link><guid>https://blog.csdn.net/learnframework/article/details/163662900</guid><author>learnframework</author><pubDate>Tue, 11 Aug 2026 14:39:26 +0800</pubDate><description><![CDATA[那么请问在SurfaceFlinger中是如何实现对这四个圆角进行单独的弧度设置的？你这边如果自己去实现这个接口你是否有思路呢？然后再结合源码去对比看看哈。简单说我们原来设置的圆角，其实都是整个Task四个角都进行设置圆角，这里明显看到Task的左边没有任何圆角，但是右边都是圆角。如果让你去实现你会去如何设计呢？这样有了这个接口后，就可以轻易实现对四个圆角轻易控制。但是经过调查发现新版本aosp16上发现一个新的。测试结果坐标都是弧度为50，右边弧度为150。老版本aosp14上设置圆角接口只有一个。]]></description><category></category></item><item><title><![CDATA[【性能分析】如何让高通平台手机在 Perfetto 中完美显示 GPU 频率？]]></title><link>https://blog.csdn.net/learnframework/article/details/163633512</link><guid>https://blog.csdn.net/learnframework/article/details/163633512</guid><author>learnframework</author><pubDate>Mon, 10 Aug 2026 12:33:23 +0800</pubDate><description><![CDATA[所以本质上就是高通gpu驱动这块缺乏标准接口定义：在一些较老的高通内核版本（如基于 Linux 4.9 的 SDM710 等）中，内核源码的标准电源头文件里，甚至压根没有定义 gpu_frequency 这个追踪点（Tracepoint）。既然抓到了病根就是kernel版本太老高通gpu驱动本身没有对这块trace支持，我们的解决思路就非常明确了：侵入高通的 GPU 驱动代码，在它切换频率时，强行顺带触发一次 Linux 标准的 gpu_frequency 事件。]]></description><category></category></item><item><title><![CDATA[竞品技术调研：小米自由窗口Freeform实现方案剖析]]></title><link>https://blog.csdn.net/learnframework/article/details/163298470</link><guid>https://blog.csdn.net/learnframework/article/details/163298470</guid><author>learnframework</author><pubDate>Wed, 29 Jul 2026 14:34:49 +0800</pubDate><description><![CDATA[而且国内这些手机厂商在自由窗口这块额外加入的功能还比较多，所以今天针对小米手机做一个关于自由窗口的调研报告，方便各位vip课程群里的学员朋友进行自由窗口开发时候有个比较好的参考，更多关于手机大厂自由窗口功能讨论可以联系马哥交流或者获取额外vip资料（如果有的话会分享相关学员）。国内这些手机大厂在自由窗口这块的功能其实都做得比较好，也一直是一个相比aosp原生修改差异较大的功能，也属于一个非常大的亮点提升，代表厂商比如常见的小米，ov等。点击最右侧这个图标可以，既可以进入自由窗口尺寸最小的。]]></description><category></category></item><item><title><![CDATA[近期手机车机系统framework开发的20个经典面试（中上难度）]]></title><link>https://blog.csdn.net/learnframework/article/details/163130499</link><guid>https://blog.csdn.net/learnframework/article/details/163130499</guid><author>learnframework</author><pubDate>Thu, 23 Jul 2026 14:51:02 +0800</pubDate><description><![CDATA[12、请问你解决过壁纸闪黑问题，那么详细讲述一些壁纸显示的窗口原理和显示流程，与普通的WindowState ViewRootImpl这种有啥差别。有没有性能更加优秀方案。13、你的壁纸闪黑问题的解决方法中，是否有啥没有考虑的问题？]]></description><category></category></item><item><title><![CDATA[重大更新：Perfetto中分析bitmap内存泄漏可以看到png图片]]></title><link>https://blog.csdn.net/learnframework/article/details/163041169</link><guid>https://blog.csdn.net/learnframework/article/details/163041169</guid><author>learnframework</author><pubDate>Mon, 20 Jul 2026 17:43:19 +0800</pubDate><description><![CDATA[该行显示积累的内容：一个 128×128 资产的 12 个副本，都具有相同的内容哈希。平时的java内存泄露问题一般都是使用android studio + mat工具，在看Perfetto的内存泄露分析文档中看到一个bitmap泄漏内存分析的非常好的更新，这个更新就是分析bitmap内存泄露对象时候，可以可视化展示出具体哪张图片泄露，也就是会实时展示bitmap内容，而不是冷冰冰的bitmap对象。像素都哈希到相同的值，但它们是不同的 Bitmap 实例，具有不同的后备 byte[]。]]></description><category></category></item><item><title><![CDATA[Perfetto重大更新：一边分析trace一边看画面录屏结合功能]]></title><link>https://blog.csdn.net/learnframework/article/details/162987620</link><guid>https://blog.csdn.net/learnframework/article/details/162987620</guid><author>learnframework</author><pubDate>Mon, 20 Jul 2026 09:25:57 +0800</pubDate><description><![CDATA[大家在使用Perfetto分析相关trace时候，经常会分析SurfaceFlinger主线程每个vsync的相关slice，虽然也可以通过hwc的合成图层知道当前显示每一帧画面是啥，但是没有具体的与每一帧的画面的功能，大家都很希望可以在分析trace时候顺便有当前手机的运行画面可以结合起来看，类似winscope分析闪黑问题一样，这样就可以更加直观清晰分析一些卡顿显示等性能问题。]]></description><category></category></item><item><title><![CDATA[google官方Perfetto 中使用 AI相关skill]]></title><link>https://blog.csdn.net/learnframework/article/details/162869834</link><guid>https://blog.csdn.net/learnframework/article/details/162869834</guid><author>learnframework</author><pubDate>Tue, 14 Jul 2026 12:25:02 +0800</pubDate><description><![CDATA[在阅读Perfetto的官方文档时候发现有更新一个关于Perfetto使用ai分析的部分，这里把他进行转载分享一下。]]></description><category></category></item><item><title><![CDATA[Android Framework 新手学习踩坑建议指南]]></title><link>https://blog.csdn.net/learnframework/article/details/162831840</link><guid>https://blog.csdn.net/learnframework/article/details/162831840</guid><author>learnframework</author><pubDate>Mon, 13 Jul 2026 12:49:37 +0800</pubDate><description><![CDATA[framework的学习终极目标不是源码分析，而是进行安卓系统的需求定制和疑难问题的实战解决，但是源码分析属于需求和bug解决实现的最重要的理论基础。所以源码分析也是一样很重要，源码分析提供了理论基础后，更重要是利用这个理论基础再结合各种调试和分析工具等来帮助我们解决实际需求和问题。更多framework实战开发入门学习干货资料，请关注下面“千里马学框架”]]></description><category></category></item><item><title><![CDATA[小鹏车机竞品调研：车机分屏功能的竞品调研和实现方案]]></title><link>https://blog.csdn.net/learnframework/article/details/162756691</link><guid>https://blog.csdn.net/learnframework/article/details/162756691</guid><author>learnframework</author><pubDate>Fri, 10 Jul 2026 12:11:52 +0800</pubDate><description><![CDATA[可以看到上面的其实也是处于分屏模式，而且分割线在最右侧，左边分屏的区域也是相当于全屏展示着，这个其实和我们三分屏讲解的相关实现，可以把分割线拖动到最右侧，但是这个时候还不退出分屏。1、分屏模式下可以某个分屏task全屏显示，但是这个时候还是分屏模式，分割线显示在边界，可以拖动分割线，重新进入正常比例的分屏。整体难度不大，这里给大家布置小鹏车机分屏给你为学员作业，作业的目标就是实现类似小鹏车机的2个亮点功能既可以。整体调研小鹏车机的分屏功能后，其实整体难度不大，修改难度远比小米su7的三分屏难度要小一些。]]></description><category></category></item><item><title><![CDATA[性能优化比拼：app启动流程之冷热启动Activity的SnapshotWindow]]></title><link>https://blog.csdn.net/learnframework/article/details/162726516</link><guid>https://blog.csdn.net/learnframework/article/details/162726516</guid><author>learnframework</author><pubDate>Thu, 09 Jul 2026 15:33:25 +0800</pubDate><description><![CDATA[││ ││ └─ taskSwitch + snapshot → SNAPSHOT ← 温启动命中││││═══════ Snapshot 显示中，App 首帧正在绘制 ═══════││添加路径→→→ Binder →移除路径→→ Binder →更多fw实战干货请关注下面“千里马学框架”]]></description><category></category></item><item><title><![CDATA[AI替代一切工作？AI辅助学习Framework开发经验技巧分享]]></title><link>https://blog.csdn.net/learnframework/article/details/162658169</link><guid>https://blog.csdn.net/learnframework/article/details/162658169</guid><author>learnframework</author><pubDate>Tue, 07 Jul 2026 14:34:51 +0800</pubDate><description><![CDATA[AI本质让我们很多想法，懒着动手实现东西可以不需要花太多时间搞，让AI帮我们搞。变成不缺代码缺少想法时代。但是想法和思路又来自自己对于系统业务的熟悉精通程度，只有你精通熟悉你才可以有想法，本质ai变成干活工具，但是核心竞争力还是没有变化更多fw相关干货及实战开发资料获取，请关注下面：千里马学框架。]]></description><category></category></item></channel></rss>