欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android开发笔记(四十七)Android启动页优化

程序员文章站 2022-03-27 12:11:02
主要优化Application onCreate函数里的执行时间,和SplashActivity的启动。1. Application优化经验:(1)Application的oncreate函数里的耗时操作放在线程里去。(2)用到的时候再初始化某些第三方SDK,总之最好不要提前调用某些函数,用到的时候再调用。2. SplashActivity启动页,即第一个页面容易出现绘制前的黑屏或白屏,也就是说先闪一下黑(白)屏才能绘制出SplashActivity的布局界面,解决方法:方法1....

主要优化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