导航:首页 > 操作系统 > android开机启动apk

android开机启动apk

发布时间:2023-09-04 13:51:06

1. android App安装以及启动流程

Android App的安装可以分为有界面的安装和无界面的安装。

有界面的安装其实就是调用系统App(PackageInstaller)咐码去安装apk,打开安装apk应用之后,点击安装按钮执行startInstall方法,然后就进入安装中界面开始安装,安装成功或者衡族哪失败都会有对应的回调。内部其实也是使用PackageManager的installExistingPackage方法,通过binder机制,调用到PackageManagerService的installExistingPackage方法,最终调用到installExistingPackageAsUser方法安装,而 安装的核心原理其实就是将apk文件拷贝到系统可识别的重要的文件目录

无界面安装是调用adb命令,执行到一个c写的commandline脚本,调用 install_app 方法,然后再调用 pm_command ,然后执行到pm脚本,执行 run 方法,调用 runinstall ,然后调用 installPackageAsUser 通过AMS执行安装。

说到App的启动,就需要从穗则开机开始说起,Android开机会先把所有应用安装一遍就是把apk拷贝到对应的目录(这也是Android开机慢的原因)。

整个流程如下:

其实App的启动,除了刚开机是不一样之外,正常时候基本与Activity的启动非常接近。

2. android怎么设置开机启动软件

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文档。

3. android 启动apk源码在哪个目录下

首先打开Android Studio安卓Apps开发工具。

选择单击工具栏Android SDK Manager图标

弹出settings对话框,单击launch Standalone SDK Manager 即启动独立的SDK Manager 程序。

弹出Android SDK Manager程序主界面。

选择下载安装Sources for Android SDK;

使用Android Studio就可以查看Android源码文件了。

4. Android App 开机自启动

<article class="_2rhmJa">

Android 设备开机自启动的可以用广播实现,因为 Android 设备开机时会发送一条开机广播 "android.intent.action.BOOT_COMPLETED"。接收后实现启动就完成了。

接下来是准备工作

如果按照上面的全部步骤后操作后,重启没有自动启动程序,怎么办呢?是怎么回事呢?

*那么首先请检查一下你的手机是不是安装了360等安全助手之类的软件,如果有,请在软件的自启动软件管理中将app设置为允许
*我的手机没有安装这些软件,但是手机中自带了安全助手,有的手机系统设置里面自带了自启动软件管理的功能 ,所以在这里将我们的app设置为允许开机启动),重启手机,测试是否成功。

然而并没有成功

接收不到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状态,在这种状态下接收不到任何广播,除非广播带有FLAG_INCLUDE_STOPPED_PACKAGES标志,而默认所有系统广播都是FLAG_EXCLUDE_STOPPED_PACKAGES的,所以就没法通过系统广播自启动了。所以Android3.1之后
(1)、应用程序无法在安装后自己启动
(2)、没有ui的程序必须通过其他应用激活才能启动,如它的Activity、Service、Content Provider被其他应用调用。
存在一种例外,就是应用程序被adb push you.apk /system/app/下是会自动启动的,不处于stopped状态。

并不太懂 我的APP启动后 已经收到广播

第一种方式 我再模拟器上 测试 可以 android 9.0版本

桌面设置也会把你的app当成一个桌面主题,还有一个选项是系统桌面,你需要设置成自己的app

如果找不到桌面设置选项,可以从手机设置–应用程序-查看所有应用程序(包括系统的应用程序),找到桌面程序之类的字眼的应用,清楚其默认设置。

阅读全文

与android开机启动apk相关的资料

热点内容
广联达加密锁怎么看到期 浏览:172
cad轨迹命令 浏览:979
同事刷到女程序员自媒体视频 浏览:571
校验算法的缺点是什么 浏览:717
PHP商品分类功能实现 浏览:330
php取字符串中间 浏览:430
程序员经常用工具 浏览:835
降服主力指标源码主图 浏览:500
python实用库 浏览:692
电脑默认7个文件夹 浏览:11
新唐单片机安装c51后编译错误 浏览:530
红包源码引流神器 浏览:235
学生初中毕业撕书解压 浏览:747
命令方块刷铜点教学 浏览:690
php邮件订阅系统 浏览:997
柱梁底加密箍间距 浏览:30
pythonjavascript对比 浏览:741
什么动漫app是大陆字幕 浏览:286
android查看activity栈 浏览:918
x86固件编译 浏览:166