我叫小伤 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中

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?