Android app启动白屏优化
来源:互联网 发布:jsp链接数据库 编辑:程序博客网 时间:2024/05/21 12:45
可以看到启动的时候会有一个白屏, 如果手机较慢的话, 这个白屏就会持续一段时间, 不太友好.
那么还有没有什么办法优化呢?
给我们的应用窗口弄一个PlaceHolder
Android最新的Material Design有这么个建议的. 建议我们使用一个placeholder UI来展示给用户直至App加载完毕.
怎么做呢?
给Window加上背景
当App没有完全起来时, 屏幕会一直显示一块空白的窗口(一般来说是黑屏或者白屏, 根据App主题).
这个空白的窗口展示跟主题相关, 那么我们是不是可以从首屏的主题入手呢? 恰好有一个windowBackground的主题属性, 我们来给Splash界面加上一个主题, 带上我们想要展示的背景.
如果UI给你切了一张全屏的闪图,直接用就行了,如果只是给你中间一个logo,那你就要按照下面的方式去做:
做一个logo_splash的背景:
<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 底层白色 --> <item android:drawable="@color/white" /> <!-- 顶层Logo居中 --> <item> <bitmap android:gravity="center" android:src="@drawable/ic_github" /> </item></layer-list>
弄一个主题:
<style name="SplashTheme" parent="AppTheme"> <item name="android:windowBackground">@drawable/logo_splash</item> <item name="colorPrimaryDark">@android:color/transparent</item> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item></style>
将一个什么不渲染布局的Activity作为启动屏
写一个什么都不做的SplashActivity.
public class SplashActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 注意, 这里并没有setContentView, 单纯只是用来跳转到相应的Activity. // 目的是减少首屏渲染 if (AppPref.isFirstRunning(this)) { IntroduceActivity.launch(this); } else { MainActivity.launch(this); } finish(); }}
在AndroidManifest.xml中设置其为启动屏, 并加上主题:
<activity android:name=".ui.module.main.LogoSplashActivity" android:screenOrientation="portrait" android:theme="@style/SplashTheme"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter></activity>
最终的效果
让我们来看下最终的效果:
相比之前, 呈现给用户的不再是一个白屏了, 带上了logo, 当然这个背景要显示什么, 我们可以根据实际情况来自定义.
这种优化, 对于有些Application内的初始化工作不能移到子线程做的情况, 是非常友好的. 可以避免我们的App长时间的呈现给用户一个空白的窗口.
阅读全文
0 0
- Android app启动白屏优化
- Android app 启动优化
- Android性能优化之APP启动白屏
- Android中App启动优化
- Android性能优化(二):APP启动优化
- Android开机启动速度优化 && app启动速度优化
- Android App启动出现白屏或者黑屏的优化方案
- Android App应用启动分析与优化
- Android App应用启动分析与优化
- Android MultiDex初次启动APP优化
- Android APP 启动优化(冷启动)
- Android App优化之提升你的App启动速度
- Android性能优化系列之App启动优化
- Android性能优化系列之App启动优化
- Android 性能优化系列之 App 启动优化
- Android性能优化系列之App启动优化
- Android性能优化系列之App启动优化
- Android性能优化之App应用启动分析与优化
- PAT乙级 1042. 字符统计(20)
- (转)在Windows上安装GPU版Tensorflow
- 织梦中在线显示pdf文件的方法
- PAT乙级 1043. 输出PATest(20)
- [BZOJ]1106: [POI2007]立方体大作战tet
- Android app启动白屏优化
- 数据标准化的方法与意义
- 人工智能让复杂世界变简单【智库2861】
- 根据id或者关键词跳转appstore下载应用
- JavaWeb工程中web.xml基本配置
- PAT乙级 1044. 火星数字(20)
- 二叉搜索树(二叉排序树)
- centos7搭建hadoop集群
- Git常用命令以及常见问题处理