APP快速启动

原文链接:https://www.zybuluo.com/Tyhj/note/1144921
最近接手一个项目需要优化,最大的问题就是卡顿和启动慢,所以看了一下APP快速启动方面的东西,其实也没什么,只要自己习惯好一点一般都是没有问题的。

代码优化

首先要注意的地方就是MyApplication.onCreate方法里面不要做超时的操作,一些第三方SDK可以多线程来加载

同样的MainActivity.onCreate方法也不能做耗时的操作,有些操作可以在MainActivity.onResume里面操作

启动主题优化

APP启动一般的流程就是点击,然后画面变白,然后首页出来。

点击画面变白这个可以优化一下,在项目创建时,系统会为launcherActivity默认了一个LightTheme,这样就会导致App点击启动后会白屏一段时间然后展示自己的Activity,为了解决白屏的问题把启动的界面theme主题换成透明的

<style name="Quick_start_Light" parent="Theme.AppCompat.Light">
    <item name="android:windowBackground">@color/translate</item>
    <item name="android:windowIsTranslucent">false</item>
    <item name="android:windowFullscreen">true</item>
</style>

然后的确没有白屏了,但是体验更差,因为点击后到主界面的时间没有变,但是屏幕一直没反应,感觉就是反应更慢了。

可以把其中的windowBackground设置为一张图片,类似logo什么的展示界面,这样感觉就是一点击就进入了APP,然后还需要一点点优化,首先在theme中设置全屏,避免状态栏的出现,然后进入启动Activity后重新设置回APP的theme

setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);

启动方式优化

APP启动方法我觉得有三种

冷启动:就是进程被干掉,需要新开进程进行一系列初始化,最耗时间
热启动:Home键后重新进入APP
暖启动:finish()栈底的Activity后再进入APP,也有可能被系统杀掉
可以做的就是把暖启动变为热启动

@Override
public void onBackPressed() {
    if (System.currentTimeMillis() - lastClickTime > 2000) {
            lastClickTime = System.currentTimeMillis();
            toast("再次点击退出");
            return;
        }
    //常用的方法
    finish();
    //热启动
    //moveTaskToBack(true);
}

系统优化

还有就是系统自身的问题了,现在的很多手机厂商的系统都是优化过的,可以做到快速启动APP,不过有些就不一定了

参考文章:

程序丨5分钟教你打造一个秒开的Android App

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,270评论 25 709
  • 【触发背景】面对海量APP的今天,APP用户量和活跃度成为评价一款APP是否成功的重要因素。用户下载APP后,AP...
    siyu8023阅读 13,525评论 1 14
  • 转载自一触即发 App启动优化最佳实践 一触即发 App启动优化最佳实践 文中的很多图都是Google性能优化指南...
    CP9阅读 3,720评论 0 3
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,719评论 0 17
  • 引言:让我们来思考几个问题,你开发过的产品,它还有可以优化的地方吗?能增加它的帧率吗?能减少多余的CPU计算吗?是...
    kuailejim阅读 12,853评论 27 69