加快应用启动速度的实验 By duwei 发表于 2016-05-05 文章目录 1. 概述:见过很多App启动的速度都很慢(包括自己以前写的),于是想了一下:启动的时候是不是可以启动一个新的线程来加载和初始化数据呢?于是写了一个小Demo2. APP启动流程:2.1. 当在上述调用链中进行耗时任务时将会导致APP启动延时故尽量不要执行耗时任务3. 开启新线程优化数据加载(初始化数据)3.1. 加入新线程执行结果:(在MainActivity的onCreat也计时)3.2. 不加线程直接循环的结果: 概述:见过很多App启动的速度都很慢(包括自己以前写的),于是想了一下:启动的时候是不是可以启动一个新的线程来加载和初始化数据呢?于是写了一个小DemoAPP启动流程:Application构造函数--->attachBaseContext()--->onCreat()--->Activity生命周期 当在上述调用链中进行耗时任务时将会导致APP启动延时故尽量不要执行耗时任务开启新线程优化数据加载(初始化数据)加入新线程执行结果:(在MainActivity的onCreat也计时)123456789101112131415161718192021//Application的attachBaseContext方法: @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); Log.i("TAG", "attachBaseContext时间:=" + System.currentTimeMillis()); HandlerThread thread = new HandlerThread("compute"); thread.start(); Handler h = new Handler(thread.getLooper()); h.post(new Runnable() { @Override public void run() { for (int i = 0; i < 10000000; i++) { total += i; } } }); Log.i("TAG", "attachBaseContext" + total); } 不加线程直接循环的结果: