20 | UI 优化(上):UI 渲染的几个关键概念
张绍文

在开始今天的学习前,我祝各位同学新春快乐、工作顺利、身体健康、阖家幸福,绍文给您拜年啦!
每个做 UI 的 Android 开发,上辈子都是折翼的天使。
多年来,有那么一群苦逼的 Android 开发,他们饱受碎片化之苦,面对着各式各样的手机屏幕尺寸和分辨率,还要与“凶残”的产品和 UI 设计师过招,日复一日、年复一年的做着 UI 适配和优化工作,蹉跎着青春的岁月。更加不幸的是,最近两年这个趋势似乎还愈演愈烈:刘海屏、全面屏,还有即将推出的柔性折叠屏,UI 适配将变得越来越复杂。
UI 优化究竟指的是什么呢?我认为所谓的 UI 优化,应该包含两个方面:一个是效率的提升,我们可以非常高效地把 UI 的设计图转化成应用界面,并且保证 UI 界面在不同尺寸和分辨率的手机上都是一致的;另一个是性能的提升,在正确实现复杂、炫酷的 UI 设计的同时,需要保证用户有流畅的体验。
那如何将我们从无穷无尽的 UI 适配中拯救出来呢?
UI 渲染的背景知识
究竟什么是 UI 渲染呢?Android 的图形渲染框架十分复杂,不同版本的差异也比较大。但是无论怎么样,它们都是为了将我们代码中的 View 或者元素显示到屏幕中。
而屏幕作为直接面对用户的手机硬件,类似厚度、色彩、功耗等都是厂家非常关注的。从功能机小小的黑白屏,到现在超大的全面屏,我们先来看手机屏幕的发展历程。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Android 开发高手课》,新⼈⾸单¥59
《Android 开发高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(12)
- 最新
- 精选
- ekkoLee您好 我们的项目也有很多libhwui的崩溃,占jni的35%以上,可以分享下大概的解决思路和方向吗
作者回复: 这个崩溃我们发现主要是有两种情况,一个是5.X和6.X的,一个是7.0的。主要是因为view复用,或者两个动画同时播放(例如lottie动画有做set layer null)。 其实路径还是比较多的,所以还是要hook加上日志,寻找清楚场景。
21 - Geek_2d38e3张老师您好,我们的应用也遇到了hwui的问题且占比很高,能简单分享一下思路吗,不胜感激
作者回复: 主要是通过Hook加日志和xlog日志,定位是哪些页面的问题
- JKnight非常希望可以分享如何解决libhwui的崩溃,我们项目中也有很多
作者回复: 可以看看上面的答复
- 韩增波您好 我们的项目也有很多libhwui的崩溃,不知是否可以帮忙提供一下解决思路。多谢。
作者回复: 正如答复另外一个读者的,libhwui涉及异步渲染的问题。需要具体问题具体分析,具体的解决思路还是通过hook收集更多的信息,看当时是哪些view出问题了
- 哈珀朋友老哥Android显示系统说得不错。老哥的风格,由浅入深,授人以渔,非常像一个优秀的学院派教授说课风格,很喜欢,相信其他人也很容易看懂12
- 辉 哥张哥,新年快乐!1
- 啊 菠萝看文章链接里的头条方案代码似乎并没有用到反射而是直接赋值?
- Geek_258277您好,关于libhwui的崩溃问题,想问下您主要hook了哪些点呢?
- Swing“对于不支持的 API,我们需要使用软件绘制模式,渲染的性能将会大大降低。” 是说 开发人员 主动切换成 软件绘制 还是 会自动切换呢? 如果不自动切换。也不支持。会crash吗???1
- Neillibhwui我们也经常遇到这个怎么解决
收起评论