南阳网站建设培训班,各大网站收录入口,网站规划应遵循的原则有哪些,精仿虎嗅网织梦网站模板背景
hi#xff0c;粉丝朋友们#xff1a;
大家都知道马哥课程以实战为特色#xff0c;这里的实战就是最贴近公司里面开发的实战项目。这些实战主要来自哪呢#xff1f; 1、以前在公司的工作积累#xff0c;自己在公司做过什么#xff0c;这部分比较好毕竟都是搞过的 2…背景
hi粉丝朋友们
大家都知道马哥课程以实战为特色这里的实战就是最贴近公司里面开发的实战项目。这些实战主要来自哪呢 1、以前在公司的工作积累自己在公司做过什么这部分比较好毕竟都是搞过的 2、根据市场的上各个公司发布手机产品的调研把相关特色功能搞过来给大家作为实战项目案例这个部分实战是最多最难的你想想各个公司产品功能那得有多少我得做出来教给大家 3、以上2个是我大部分的课程实战的来源还有一个重要的那就是学员的都在各个公司从事framework会遇到很多的经典难题bug等搞不定时候也会经常请教马哥马哥会挑出一些和课程贴近的aosp上面可以复现的就会帮忙来搞定
大家想想马哥的课程都是基于以上的背景做出的实战课程是不是比公司里面学的东西获取的实战经验要丰富多了。
比如今天来探讨一个**马哥国际学员全程英文答疑、、、**的一个bug这个兄弟学员在aosp上面尝试修改发现了个bug无法修复然后一直请教马哥这边大概问题现象如下
上面截图大家明显发现分屏左边有一半黑屏的异常这类黑屏等问题说实话哪怕对于很多framework开发的老司机都很难分析。
你一看如果完全不知道怎么入手的话说实话那也是正常。。如果你一看已经有了自己分析思路那么恭喜你可以继续往下看看这个bug是怎么出现的复现步骤但是离修复还是有很大距离哈。
问题复现步骤路径
声明环境
这边为了和国际学员保持一致是aosp14这里我感觉其实aosp 13一样有问题。 即你如果没有14代码你就在13上试试实在不行就用aosp14
问题修改背景
原生aosp的分屏一般divide分割线拖拉只有3个档位大概%25%50%75
但是对于横屏情况下的分屏却只有%50一个档位的分割线
所以为了实现这个需求肯定就需要做相关的修改具体的如下
要把config修改让横屏也和竖屏一样
diff --git a/core/res/res/values-land/config.xml b/core/res/res/values-land/config.xml
index 7308dc5882c1..948d542a0cf7 100644
--- a/core/res/res/values-land/config.xmlb/core/res/res/values-land/config.xml-15,5 15,5 ~ limitations under the License--resources
- integer nameconfig_dockedStackDividerSnapMode2/integer
-/resources
\ No newline at end of fileinteger nameconfig_dockedStackDividerSnapMode0/integer
/resources
DividerSnapAlgorithm.java的修改
diff --git a/core/java/com/android/internal/policy/DividerSnapAlgorithm.java b/core/java/com/android/internal/policy/DividerSnapAlgorithm.java
index a065e2b78d80..881757dd8342 100644
--- a/core/java/com/android/internal/policy/DividerSnapAlgorithm.javab/core/java/com/android/internal/policy/DividerSnapAlgorithm.java-350,9 350,9 public class DividerSnapAlgorithm {* meets the minimal size requirement.*/private void maybeAddTarget(int position, int smallerSize) {
- if (smallerSize mMinimalSizeResizableTask) {//if (smallerSize mMinimalSizeResizableTask) {mTargets.add(new SnapTarget(position, position, SnapTarget.FLAG_NONE));
- }//}}
修改后效果如下
是不是感觉效果还是很好的。。。一切都完美准备公司得表扬了。。。可是万万你没有想到居然提测时候发现开头那个黑屏问题 你是不是心里想。。。。我就改了个配置而已为啥会引入个黑屏的bug这下完蛋了压根不知道为啥引入的啊修改就那么简单两句代码而已。。。。
怎么复现呢
1、横屏进入分屏拖divider到最左边%25位置 2、旋转手机变成竖屏停留1s再回到横屏 3、拖动divider到%50情况下就出现上面横屏分屏黑屏情况
留给大家的作业
上面就是一个非常真实的企业实战的bug而且也很经典很符合很多人修改framework的需求的情况毕竟大家都很喜欢看到快速修改效果这期间很可能你会去百度啥的copy人家代码跑起来了就一顿开心可是往往没有深入理解透彻可能就是你挖出天坑第一步后面测试一测相关引入的bug就是对你前面偷懒的惩罚哈哈哈总之告诉你想彻底掌握那么就必须要全面理解。
那么上面的黑屏问题马哥就留给课程学员的作业这个作业是给大家一个非常好巩固自己学习知识的案例。
更多framework干货获取相关可以 私聊v(androidframework007) 点击这里 https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw 视频https://www.bilibili.com/video/BV1ah411d7Y3