Android怎么加速启动Activity

以下内容整理自互联网,仅用于个人学习

1. 减少onCreate时间

onCreate 方法中不要进行耗时操作,放在onResume里会更好。

  • 把页面显示的View细分一下,放在AsyncTask里逐步显示,用handler更好。这样用户的看到的就是有层次有步骤的一个个的view的展示,不会是先看到一个黑屏,然后一下显示所有view。
  • 最好做成动画,效果更自然。
  • 利用多线程的目的就是尽可能的减少onCreate和onReume的时间,使得用户能尽快看到页面,操作页面。

但是,很多操作是只需要一次初始化的,都放在onResume里每次进入activity都会浪费初始化时间。可以用以下方式解决。

  1. 定义一个boolean变量
  1. 在onCreate里标记为true
  2. 在onResume里判断为true就进行初始化,初始化完成立刻置为false。

2. 减少主线程的阻塞时间

首先了解ANR,ANR就是应用无响应。

  • 用户操作无响应5秒
  • 网络和数据库阻塞10秒
  • 广播接收者执行超过10秒会导致ANR

ANR出现的原因:

  • 高耗时的操作
  • 磁盘读写,数据库读写
  • 大量创建新对象

若一个操作耗时过长(导致ANR),我们应该将其放入后台线程中执行,只在需要修改UI界面时通知主线程进行修改。

3. 提高Adapter和AdapterView的效率

  • 重用已生成过的Item View(convertView)
  • 添加ViewHolder
  • 缓存Item的数据
  • 分段显示

4. 优化布局文件

  • 使用观察布局的工具 Hierarchy Viewer
  • 使用布局优化工具: Layoutopt
  • 优化布局的层次结构,使用include、merge、ViewStub等
点赞