???????兄弟们,我又来了,上一篇刚刚总结完Android 开机自启动实战问题,今天就来聊聊开机启动延迟缓慢的问题。 这里我也百度了一些文章,大概的参考了一下,并把其中缘由都基本了解,并且也进行了实战演练。 我们开机自启无非就是通过监听 开机广播(android.intent.action.BOOT_COMPLETED )来实现开机自启动,这里关于开机自启就不做概述,想了解的可以去参考我上一篇的文章。其实开机延迟几秒 或者20秒 等,问题并不是出在我们发送广播的时候,而是在接收广播的问题上
查阅官方文档:文档中概述说是广播的优先级 比较低,android:priority的默认值为0 取值范围围-1000到1000 ,然后参阅别人反编译360手机助手,android:priority设置的是2147483647 然后个人通过不同机型的手机,调整优先级,在调试过程中,不得不感慨不同版本的手机,以及不同机型产生的结果差异大不相同 ,下面是不同机型的开机自启时间对比 ,大家可以参考一下:
方式一:
<receiver
android:name=".receiver.AutoStartBroadReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
红米手机 Redmi 6A 安卓version 9 ??????????????????????????? 34s 华为手机 DUA-AL00 安卓version 8.1.0 ??????????????????? 38s 华为手机 Honor 9i 安卓version 9.1.0 ?????????????????????? 51s VIVO手机 vivo iQOO 安卓version 11 ?????????????????????? 31s
方式二:
<receiver
android:name=".receiver.AutoStartBroadReceiver"
android:exported="true">
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
红米手机 Redmi 6A 安卓version 9 ??????????????????????????? 18s 华为手机 DUA-AL00 安卓version 8.1.0 ??????????????????? 19s 华为手机 Honor 9i 安卓version 9.1.0 ?????????????????????? 34s VIVO手机 vivo iQOO 安卓version 11 ?????????????????????? 16s
方式三:
<receiver
android:name=".receiver.AutoStartBroadReceiver"
android:exported="true">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
红米手机 Redmi 6A 安卓version 9 ??????????????????????????? 22s 华为手机 DUA-AL00 安卓version 8.1.0 ??????????????????? 17s 华为手机 Honor 9i 安卓version 9.1.0 ?????????????????????? 32s VIVO手机 vivo iQOO 安卓version 11 ?????????????????????? 17s
到这里大家基本上也就清楚了,自己适合哪一种方式,解决开机自启的延时问题,虽然不能直接实现我们想要的结果,但是从根本问题上提前了几秒,快了那么几秒。
总结
我在参阅文章的同时,找到一篇通过监听开机铃声,然后实现开机自启 的方法,但是需要fw的帮忙,这个就看大家的意愿了,这个目前没有做实质性的实战,大家可以去参阅一下大佬的文章《android 开机广播接收慢处理方式》。另外一种处理方式也是要fw的帮忙,在上一篇文章中我总结了,大家自己去参阅就行了,不做详细介绍。
如若大家还有更好的解决办法,欢迎留言探讨,我们共同进步!
|