Android UI 性能优化 -- 启动优化

2019-04-26  本文已影响0人  Iimly

提要:

优化流程:

体验优化:

解决方案:
 <style name="AppTheme.Launcher1">
        <!--取消windowBackground 或者设置启动图片-->
        <item name="android:windowBackground">@null</item>
        <!--取消window预览视图-->
        <item name="android:windowDisablePreview">true</item>
    </style>

在当前activity引用当前主题
效果:


简单优化效果

性能优化:

 @Override
    public void onCreate() {
        super.onCreate();
        File file = new File(Environment.getExternalStorageDirectory(), "app1.trace");
        Log.i(TAG, "onCreate: " + file.getAbsolutePath());
        //把分析结果存在一个文件
        Debug.startMethodTracing(file.getAbsolutePath());
        //对全局属性赋值
        mContext = getApplicationContext();
        mMainThread = Thread.currentThread();
        mMainThreadId = android.os.Process.myTid();
        mMainLooper = getMainLooper();
        mHandler = new Handler();
        //因为LQRUIKit中已经对ImageLoader进行过初始化了
         
                initNim();
                initImagePicker();
                initOkHttp();//可以懒加载
        NIMClient.init(this, loginInfo(), options());
        Debug.stopMethodTracing();
    }

我们可以看到红色矩形区域内的Item可以onCreate()中的方法引用一一对应,并在Total栏下面分别显示各个方法所执行的时长。

    @Override
    public void onCreate() {
        super.onCreate();
        File file = new File(Environment.getExternalStorageDirectory(), "app1.trace");
        Log.i(TAG, "onCreate: " + file.getAbsolutePath());
        //把分析结果存在一个文件
        Debug.startMethodTracing(file.getAbsolutePath());
        //对全局属性赋值
        mContext = getApplicationContext();
        mMainThread = Thread.currentThread();
        mMainThreadId = android.os.Process.myTid();
        mMainLooper = getMainLooper();
        mHandler = new Handler();
        //因为LQRUIKit中已经对ImageLoader进行过初始化了
        initImageLoader(getApplicationContext());
        new Thread(){
            @Override
            public void run() {
                //如果要用线程来节约了这些初始化的时间
                initNim();
                initImagePicker();
                initOkHttp();//可以懒加载
            }
        }.start();
        NIMClient.init(this, loginInfo(), options());
        Debug.stopMethodTracing();
    }

再次运行App:


优化后

可以明显看到优化后和优化之前明显的差异,在使用异步初始化的时候需要注意节点:

生命不止,学习不止,与君共勉

上一篇 下一篇

猜你喜欢

热点阅读