启动优化(解决白屏问题)
来源:互联网 发布:js scroll属性 编辑:程序博客网 时间:2024/06/16 10:09
启动优化(解决白屏问题)
一.启动优化分为什么?
冷启动(Cold Start): 在Android系统中,APP启动时,系统为每个运行的应用至少分配一个进程(多线程应用申请多个进程)。从进程角度讲,应该冷启动的时候,是没有该应用的进程配置信息的(包括 Application ,四大组件等)
或者可以说是属于你第一次打开APP,系统在给你开一个进程!
热启动(Hot Start): 就是你已经打开过APP但是实际上面你使用home键等。就是还存在后台的应用。再次打开的时候算是属于热启动了
二.如何做启动优化?
优化方案一:加一张背景图解决白屏问题
1. 首先,新建一个主题 (style)
1. <!--设置透明标题-->
<item name="android:windowIsTranslucent">false</item>
<!—添加背景图-->
<item name="android:windowBackground">@mipmap/center</item>
<!—全屏显示,防止卡死-->
<item name="android:windowFullscreen">true</item>
2.然后在AndroidManifast.xml文件中将主题设置给第一个启动的Activity
<activity android:name=".MainActivity" android:theme="@style/splashTheme">
3.然后在修改MainActivity的onCreate中,在setContentView(R.layout.avtivity_main)加载布局之前把主题修改回来
setTheme(R.style.AppTheme);
优化方案二:等界面初始化后再显示解决白屏问题
1.首先,在style里新建一个主题
<!--去掉标题-->
<itemname="windowNoTitle">true</item>
<!--设置透明的背景-->
<itemname="android:windowBackground">@android:color/transparent</item>
<!--设置透明标题-->
<itemname="android:windowIsTranslucent">true</item>
<item name="android:screenOrientation">portrait</item>
2.然后在AndroidManifast.xml文件中将主题设置给第一个启动的Activity
android:name=".MainActivity"
android:theme="@style/AppTheme2">
3.然后在修改MainActivity的onCreate中,在setContentView(R.layout.avtivity_main)加载布局之前把主题修改回来
setTheme(R.style.AppTheme);
4.常见的Theme主题
android:theme="@android:style/Theme.Dialog" //Activity显示为对话框模式
android:theme="@android:style/Theme.NoTitleBar" //不显示应用程序标题栏
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" //不显示应用程序标题栏,并全屏
android:theme="Theme.Light " //背景为白色
android:theme="Theme.Light.NoTitleBar" //白色背景并无标题栏
android:theme="Theme.Light.NoTitleBar.Fullscreen" //白色背景,无标题栏,全屏
android:theme="Theme.Black" //背景黑色
android:theme="Theme.Black.NoTitleBar" //黑色背景并无标题栏
android:theme="Theme.Black.NoTitleBar.Fullscreen" //黑色背景,无标题栏,全屏
android:theme="Theme.Wallpaper" //用系统桌面为应用程序背景
android:theme="Theme.Wallpaper.NoTitleBar" //用系统桌面为应用程序背景,且无标题栏
android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen" //用系统桌面为应用程序背景,无标题栏,全屏
android:theme="Theme.Translucent" //透明背景
android:theme="Theme.Translucent.NoTitleBar" //透明背景并无标题
android:theme="Theme.Translucent.NoTitleBar.Fullscreen" //透明背景并无标题,全屏
android:theme="Theme.Panel " //面板风格显示
android:theme="Theme.Light.Panel" //平板风格显示
三.启动优化面试题:
1.启动优化包括什么?
.1)冷启动
当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化Application类,再创建和初始化MainActivity类(包括一系列的测量、布局、绘制),最后显示在界面上。
2.)热启动
当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,这个方式叫热启动。热启动因为会从已有的进程中来启动,所以热启动就不会走Application这步了,而是直接走MainActivity(包括一系列的测量、布局、绘制),所以热启动的过程只需要创建和初始化一个MainActivity就行了,而不必创建和初始化Application,因为一个应用从新进程的创建到进程的销毁,Application只会初始化一次。
- 启动优化(解决白屏问题)
- Android 启动 白屏问题 解决
- Android 启动 白屏问题 解决
- android 启动白屏问题完美解决
- 解决Splash应用启动白屏问题
- 解决app启动时,白屏问题。
- 优化myeclipse启动速度以及解决内存不足问题
- Android 应用启动时优化白屏问题
- ViewPage 轮播图优化,解决oom和白屏问题
- 解决app启动时的白屏问题
- 解决首次启动程序白屏时间过长的问题
- 解决APP启动白屏或者黑屏闪现的问题
- 解决首次启动程序白屏时间过长的问题
- 解决首次启动程序白屏时间过长问题
- [Android]Splash界面解决启动白屏/黑屏问题
- 解决首次启动程序白屏时间过长的问题
- Android 解决启动app白屏或黑屏的问题
- Eclipse 启动优化问题(详细)
- IDEA打开Myeclipse的web项目
- Window下Eclipse远程访问伪分布式hadoop1.2.1测试WordCount
- Android UI渲染总结
- 深入理解Java的接口和抽象类
- Error:Execution failed for task ':app:buildInfoDebugLoader'.
- 启动优化(解决白屏问题)
- spring mvc 的启动过程
- jsp路径问题记录
- spring整合通用Mapper+ PageHelper + log4j2 + maven
- CMD命令提示符窗口基本样式属性设置
- bugly集成Tinker热修复,多渠道打包 签名
- NOIP-2015 运输计划(被卡常)
- C语言操作符
- 4个技巧帮你从客户更好获取反馈