转载自: http://www.trinea.cn/android/android-boot_completed-not-work/
本文主要介绍Android应用如何开机自启动、自启动失败的原因、adb命令发送BOOT_COMPLETED。
问题:应用程序是否可以在安装后自启动,没有ui的纯service应用如何启动?答案马上揭晓^_*
1、Android应用如何开机自启动
(1)、在AndroidManifest.xml中注册
注意不仅要添加android.intent.action.BOOT_COMPLETED对应的action,还需要添加对应的uses-permission
(2)、Receiver接收广播进行处理
2、自启动失败的原因
接收不到BOOT_COMPLETED广播可能的原因
(1)、BOOT_COMPLETED对应的action和uses-permission没有一起添加
(2)、应用安装到了sd卡内,安装在sd卡内的应用是收不到BOOT_COMPLETED广播的
(3)、系统开启了Fast Boot模式,这种模式下系统启动并不会发送BOOT_COMPLETED广播
(4)、应用程序安装后重来没有启动过,这种情况下应用程序接收不到任何广播,包括BOOT_COMPLETED、ACTION_PACKAGE_ADDED、CONNECTIVITY_ACTION等等。
Android3.1之后,系统为了加强了安全性控制,应用程序安装后或是(设置)应用管理中被强制关闭后处于stopped状态,在这种状态下接收不到任何广播。直到被启动过(用户打开或是其他应用调用)才会脱离这种状态,所以Android3.1之后
(1)、应用程序无法在安装后自己启动
(2)、没有ui的程序必须通过其他应用激活才能启动,如它的Activity、Service、Content Provider被其他应用调用。
存在一种例外,就是应用程序被adb push you.apk /system/app/下是会自动启动的,不处于stopped状态。
具体说明见:
http://developer.android.com/about/versions/android-3.1.html#launchcontrols
http://commonsware.com/blog/2011/07/13/boot-completed-regression-confirmed.html
3、adb发送BOOT_COMPLETED
我们可以通过
命令发送BOOT_COMPLETED广播,而不用重启测试机或模拟器来测试BOOT_COMPLETED广播,这条命令可以更精确的发送到某个package,如下:
相关推荐
通过理解以上知识点,开发者可以有效地实现Android应用的开机自启动功能,但同时也需要注意系统的限制和用户的需求,以提供更好的用户体验。在提供的压缩包Etzmico_AutoRun2中,可能包含了实现这一功能的完整代码...
在Android系统中,实现动态设置开机自动启动程序是一项常见的需求,尤其对于开发者和系统优化者来说,这有助于确保某些服务或应用在设备启动时能够自动运行。本文将深入探讨如何在Android平台上实现实现这一功能。 ...
在Android系统中,实现应用开机自启动是一种常见的需求,尤其对于一些服务类或者后台运行的应用来说,能够在设备启动时自动恢复其功能是非常重要的。本文将详细介绍如何创建一个Android开机自启动示例程序,并探讨...
在Android开发中,有时我们需要了解设备的开机启动时间以及开机后自动启动的应用程序。这篇内容将详细介绍如何通过Java代码在Android系统中实现这一目标。 首先,我们要关注的是“开机启动时间”的获取。在Linux...
针对标题中的"adb开机自启",我们需要确保在Android设备启动时自动启动ADB守护进程。这通常可以通过以下步骤实现: 1. **修改系统启动脚本**:在Android系统的/system/etc/init目录下,可以找到一系列的init*.rc...
开发者需要向用户解释为何需要开机启动,并指导他们在电池优化设置中允许应用自启动。 四、调试与测试 在实际开发中,由于安全原因,模拟器可能无法触发`BOOT_COMPLETED`广播。因此,测试开机启动功能通常需要在...
在Android应用开发中,自动更新功能是提升用户体验和确保应用安全的重要组成部分。它允许开发者在发现bug或需要推出新功能时,及时推送更新,而无需用户手动操作。本篇文章将详细探讨如何在Android应用中实现自动...
在Android应用开发中,为了确保用户始终使用最新版本的应用,开发者通常会实现自动更新功能。本文将详细探讨如何在Android应用程序中实现自动检查并下载新版本的代码逻辑,以达到无缝更新的效果。 首先,我们需要一...
在Android应用开发中,自动更新功能是不可或缺的一部分,它能够帮助开发者及时修复程序中的bug,增加新特性,以及提升用户体验。本资源“Android 应用软件自动更新源码.zip”包含了一个实现这一功能的源码示例,对于...
在Android应用开发中,自动更新功能是提升用户体验和确保应用安全的重要组成部分。"Android应用程序自动更新源码.zip"是一个包含实现这一功能的源代码资源。本文将深入解析这个压缩包中的知识点,帮助开发者理解如何...
在Android应用开发中,为了确保用户的软件始终保持最新状态并获得最佳体验,开发者通常需要实现自动更新功能。"Android-Android应用自动静默安装库"是一个专门为Android应用设计的库,其目的是让应用的更新过程更加...
Android Studio是一个功能强大且功能丰富的集成开发环境(IDE),它提供了许多功能来帮助开发者快速构建和测试Android应用程序。然而,在使用Android Studio时,开发者可能会遇到一些问题,例如启动模拟器失败。这篇...
在Android应用开发中,自动更新功能是至关重要的,它能够帮助开发者及时推送新版本的应用,修复漏洞,增强功能,提高用户体验。"Android应用程序自动更新源码"是一个实用的示例项目,供开发者参考和学习。这个压缩包...
在Android应用开发中,自动更新功能是至关重要的,它能够帮助开发者及时修复程序中的bug,增加新特性,提升用户体验。本资源"Android 应用软件自动更新源码.zip"提供了一个实现这一功能的源代码示例,对于学习和理解...
这个“Android高级应用源码-语音识别,根据语音,执行对应操作.zip”压缩包中,很可能包含了一个完整的示例项目,用于演示如何在Android应用中集成并实现基于语音的交互功能。以下将详细介绍这一技术的知识点: 1. ...
这份"Android应用源码之应用程序自动检查更新源码.zip"包含了实现这一功能的完整源代码,帮助开发者理解并实践自动更新机制。以下是这个源码包中的关键知识点: 1. **自动检查更新** - 应用程序启动时自动检查更新...
在Android应用开发中,应用内更新是至关重要的一个环节,它能够让用户无缝地获取到应用的最新功能和修复,提高用户体验。"Android-android应用应用内更新解决方案"主要探讨的就是如何在Android应用程序中实现平滑、...