专栏首页andy的小窝Android启动时长优化

Android启动时长优化

主要是针对Application的优化。将一些库的初始化放到子线程,或者在主线程延时执行。上代码

// 子线程初始化
object : Thread() {
            override fun run() {
                Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)
                Thread.sleep(2000)//建议延迟初始化,可以发现是否影响其它功能,或者是崩溃!
                // 可以放如Bugly tencent的X5等可以在子线程初始化的
            }
        }.start()

// 主线程初始化
 val handler = Handler()
 handler.postDelayed({
         // 执行操作
        }, 2000)

用adb shell am start -S -W 包名/包名+入口Activity验证下。

未优化前

Activity: ***/.MainActivity
ThisTime: 2631
TotalTime: 2631
WaitTime: 2733
Complete

优化后

Activity: ***/.MainActivity
ThisTime: 707
TotalTime: 707
WaitTime: 728

当然还有优化的空间。后面找到方法再更新啦。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 安卓得到状态栏高度及各个控件高度

    用户4458175
  • Flutter 实现简单聊天界面 下拉滑动加载更多

    将刷新组件嵌入滑动组件中,因为聊天界面都是由下往上滑,所以ListView设置了reverse: true实现反转列表组件。组件itemCount的值设置消息数...

    用户4458175
  • Flutter 实现简单聊天界面 下拉滑动加载更多

    将刷新组件嵌入滑动组件中,因为聊天界面都是由下往上滑,所以ListView设置了reverse: true实现反转列表组件。组件itemCount的值设置消息数...

    用户4458175
  • 性能工具之Jmeter小白入门系列之四

    青,取之于蓝,而青于蓝;冰,水为之,而寒于水。木直中绳,輮以为轮,其曲中规。虽有槁暴,不复挺者,輮使之然也。故木受绳则直,金就砺则利,君子博学而日...

    高楼Zee
  • Jmeter压力测试 转

     它的作用其实是为了模拟用户,所以也叫Users。一个线程组模块可以包含多个线程,每个线程代表一个用户,这样可以模拟高并发下的请求,并根据网站的响应信息来判断网...

    wuweixiang
  • python 线程定时器Timer

    相对前面几篇python线程内容而言,本片内容相对比较简单,定时器 – 顾名思义,必然用于定时任务。

    猿说编程[Python和C]
  • 数据库连接池,本地线程,上下文管理

    一、数据库连接池 flask中是没有ORM的,如果在flask里要连接数据库有两种方式 一:pymysql 二:SQLAlchemy 是pyth...

    用户1214487
  • JVM(二):画骨

    我们首先来认识一下JVM的运行时数据区域,如果说JVM是一个人,那么运行时数据区域就是这个人的骨架,它支撑着JVM的运行,所以我们先来学习一下运行时数据区域的分...

    山禾说
  • ​[推荐]Linux入门系列(四)系统用户账号管理(代码图文示例)

    我在前面Linux入门系列(一)说过蓝色代表文件夹;Linux入门系列(二)说过,Linux本质上就是一堆堆的文件。

    用户7656790
  • PHP+MYSQL分页(1)sql篇

    create table page1( ID INT(10) not null auto_increment key, NAME varchar(50) n...

    用户7873631

扫码关注云+社区

领取腾讯云代金券