Android加速启动Activity

Activity是Android的四大组件之一,承担着非常重要的作用。并且Activity加载速度是很影响用户体验的,直接关乎到我们App的质量。下面就说说怎么优化加速启动我们的Activity。

Activity的显示会调用onCreat()、onStart()、onResume()方法,假设当前Activity不可见时会调用onPause()以及onStop()方法,回退之后又会调用onRestart()、onStart()、onResume()方法。所以我们需要知道对应的生命周期在执行什么操作,这样我们才能更好的对Activity进行优化。

一、耗时操作优化
我们知道如果在主线程中直线耗时操作的话会引发ANR异常,所以耗时操作我们需要在子线程完成,还有网络加载数据进行异步请求。

二、布局文件优化
1.多余控件:用不到的控件和层级只会浪费界面的渲染时间。
2.使用include:在编程Activity界面XML布局时,如果界面中控件大量相同或者许多出使用一样的布局时,此时我们可以使用include,将公用的布局代码单独写成一个xml文件,然后在引入,这样可以减少视图重用。
3.使用Merge: include和merge两个最好配合使用,include减少视图重用,merge帮助include减少视图层级,比如include所引用布局中根布局和include引用到的布局根布局重复,使用merge可以有效解决这个问题。
4.使用ViewStub:我们开发中可能会这样做,就是用当用户进行某项操作时才显示View或某个布局,一般的做法就是对View或布局进行Visible/Gone,这样做虽然把View的初始可见设置为View.GONE但是在Inflate布局的时候View仍然会被Inflate,也就是说仍然会创建对象,会被实例化,会被设置属性。也就是说,会耗费内存等资源,而ViewStub可以帮助我们延迟加载暂时无用的视图,比如主页加载数据为零,要展示空数据页面,空页面不是一开始就必须加载的,可以借用ViewStub在需要加载的时候进行渲染并显示。
具体的使用就不在这里做多余的介绍了,自己去查找资料即可。

三、视图加载优化
试图加载优化,最常见的就是我们的Fragment的懒加载,只有显示时才去加载。

以上就是我的理解,经过查阅资料、以及自己在实际开发中也有遇到过。如果有写的不好的地方,直接评论指出就好。

你可能感兴趣的:(android)