[关闭]
@Tyhj 2018-05-12T19:51:16.000000Z 字数 1294 阅读 1300

APP快速启动

Android


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

代码优化

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

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

启动主题优化

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

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

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

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

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

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

启动方式优化

APP启动方法我觉得有三种

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

  1. @Override
  2. public void onBackPressed() {
  3. if (System.currentTimeMillis() - lastClickTime > 2000) {
  4. lastClickTime = System.currentTimeMillis();
  5. toast("再次点击退出");
  6. return;
  7. }
  8. //常用的方法
  9. finish();
  10. //热启动
  11. //moveTaskToBack(true);
  12. }

系统优化

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

参考文章:

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

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注