android启动白屏的分析,Android 启动白屏,跳转黑屏以及冷启动优化

一,白屏

现象:启动app,白屏一段时间后才出现欢迎页android

解决:shell

1,添加styleapp

true

或者ide

@mipmap/welcome

其中@mipmap/welcome是一个欢迎页图片。相比之下第二种的更好一点,能够达到秒启动。第一种会有短暂的卡顿,而后显示启动页。测试

2,在Manifest中设置给WelcomeActivity优化

android:name=".main.login.WelcomeActivity"

android:launchMode="singleTask"

android:screenOrientation="portrait"

android:theme="@style/AppTheme.Launcher">

3,这样改变了整个app的主题,咱们须要在WelcomeActivity中把咱们原本的主题设置回去线程

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

// 咱们原本的style

setTheme(R.style.AppTheme_NoActionBar)

window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)

setContentView(R.layout.activity_welcome)

}

这样解决了白屏的问题。3d

二,黑屏

现象:由一个界面跳转到另外一个界面时出现黑屏,而后才显示后一个界面。code

分析:通常都是由于给AppTheme添加了windowIsTranslucent,这样过渡时前一个Acitivity被finish掉了,然后一个还没显示出来。就会出现黑屏。blog

解决:把AppTheme的windowIsTranslucent属性去掉。

@color/colorPrimaryDark

@color/colorPrimaryDark

@color/colorAccent

三,启动时间优化

咱们一般须要在application中作一下三方库的初始化。这些操做都会影响咱们的启动速度。

此时咱们能够把这些操做放到子线程中完成。如:

new Thread(new Runnable() {

@Override

public void run() {

init();

}

}).start();

只是举个栗子,不要内存泄漏了。

四,检测启动时间

能够经过adb命令来测试冷启动和热启动的耗时,

adb shell am start -W [包名]/[包名.类名]

如。

951da035914c11dd61895a32dbef9a2a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android启动白屏的问题通常是由几个可能的原因引起的。 首先,可能是由于启动页资源加载过多或加载时间过长。启动页一般是启动应用程序时的第一个页面,如果其中包含大量的图片或其他资源文件,可能会导致加载时间过长,显示为白屏。为了解决这个问题,可以尝试优化资源加载的方式,比如减少资源文件的大小或数量,并尽量异步加载资源。 其次,可能是由于启动页逻辑处理过多。如果在启动页进行了过多的逻辑处理,比如网络请求、数据库读写等操作,会导致启动页一直停留在加载状态,最终显示为白屏。要解决这个问题,可以考虑将一些耗时操作移到后台线程进行,并在处理完成后再跳转到下一个页面。 另外,设备性能也可能是造成启动白屏的原因之一。如果设备内存不足或处理器性能较低,可能无法快速加载启动页的资源,导致白屏。对于这种情况,可以考虑对资源进行压缩或减少启动页的复杂度,以提高页面加载速度。 最后,还有可能是由于启动页的布局或主题样式设置问题。如果启动页的布局或主题样式存在错误或异常,可能导致页面无法正确显示,最终呈现为白屏。为了解决这个问题,可以检查启动页的布局文件、主题样式文件以及相关的资源引用是否正确,并确保它们能够正确加载和渲染。 综上所述,解决Android启动白屏的问题,需要注意资源加载、逻辑处理、设备性能以及布局样式等方面的因素,以确保页面能够正常加载和显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值