《Android开发艺术探索》读书笔记

Table of Contents

思维简图:

相关知识点做详细的说明:

  1. onDestroy 方法在用户主动关闭应用时不会被调用,如果要保存一些数据,放在这里面是不可靠的。

  2. 属性动画是 3.0 之后支持的动画方式,3.0 之前可以用第三方库达到属性动画同样的使用效果,但是其实质还是视图动画实现的。视图动画存在显示位置变了但是实际位置没变的问题,但是属性动画不存在该问题。

  3. 对于事件分发机制知识点,还需要对常用的系统控件的分发控制有很熟悉的了解,对常用的方法,如 onClick、onTouch、onItemClick,它们的调用条件和顺序要熟悉,这样在使用的时候才能更加得心应手。

  4. 第一次启动 APP 由于 MultiDex 将会非常缓慢,某些低端机可能 ANR。因此有一种做法是挂起主进程,开启:async_launch 进程执行 dexopt。dexopt 执行完毕,主进程重新变为前台进程,继续执行初始化。主进程在这过程中变成后台进程,因此阻塞将不会引起 ANR。至于怎么保证 dexopt 执行完毕之后再在应用中加载相关 class,请 Google“美团多 dex 拆包方案”。

  5. 使用动画一定要注意防止内存泄露,在视图不可见时及时 cancel 相关动画。

  6. 性能优化主要从布局优化(减少嵌套)、绘制优化(不在 onDraw 里面做大量任务)、内存泄露优化(防止内存泄露)、图片加载优化(缓存)、滑动优化(不在滑动中执行异步任务)和线程优化(使用线程池)着手。