一.App的启动以及Application启动过程分析
从点击桌面Icon到我们第一个见面展示出来分为两个部分
1.系统去创建进程以及Application
2.Application到Acitivty
第一部分是系统黑盒子模块,我们没有办法去通过代码优化,但是第二部分我们可以去通过代码进行优化。
二.启动黑白屏优化
1.用户体验优化:
(1).将app的Theme置为透明色,这样用户点击之后只是有一段时间的延迟,然后进入App页面。
<item name="android:windowIsTranslucent">true</item>
(2)在自己<style name="AppTheme" parent="Theme.AppCompat.Light">中加入windowsbackground
(3).自定义主题
<style name="AppTheme.Launcher">
<item name="android:windowBackground">@drawable/bg</item>
</style>
<activity
android:theme="@style/AppTheme.Launcher"/>
然后再程序中使用
setTheme(R.style.AppTheme);
这样我们就可以避免应用在启动的时候的黑白屏体验了
示例:QQ的用法
<item name="android:windowDisablePreview">true</item>
<item name="android:windowBackground">@null</item>
2.通过代码去优化
我们通常应用会在Application的onCreate方法中做很多初始化的工作,但是往往这些初始化的工作也给我们的App加载带来一定耗时,因此我们需要对oncreate中的方法去进行分析,尽量减少耗时操作。我们可以通过tract将代码执行的分析文件,然后去进行方法分析
Debug.startMethodTracing(file.getAbsolutePath());
...
Debug.stopMethodTracing();
通过adb命令把生成的.trace分析文件拉到桌面,然后再倒入Android studio进行分析
adb pull /storage/emulated/0/app1.trace C:\Users\70883\Desktop
我们要尽量将耗时操作放进子线程中去操作,不影响主线程的执行。
注意:带有Handler的方法不能放在子线程中去执行。