A
107. Binary Tree Level Order Traversal II
层次遍历,只是从底层向上层输出。
本来想着能否按照递归的思路,来实现由底向上打印的目的,类似于:从后向前打印单链表的思路。但是没想起来,最容易想到的还是普通借助队列的层次遍历,只是每一层加入到 List 时采用前插法达到自底向上的目的。答案也多是如此。
R
**Understand How View Renders in Android **II
★★★☆☆
接上一篇
视图性能问题一个重要的方面是过度绘制,过度绘制是指一帧之内连续绘制,导致 GPU 绘制像素浪费,却并不影响能看到的视觉效果;减少过度绘制的方法有:
1、删除不必要的 background:子 View 和父 View 有一样的背景色,就没必要再给子 View 设置 background。
2、扁平化 View 树:多使用 ConstraintsLayout
3、减小使用透明:比如绘制灰色的文本色,既可以通过透明度覆盖一个黑色的文本,也可以直接绘制灰色文本,显然后者性能更佳。
T
在配置 gradle 模块依赖时,除了利用 api、compile、implementation 等外,还可以通过 apply from 来实现依赖
1、跟 api、implementation 的区别是,apply from 可以只依赖一个单独的 gradle 文件,例如:apply from: '../library.gradle'。使用场景是:假设有多个业务模块都需要依赖 A/B/C/D 等模块,就可以把 A/B/C/D 配置依赖到一个 library.gradle 中,然后业务模块只需要配置 apply from: '../library.gradle' 即可,起到多个模块依赖合并的效果。
2、跟 apply plugin 的区别是,apply plugin 用于二进制的 plugin 的plugin id,而 apply from 主要用于本地文件路径或远程 url 的 gradle 脚本。