说一说android:persistent="true"保活


1.什么样的应用配置这个值能够实现保活?

系统预装的应用,而且跟预装位置相关。具体看代码

if ((flags&PARSE_IS_SYSTEM) != 0) {if (sa.getBoolean(com.android.internal.R.styleable.AndroidManifestApplication_persistent,false)) {ai.flags |= ApplicationInfo.FLAG_PERSISTENT;}
}

其中PARSE_IS_SYSTEM是在这里传入的

scanDirTracedLI(systemAppDir, mDefParseFlags| PackageParser.PARSE_IS_SYSTEM| PackageParser.PARSE_IS_SYSTEM_DIR, scanFlags, 0);

对于不同的预装目录,会配置不同的parseFlags,而只有配置了PARSE_IS_SYSTEM并且应用配置了android:persistent=“true”,如下:

<application android:name="XXXX" android:persistent="true" >

这个应用才能成为persistent应用,实现保活。所以对于一个系统应用在他自升级后,他将不再是一个persistent应用。当然厂商是可以做定制化的,但是不建议做修改,android本身意图就只有phone相关的应用具备persisitent保活。


2.保活应用会出现什么问题?

目前来看由于这个应用是一直存活的所以在他自升级,清除数据等过程中,应用也不会退出,这就导致应用即使清除数据,但是仍然缓存有数据导致运行异常。代码如下:

if (app.persistent && !evenPersistent) {// we don't kill persistent processesif (IS_ENG_BUILD || DEBUG_PROCESSES) {Slog.d(TAG, "ACT-killPackageProcessesLocked ignore persistent process " +app.persistent + " " + evenPersistent);}continue;
}

说明一下android P开始限制了persistent应用升级,报错信息如下:
[INSTALL_FAILED_INVALID_APK: Package xxx is a persistent app. Persistent apps are not updateable.]


3.persistent应用启动时机很早,早于开机广播的发送,以及桌面启动。

public void systemReady(final Runnable goingCallback)
{...synchronized (this) {// Only start up encryption-aware persistent apps; once user is// unlocked we'll come back around and start unaware appsstartPersistentApps(PackageManager.MATCH_DIRECT_BOOT_AWARE);...if (skipHome == false) {//启动桌面startHomeActivityLocked(currentUserId, "systemReady");}...//这里发送完FINISH_BOOTING_MSG后才开始发送开机广播postFinishBooting(false, true);...}....
}

启动这类进程的打印如下:

Start proc 1308:XXXX/10003 for added application XXXX

更多内容可以参考 说说Android应用的persistent属性

说一说android:persistent=true保活相关推荐

  1. Android系统级保活方案

    一.防止应用在系统低内存的时候被回收 代码路径:./frameworks/base/services/java/com/android/server/am/ActivityManagerService ...

  2. android:persistent属性

    为什么写这篇文章呢?前段时间在研究telephony时,一直没有在framework下发现对telephony的初始化(PhoneFactory.java中的makeDefaultPhones函数)的 ...

  3. Android安卓进程保活(二)

    Android进程保活·设置前台Service,提升App进程优先级 Android进程 此文章代码Github上有提交:https://github.com/NorthernBrain/proces ...

  4. Android应用自启动保活手段与安全现状分析

    文章目录 前言 自启动手段 1.1 监听系统广播 1.2 应用互相拉活 1.3 SDK批量拉活 1.4 前台服务保活 自启动限制 2.1 限制系统广播接收 2.2 厂商的自启动管理 2.3 系统进程回 ...

  5. Android最强保活黑科技的最强技术实现

    大家好,我是老玩童.今天来跟大家分享TIM最强保活思路的几种实现方法.这篇文章我将通过ioctl跟binder驱动交互,实现以最快的方式唤醒新的保活服务,最大程度防止保活失败.同时,我也将跟您分享,我 ...

  6. Android安卓进程保活(一)1像素且透明Activity

    Android进程保活·1像素且透明Activity提升App进程优先级 Android进程 此文章代码Github上有提交:https://github.com/NorthernBrain/proc ...

  7. Android应用后台保活

    公司最近的新需求,需要实时动态的向后台上传经纬度,每隔10s上传一次,记录运行轨迹,尝试了多种办法都不行,只能用开启无声音乐来保活. 下面是service的主要代码 先注册一下: <servic ...

  8. Android之APP保活

    前言 强烈建议不要这么做,不仅仅从用户角度考虑,它只会滋生更多的流氓应用,拖垮Android 平台的流畅性(假如你手机里装了支付宝.淘宝.天猫.UC等阿里系的app,那么你打开任意一个阿里系的app后 ...

  9. android默认exported_Android android:exported = true 用法详解

    Android android:exported = true 用法详解 Android相关属性的介绍:android:exported = true 在Activity中该属性用来标示:当前Acti ...

  10. Android 自用 App保活——音乐播放保活适配8.0 (贼好用)

    又是好久没有积累东西了.惭愧,惭愧...手动哭泣.闲话说到这里,下面我介绍一种新的 App 保活方式哈,目前用小米家族手机 涵盖 Android 5.0 到 Android 8.1家族的测试.结论是, ...

最新文章

  1. 开发错误记录9:Application无法跳转到Activity
  2. badboy 不支持html5,html5_iframe.htm
  3. c语言中fr,关于frwite()函数的一个问题,弄了好久就是不行,求解啊!
  4. android studio课程管理系统,8 个最优秀的 Android Studio 插件
  5. 秋季唯美海报,打造的一系列秋季主题视觉
  6. 前方预警!Windows Server 将默认需符合 TPM2.0,服务器商需在来年 1 月 1 日前适配相应规则...
  7. python中 是什么运算_“是”运算符在Python中做了什么?
  8. pcl小知识(十二)—— 斯坦福兔子和其他图形学模型数据下载
  9. b站python_python学习 —— B站抢楼原理
  10. Date Wed Mar 17 2021 13:52:00 GMT+0800 (中国标准时间) 转标准的日期格式
  11. BIOS学习之Beyong Bios
  12. CSDN,hen hao,hen qiang da
  13. 为何水在地球上几亿年都不过期,装进瓶子却很快过期科学家解惑
  14. Android 打包签名 从生成keystore到完成签名
  15. VB6 加载控件Windows Common Controls 6.0(mscomctl.ocx)失败提示“对象库未注册”
  16. 量子加密通信与量子传感技术相关精简介绍
  17. 一门编程语言的通用知识点
  18. 古诗生成-pytorch
  19. Saleor:开源、免费的无头电子商务平台——系列教程,快速打造属于你的电商网站
  20. python 地图偏移_python 地图经纬度转换、纠偏的实例代码

热门文章

  1. android高仿苹果计算器,安卓仿苹果计算器(内附完整源码)要点解析.docx
  2. python查询水果价格_C语言查询水果价格
  3. 基金投资入门1:基金基础知识介绍
  4. Java七牛云报400错误
  5. 全国青少年软件编程等级考试scratch一级考试大纲+考点
  6. 1314:【例3.6】过河卒(Noip2002)
  7. uniapp接入支付宝登录及订阅消息教程
  8. 最早的即时通讯软件哪一个,你知道吗?
  9. 刘宇凡:坚持就是写文章的最大技巧
  10. 一文带你搞懂Python中的文件操作