APP启动速度优化

代码星冰乐

专注成就未来

首页 归档 关于

APP启动速度优化

Jan 8, 2017 | ChanghuiN | Android | 阅读
文章目录
  1. 1. 检测启动时间
  2. 2. 减少应用启动耗时
  3. 3. Instant Run

作 者:ChanghuiN
原文链接:https://www.hchstudio.cn/article/2017/c922/
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。


由于版权原因,请阅读原文 --> APP启动速度优化

关注我们

作 者:ChanghuiN
原文链接:https://www.hchstudio.cn/article/2017/c922/
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。

作 者:ChanghuiN
原文链接:https://www.hchstudio.cn/article/2017/c922/
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。

APP启动速度非常重要,APP启动速度慢,可能会造成用户体验不良好,尤其是在最近用Android studio之后,如果长时间不打开app,启动速度就会特别的慢,下面我们一起探讨一下影响app启动速度的原因,以及解决方案。

检测启动时间

首先我们要知道app的启动时间,然后你也可以凭着感觉来,这里我教大家一个装逼的方法:

1
adb shell am start -W [packageName]/[.MainActivity]

用adb命令可以检测启动时间,示例如下:

1
2
3
4
5
6
7
8
./adb shell am start -W "com.hchstudio.dict"/".MainActivity"
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.hchstudio.dict/.MainActivity }
Status: ok
Activity: com.hchstudio.dict/.MainActivity
ThisTime: 7524
TotalTime: 7524
WaitTime: 7551
Complete

  • com.hchstudio.dict为应用包名
  • .MainActivity为所要启动的主页面函数
  • WaitTime为我们所关注的启动时间

那么7551算不算启动时间长呢?答案是很长,。。。这是一个很长时间没有启动的app,当它第一次启动的时候就有很长的启动时间,下面来说怎么来减少吧。

减少应用启动耗时

app的启动流程,简单的说,主要包括两部分:

  • Application
  • 启动界面的onCreate方法

因此最简单的方法就是尽量减少这两个方法中的耗时操作。

上面的方法从代码上解决了启动速度,但是用户启动的时候还是感觉慢,怎么办呢?直接上代码:

1
2
3
4
5
6
7
8
9
10
11
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorAccent</item>
<item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.Launcher">
<item name="android:windowBackground">@color/colorLauncher</item>
</style>

这是android style文件,其中AppTheme.Launcher为启动界面的主题样式,给你的app首页主题样式加上android:windowBackground,放一下app的背景图片,这样即使app启动慢,也会首先加载背景,这样就会给用户造成一种假象,认为是app已经启动。

Instant Run

对于Android studio的新功能Instant Run,你知道多少呢?
Instant Run也是影响启动的因素之一,不过这个在发布的版本里是没有的,所以小伙伴们不要担心。
关于Instant Run,还是看大神写的吧,Android Studio新功能解析,你真的了解Instant Run吗?

关注我们

作 者:ChanghuiN
原文链接:https://www.hchstudio.cn/article/2017/c922/
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。

分享
Android
Mysql 的七种 join2016学习总结
微信关注我们
分类
  • Android8
  • Go4
  • Java59
  • Kafka,Java1
  • Kotlin2
  • Linux1
  • MapReduce1
  • Python2
  • Raft1
  • Redis1
  • ThreadPoolExecutor1
  • go1
  • 工具1
  • 总结8
  • 旅游日记1
标签
Nginx ChanghuiN haifeiWu Android Java 设计模式 hexo Kotlin 算法 MySQL 源码解析 Python Redis golang web Kafka 配置中心 总结 性能优化 旅游日记 Shell Go 问题排查 译文 Docker Spring Boot 工具 学习笔记 WebFlux 性能测试 go 散列表 源码 netty Raft
最近文章
  • Kafka的日志复制机制
  • 从20到21
  • go 并发编程
  • 【译】了解Linux CPU负载-您何时应该担心?
  • Zookeeper 与分布式锁
  • 基于Redis的分布式锁到底安全吗?
  • 【译】Raft 学生指南
  • ThreadPoolExecutor 的简单梳理
  • MapReduce 的简单实现
  • 使用 Map 实现策略模式
福利专区
    免费SSL证书
      阿里云红包
        腾讯云专属福利
        Copyright © 2021 代码星冰乐. Powered by ChanghuiN. 版权所有 晋ICP备15001365号
        特别感谢: 云服务器服务商 、 CDN 服务商