android开发笔记(四十七)Android启动页优化
主要优化Application onCreate函数里的执行时间,和SplashActivity的启动。
1. Application优化
经验:
(1)Application的oncreate函数里的耗时操作放在线程里去。
(2)用到的时候再初始化某些第三方SDK,总之最好不要提前调用某些函数,用到的时候再调用。
2. SplashActivity启动页,即第一个页面容易出现绘制前的黑屏或白屏,也就是说先闪一下黑(白)屏才能绘制出SplashActivity的布局界面,
解决方法:
方法1. 自定义一个theme,修改android:windowBackground为自己的背景图,可以是一个广告页面图片等,这样 就代替了黑屏(白屏)
<style name="AppSplashTheme">
<item name="android:windowBackground">@drawable/app_start_background</item>
</style>
效果:点击后,直接显示自己的广告页面,然后接下来才显示启动页面的界。
方法2:
<style name="AppSplashTheme">
<item name = "android:windowIsTranslucent">true</item>
</style>
效果:点击后,黑白屏是透明的,也就是说用户看到的是桌面,然后接下来才显示启动页面的界面。
方法3:
<style name="AppSplashTheme">
<item name="android:windowDisablePreview">true</item>
<item name="android:windowBackground">@null</item>
</style>
效果:点击后,黑白屏是透明的,也就是说用户看到的是桌面,然后接下来才显示启动页面的界面。
3. 性能监测工具traceview
public void onCreate() {
super.onCreate();
File file = new File(Environment.getExternalStorageDirectory(), "run.trace");
Log.i(TAG, "onCreate: " + file.getAbsolutePath());
//把分析结果存在一个文件
Debug.startMethodTracing(file.getAbsolutePath());
//初始化百度地图 SDK
SDKInitializer.initialize(this);
SDKInitializer.setCoordType(CoordType.BD09LL);
Debug.stopMethodTracing();
}
在要测试的代码段的开始和结尾处分别添加上 Debug.startMethodTracing(file.getAbsolutePath())和 Debug.stopMethodTracing();就会在手机存储卡里生成run.trace文件,跟踪了运行状况,将这个文件从手机里导出,然后拖放到Android studio里就会生成性能图。
后续完善此文章给出下示例代码和效果。
本文地址:https://blog.csdn.net/gaoxiaoweiandy/article/details/107191378
上一篇: 企业应用免钉流程 -- 钉钉
下一篇: PopListItem