我叫小伤 2019-02-22 16:12 采纳率: 0%
浏览 4209
已结题

android的application中如何正确延迟初始化加速app启动速度

鉴于app启动速度慢的问题,接到了优化速度的任务。

无非就是异步初始化,延迟初始化,懒加载三种,我先对application中的初始化代码块做异步初始化

优化后加快了300ms,使用线程池,大概代码如下

class Application{

    onCreate(){
            //do sth

            postTask(new Runnable());
    }
    void postTask(Runnable task){
            //向线程池添加任务
    }
}

之后测试启动速度是1200ms+

但是!但是!!但是!!!我在线程池运行前加了
if(1==1)return
那我就想了,都说application中不要创建线程池,这会导致性能消耗?所以我尝试使用HandlerThread和Handler的组合,然后进行post,结果依然是1200ms+

所以所以,我来求助上csdn上的大神,application中应该如何正确优化?

  • 写回答

3条回答 默认 最新

  • pgc_tel 2019-02-22 18:17
    关注

    new Thread() {
    @Override
    public void run() {
    Looper.prepare();
    //你的耗时操作
    Looper.loop();
    }
    }.start();
    个人建议最好还是不要在Application中进行耗时操作,可以将耗时操作放到第一个Activity中,当Activity获取到值之后在缓存至Application中

    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序