您的位置:首页 > 移动开发 > Android开发

Android应用程序冷启动优化

2017-04-13 16:38 204 查看
1什么是冷启动

冷启动是指从用户点击app图标到第一个Acitivity的onCreate()方法执行完毕这段时间程序所进行的活动。

2冷启动都做些什么

 当用户点击图标,Lnuix给APP创建独立进程,WindowManager会先加载APP里的主题样式里的窗口背景(Android:windowBackground)作为预览元素,Application和默认启动的Activity创建并初始化,然后加载默认启动的Activity布局并替换掉预览元素,启动完成。

3冷启动的优化方向:

1>尽量不要在Application的onCreate()方法中执行耗时操作和太多业务逻辑

2>尽量不要在默认启动的Activity的onCreate()方法中执行耗时操作和太多业务逻辑

3>默认Activity中加载布局不要太复杂,布局加载和渲染需要时间

4>如果上述1、2和3不能满足需求,借助动态修改主题,实现效果上的秒启

具体操作如下:

(1)自定义主题,把背景设置成App的logo

<style name="myTheme" parent="AppTheme">
<item name="android:windowBackground">@drawable/logo2</item>
</style>(2)在AndroidManifest文件中设置自定义主题,为了主题更好的兼容性,默认启动的activity继承Activitty
<application
android:name=".myAppContext"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/myTheme">(3)默认启动activity中的耗时处理(用线程睡眠模拟耗时任务)完成后,把主题设置成系统主题
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
Log.e("test", "ActivityonCreate: " );
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
setTheme(R.style.AppTheme);
setContentView(R.layout.activity_first);
}通过上面三步,就实现了在Application的onCreate()方法和Activity的onCreate()方法执行耗时操作时,一直显示App的logo,执行完毕,Logo图片被默认Activity的布局代替效果。从而实现视觉上的秒启,微信就这么干。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息