Android app开发中的比较麻烦的坑(一)

在开发中发现有许许多多的坑,每次解决后都没有记录,时间一长,这些坑再次出现的时候,发现突然忘了怎么解决的了,所以用一篇文章记录一下这些,开发中遇到的坑:

  • 开启时白屏

开启时慢或白屏

有时候,你在打开一个app的时候会发现,你点击了这个app的图标,打开之后会出现一段时间的白屏或者图标卡顿一会再进入app界面,为啥会卡呀,是我们的手机用久了么?查了一些博客发现,并不是,而是因为app的冷启动时间过长的原因造成app进入假死状态了。

如何解决呢,

首先我们得知为什么会出现这个白屏,在AndroidManifest.xml配置文件里面,你会看到你的LAUNCHER activity的配置

<activity    
    android:name=".StartPageActivity"    
    android:screenOrientation="portrait">    
        <intent-filter>        
            <action android:name="android.intent.action.MAIN" />
            <category  android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

这样的配置就会出现白屏的问题,如何解决呢,首先我们需要在Values/style中添加一个Android Theme

  <style name="AppBlackTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
  </style>

这个主题很简单,就是设置为透明,然后我们将这个主题设置到刚刚的LAUNCHER activity上

<activity    
    android:name=".StartPageActivity"    
    android:theme="@style/AppBlackTheme"
    android:screenOrientation="portrait">    
        <intent-filter>        
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

这个时候你再打开你的app,就会发现不会再闪白屏了

问题所在

后台无app残留的进程服务,重新打开app的时候,从初始化application,结束后再到欢迎界面,很多情况下,就是因为初始化application的时间过长导致了app假死的状态,然后再导致ANR的,所以我们就要优化application的初始化时间,如何去缩短初始化的时间,让app运行得更加流畅。

我们使用EventBus来解决这个问题如下图:

这里写图片描述

上图是方法二app冷启动的打开流程图,这个流程我就不说了,自己看图吧,这里代码也没什么还写,无非就是写EventBus的发送事件和处理事件,这个也不用上代码了吧?可以实践一下,这个也很简单的,有人会说,这个能优化的时间有多少啊?我大概测试了一下,优化的空间还是比较大的,可以缩短50%的时间左右,也就是说如果你的app一开始打开的时候需要三四秒,使用了这个简单粗暴法之后只需要一秒多就能打开了,是不是很爽?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值