<?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[sched_switch相关堆栈抓取]]></title><link>https://blog.csdn.net/learnframework/article/details/165753072</link><guid>https://blog.csdn.net/learnframework/article/details/165753072</guid><author>learnframework</author><pubDate>Thu, 17 Sep 2026 22:57:45 +0800</pubDate><description><![CDATA[期望值：为了确保采样能正常工作，特别是你配置了 kernel_frames: true，该值需要 ≤ 1。最稳妥的设置是 -1（完全不限制）如果 traced_perf 没有运行，即使配置正确，Perfetto 也不会报错，只会静默地不产生任何采样数据。traced_perf 默认按需启动，可以通过设置属性强制其运行。1、保证为debug机器，可以进行adb root。设置后正常可以出现traced_perf的守护进程。]]></description><category></category></item><item><title><![CDATA[Android 17 成功编译运行差异部分更新]]></title><link>https://blog.csdn.net/learnframework/article/details/165738989</link><guid>https://blog.csdn.net/learnframework/article/details/165738989</guid><author>learnframework</author><pubDate>Thu, 17 Sep 2026 15:25:11 +0800</pubDate><description><![CDATA[repo这块依据和以前一样，大家如果知道特点的aosp 17的rc分支可以直接指定，如果不知道的可以先repo出main分支，然后再去.repo/manifests进行切换分支既可以。注意在settings版本中还是显示老版本是aosp 16但是实际上确实整个代码都是17的，应属于原生bug，大家感兴趣关注后续是否会更新。最近任务的样式有变化。]]></description><category></category></item><item><title><![CDATA[VSCode+cland搭建aosp卡顿修复指南]]></title><link>https://blog.csdn.net/learnframework/article/details/165591452</link><guid>https://blog.csdn.net/learnframework/article/details/165591452</guid><author>learnframework</author><pubDate>Wed, 16 Sep 2026 11:40:48 +0800</pubDate><description><![CDATA[如何发现是clangd.main这个进程长期占用cpu过多，那就可以电脑卡顿就是因为VSCode + clangd引发的。大家如果有更好的的减少VSCode + clangd搭建aosp源码环境带来的卡顿，过渡耗费cpu的方案记得请留言哈。.vscode/settings.json 文件中进行index线程等线程，设置index线程优先级为low。这里的修改目标是减少aosp相关没用依赖模块，这样减轻VSCode的index负担。这里的修改原理就是减少后台的index线程。]]></description><category></category></item><item><title><![CDATA[重学SurfaceFlinger出现VSYNC-app/VSYNC-appSf/VSYNC-sf剖析]]></title><link>https://blog.csdn.net/learnframework/article/details/165121006</link><guid>https://blog.csdn.net/learnframework/article/details/165121006</guid><author>learnframework</author><pubDate>Sat, 12 Sep 2026 16:19:27 +0800</pubDate><description><![CDATA[简单说就是吧以前的sf的EventTread功能中，自己唤醒触发vsync的部分移除EventTread，让VSyncDispatch直接进行（后面有机会讲解vsync再深入分析），不在使用EventThread来搞对于的sf的vsync了。正常哈，因为上面的结论其实都是相当于一个结论哈，要彻底理解还需要其他相关的补充哈。窗口动画本来就是由 SurfaceFlinger 的合成操作"执行"的，驱动它的节拍就应该是合成器的节拍，而不是应用绘制的节拍——这是‌概念上的正本清源‌。]]></description><category></category></item><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></channel></rss>