Android系统通过应用程序自行在系统中登记注册事件(即Intent)来响应系统产生的各类消息。
例如Android实现系统开机自启动程需要在Manifest中加入如下Intent-filter及权限Uses-permission即可。
-
<intent-filter>
-
<action android:name="android.intent.action.BOOT_COMPLETED"/>
- (修改时候主要是去掉上面该行即可)
-
<category android:name="android.intent.category.HOME" />
-
</intent-filter>
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
- (修改时候主要是去掉上面该行即可)
Android系统为应用程序管理功能提供了大量的API,可以通过API控制Intent和permission,其中
上述配置表示应用程序会响应系统产生的android.intent.action.BOOT_COMPLETED(系统启动完成)信号,以此来实现应用程序自启动。当然知道上述原理后,我们就可以随心所欲的控制程序开机自启动了。具体思路如下:
一、手工方法
基于上述原理,我们可以通过对系统中已安装的程序去除其Manifest的上述配置片段来控制应用程序的对系统的响应,当然没源码可修改编译的情况下只能实现屏蔽其对有些信号的响应,例如屏蔽该程序不再开机自启动。手工方法就是利用有关工具直接在解压其APK包后,修改其Manifest的上述配置行后再打包成APK,最后安装到系统中就实现了屏蔽其自启动功能。具体相关的工具软件主要有APKTOOL。(请自己放狗去搜索下载)
二、编程实现
当然手工方法需要借助APKTOOL等工具,步骤比较法繁琐,我们可以通过自己开发来实现该功能。幸好
1、PackageManager
本类API是对所有基于加载信息的数据结构的封装,包括以下功能:
•安装,卸载应用
•查询permission相关信息
•查询Application相关信息(application,activity,receiver,service,provider及相应属性等)
•查询已安装应用
•增加,删除permission
•清除用户数据、缓存,代码段等
非查询相关的API需要特定的权限,具体的API请参考SDK文档。
2、ActivityManager相关
本类API是对运行时管理功能和运行时数据结构的封装,包括以下功能
•激活/去激活activity
•注册/取消注册动态接受intent
•发送/取消发送intent
•activity生命周期管理(暂停,恢复,停止,销毁等)
•activity task管理(前台->后台,后台->前台,最近task查询,运行时task查询)
•激活/去激活service
•激活/去激活provider等
task管理相关API需要特定的权限,具体API可参考SDK文档。
利用上述API原理的具体代码俺有空时候试试实现一个,应该不难的,都是调用现成的API实现。目前发现已有的控制开机自启动的成熟应用程序主要是autostarts,可自己安装一个试试,挺好用,实际上autostart有点名不副实,如果是我就会起个名字叫Intentcontrol,因为其不只是控制开机启动信号,它可以控制程序对大部分信号的响应行为。
三、系统自带工具
Android自带了1、程序包管理工具:/system/bin/pm 2、activity管理工具:/system/bin/am
具体用法大致说明如下:
pm的使用方法可以参考
usage: pm [list|path|install|uninstall]
pm list packages [-f]
pm list permission-groups
pm list permissions [-g] [-f] [-d] [-u] [GROUP]
pm list instrumentation [-f] [TARGET-PACKAGE]
pm list features
pm path PACKAGE
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] PATH
pm uninstall [-k] PACKAGE
pm enable PACKAGE_OR_COMPONENT
pm disable PACKAGE_OR_COMPONENT
The list packages command prints all packages. Options:
-f: see their associated file.
The list permission-groups command prints all known
permission groups.
The list permissions command prints all known
permissions, optionally only those in GROUP. Options:
-g: organize by group.
-f: print all information.
-s: short summary.
-d: only list dangerous permissions.
-u: list only the permissions users will see.
The list instrumentation command prints all instrumentations,
or only those that target a specified package. Options:
-f: see their associated file.
The list features command prints all features of the system.
The path command prints the path to the .apk of a package.
The install command installs a package to the system. Options:
-l: install the package with FORWARD_LOCK.
-r: reinstall an exisiting app, keeping its data.
-t: allow test .apks to be installed.
-i: specify the installer package name.
The uninstall command removes a package from the system. Options:
-k: keep the data and cache directories around.
after the package removal.
The enable and disable commands change the enabled state of
a given package or component (written as "package/class").
am的使用方法可以参考
usage: am [subcommand] [options]
start an Activity: am start [-D] <INTENT>
-D: enable debugging
send a broadcast Intent: am broadcast <INTENT>
start an Instrumentation: am instrument [flags] <COMPONENT>
-r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT)
-e <NAME> <VALUE>: set argument <NAME> to <VALUE>
-p <FILE>: write profiling data to <FILE>
-w: wait for instrumentation to finish before returning
start profiling: am profile <PROCESS> start <FILE>
stop profiling: am profile <PROCESS> stop
<INTENT> specifications include these flags:
[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>] [-f <FLAGS>] [<URI>]
分享到:
相关推荐
在Android系统中,开机自启动应用是指当设备完成启动过程后,系统会自动运行的一类应用程序。这些应用通常会在用户无须手动干预的情况下执行特定任务,例如同步数据、推送通知或者进行后台服务的初始化。"BOOT_...
在Android系统中,"开机自启动"是指当设备完成启动过程后,某些应用程序或服务能够自动启动并开始运行。这通常涉及到系统级别的设置和权限管理,对于开发者来说,理解和掌握这个功能是创建后台服务和持续运行应用的...
在Android系统中,"开机自启动"是指当设备完成启动过程后,某些应用程序或服务能够自动启动,无需用户手动操作。这通常涉及到Android系统的广播接收器(BroadcastReceiver)和权限设置。下面将详细讲解Android开机自...
标题中的"Delphi EX10 Android 实现开机自启动"是指使用Embarcadero Delphi XE10(也称为 RAD Studio XE10)开发的Android应用程序,目的是使其能够在设备启动时自动运行。这个过程涉及到Android系统的权限管理和...
本文将深入探讨如何在Android中实现开机自启动Service。 首先,我们要明白Android系统的权限管理机制。由于安全原因,从Android 8.0(API级别26)开始,系统对应用的自启动行为进行了限制,不允许应用在没有用户...
在Android系统中,"开机自启动"是指应用程序在设备启动完成后自动运行的功能。这通常涉及到系统服务、广播接收器和启动器服务等组件。在Android的权限管理日益严格的今天,了解如何实现和管理开机自启动对于开发者和...
"Android 8.1 开机自启动 WiFi-Adb 连接" Android 8.1 是 Google 公司推出的一个 Android 操作系统版本。该版本中,Android 8.1 引入了许多新的功能和改进,包括开机自启动 WiFi-Adb 连接服务。本文将详细介绍如何...
总结来说,创建一个Android开机自启动示例程序涉及到创建BroadcastReceiver、注册接收器、使用SharedPreferences存储用户设置以及处理权限问题。通过理解这些核心概念和技术,开发者可以构建出能够根据用户需求开机...
在Android平台上,实现应用的开机自启动和后台运行是一项常见的需求,这通常涉及到服务(Service)、广播接收器(BroadcastReceiver)以及系统权限的管理。在本文中,我们将深入探讨如何在Android 2.1及以上版本中...
当设备开机时,我们可能需要某些服务自动启动,以便在用户解锁设备之前执行一些必要的任务,例如同步数据、设置闹钟或者进行网络检查等。本篇文章将详细解释如何在Android中创建一个开机自动启动的服务。 首先,...
本示例将深入讲解如何实现一个Android程序开机自启动的功能。 首先,我们需要了解Android系统的生命周期。在设备启动时,系统会依次启动各种核心服务,然后广播ACTION_BOOT_COMPLETED意图。这个广播表示系统已经...
Android应用程序可以实现开机时启动相关应用 如service等 Android系统在开机启动时会发出一个系统广播"android intent action BOOT COMPLETED" 在接收到这个广播就可以实现开机自启动功能 下面就是一个...
android最好的开机自启动项管理软件,软件暂用资源小,功能强大,绿色无广告~~极力推荐
在Delphi环境下开发Android应用程序时,有时我们需要实现一个功能,即让应用在Android设备开机时自动启动。这个功能通常用于后台服务、定时任务或者需要在系统启动时立即运行的特定功能。以下是对如何在Delphi中创建...
在Android系统中,开机启动程序源码涉及到一系列复杂的流程和技术,包括系统初始化、服务启动、广播接收器等。本文将深入解析Android系统如何在开机时启动应用程序,并介绍相关的知识点。 一、系统启动流程 1. **...
在Android系统中,实现开机自启动服务是一项常见的需求,它使得应用能够在用户开机后自动运行特定的任务,如数据同步、消息推送等。本篇将详细讲解如何创建并配置开机自启动服务。 首先,我们需要理解`android....
unity打包安卓实现安卓应用开机自启。使用方法:把"安卓开机自动.arr"文件导入到unity项目中,手机重启后等待1-2分钟该应用即可自己打开。之前的在安卓10上没效果,修改了下。适用于安卓10版本。注意:需要在安卓10里...
Android权限设置及自启动设置方法 Android操作系统中,权限设置和自启动设置是两个非常重要的概念。在开发Android应用程序时,需要对权限进行设置,以便应用程序可以正常地运行和获取必要的资源。同时,自启动设置...