ARTS-9

112 阅读2分钟

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 脚本。

S

《Android 编译优化方法论》