关于application的persistent属性

Android Persistent常驻内存分析 Persistence常驻内存分析 简介 通过官方注释我知道该属性用于是否让你的应用一直处于运行状态(通常说的常驻内存)。设置android:persistent 属性为true的app具有如下特点: 在系统启动的时候会被系统启动起来。 在该app被强制杀掉后系统会重新启动该app,这种情况只针对系统内置app,第三方安装的app不会被重启这个地方在9.0以后包括9.0我不知道是否还有效,看源码我有点困惑。 这里我们分析的代码是Android10.0的源码。 使用 在AndroidManifest文件下 阅读详情

该属性用于指定 应用是否应该在系统启动时持久运行。如果设置为 true,Android 会尝试在设备启动时保留该应用,并尽可能不杀死它,即使系统内存紧张。

⚠️ 重要注意事项:

从 Android 5.0(API 21)开始,Google 已不再允许普通应用使用 android:persistent="true",这个标志 仅适用于系统级应用(如 SystemUI、Telephony)。

普通应用无法通过此属性实现持久化运行,应使用 前台服务(Foreground Service) 或 WorkManager 等方式。

之前的应用用了这个属性,且正好又是系统APP,

造成 adb installl -r 无法生效

作为系统应用,如果有persistent属性,则有可能无法重装,卸载等

Android原生应用保活机制 由此可以看到persistent进程被杀后,触发了进程启动时和AMS之间的binder墓碑机制走到cleanUpApplicationRecordLocked方法,针对persistent应用AMS会重新拉起新的进程。虽然persistent特性的应用进程oom_adj是-800很难被系统杀掉,但不排除其他因素导致应用进程被杀,比如我们通过命令adb shell kill -9 xxx即可杀掉某个进程。查看进程的oom_adj值是-800,优先级非常高,可以看出带persistent的进程很难被系统杀死。 阅读详情

相关推荐

android persistent属性研究

    为什么写这篇文章呢?前段时间在研究telephony时,一直没有在framework下发现对telephony的初始化(PhoneFactory.java中的makeDefaultPhones函数)的调用。结果全局搜索之后发现在application PhoneApp(packages/apps/Phone)中调用了。但是application PhoneApp既没有被Broadcast唤

杜文涛的专栏 4万+

谈谈Android中的persistent属性

Android中的persistent属性

QG 6117

AndroidManifest.xml中Application属性配置全解析

Android应用开发中,AndroidManifest.xml文件是每个项目的核心配置文件,其中Application属性的正确配置直接影响应用性能与安全性。从基础原理看,这些属性控制着应用的启动方式、内存管理、UI渲染等关键行为。技术实现上涉及类加载机制、资源管理系统和进程通信等底层原理。合理配置能显著提升启动速度(如largeHeap优化)、增强数据安全(如allowBackup设置)、改善用户体验(如theme适配)。典型应用场景包括多进程架构设计、折叠屏适配、网络通信安全等。特别需要注意andro

weixin_31421613的博客 280

Android中的persistent属性

persistent属性定义在frameworks/base/core/res/res/values/attrs_manifest.xml中:persistent官方解释:是一个用于控制应用程序特殊持久模式的标志。通常情况下不应被应用程序使用,它要求系统始终保持应用程序的运行。

huibin147852369的专栏 1644

Android 9.0 10.0 手动安装Persistent app失败的解决方案

在Android系统App中(注意是系统App),都会添加一个persistent 属性,表明此应用是一个永久性应用,就是从系统一开机就一直运行,直到系统关机在10.0定制化开发中,手动安装一些带persistent的app时会抛出异常 导致安装失败 抛出异常is a persistent app. Persistent apps are not updateable的异常所以这要从安装流程分析问题所在主要安装处理在:PackageManagerService.java中。

安卓兼职framework和app工程师的博客 5046

OpenCASCADE绘制测试线束:OCAF 属性命令

其中,OCAF(Object Persistent Application Framework)是OpenCASCADE中一个非常强大的应用框架,它可以帮助我们更好地管理和操作OpenCASCADE中的对象。综上所述,我们可以使用OCAF属性命令来创建通用属性,并将其应用于OpenCASCADE中的对象中。上面的代码创建了两个属性:一个整数属性,表示线束测试对象中的电线数量,一个实数属性,表示线束测试对象的长度。本文将介绍如何使用OCAF属性命令来创建通用属性,并将其应用于线束测试对象中。

HackWhisper的博客 241

android:persistent属性研究

 为什么写这篇文章呢?前段时间在研究telephony时,一直没有在framework下发现对telephony的初始化(PhoneFactory.java中的makeDefaultPhones函数)的调用。结果全局搜索之后发现在application PhoneApp(packages/apps/Phone)中调用了。但是application PhoneApp既没有被Broadcast唤醒,也没有被其他service调用,那么是android是通过什么方式来启动PhoneApp,所以就发现了属性andr

u010227042的博客 1361

ICESat-2数据下载的两种方法

ICESat-2数据下载

weixin_46341898的博客 2902

Android 总结:Manifest文件中,application和activity标签属性详解

最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

m0_74931167的博客 1303

Mac 环境配置jdk、Maven

3、终端打开配置jdk时候建好的脚本文件: open -e .bash_profile。4、查看maven是否安装成功和系统能不能识别maven/mvn命令:⬇️。输入⬇️并保存: 其中第一行JAVA_HOME替换为自己下的jdk路径。,安装编译好的二进制版本,具体安装zip还是tar.gz我看的。5、查看jdk是否安装成功和系统能不能识别java命令:⬇️。至此,我的Mac系统的环境配置jdk、Maven完成!然后就发现我的maven命令还是没作用,不识别,下载后直接安装即可,很快,点几下就OK了。

weixin_42416791的博客 4412

从零到千兆:KSZ9031 PHY芯片在Zynq PS端的驱动移植心路历程

本文详细记录了在Xilinx Zynq-7000平台(基于XC7Z020芯片)上,为KSZ9031千兆以太网PHY芯片移植LwIP协议栈驱动的完整过程。从硬件连接配置、Vivado工程设置到LwIP库的深度修改与调试,分享了解决PHY识别、自协商及性能优化等关键问题的实战经验,助力开发者实现稳定的千兆网络连接。

honey的博客 1117

Android persistent属性研究

前段时间在研究telephony时,一直没有在framework下发现对telephony的初始化(PhoneFactory.java中的makeDefaultPhones函数)的调用。结果全局搜索之后发现在application PhoneApp(packages/apps/P

Working harder, getting stronger! 1065

利用Matlab实现矩形波导电磁场分布图的绘制

1.利用Matlab实现矩形波导电磁场分布图的绘制;2.学会使用 Matlab 进行数值计算,并绘出相应的图形;通过Matlab 计算并绘出任意时刻金属矩形波导的主模 TE10 模的电磁场分布图。波导尺寸、工作频率及时刻均由外部给定。(1)矩形波导中传输的主模为TE10模。设金属波导尺寸为a*b,TE10模的截止波长为2*a。其电磁场分量可推导表示如下:.......1-1上式中各参量如下:......1-2。

qq_26335381的博客 3059

android:persistent

如果不希望应用在系统低内存时被系统销毁,需将application标签的android:persistent设置为true.

WangGaozhuo的专栏 482

制作Ubuntu22.04启动盘

现在越来越多程序代码都需要运行在linux环境下,运行这些代码的前提是安装一个稳定的linux操作系统。本文选择Ubuntu 22.04去制作系统启动盘。本文主要对ubuntu22.04的启动盘制作过程进行了详细的说明,希望能帮助到有需要的朋友。

lyx_ok的博客 1万+

Windows本地化部署Dify完整指南

本文详细介绍了在Windows系统上本地化部署Dify的完整步骤,涵盖了Docker Desktop的安装与配置、Dify源代码的获取、环境变量的设置、服务的启动与管理、以及常见问题的解决方案。文章首先指导用户如何下载和安装Docker Desktop,并配置WSL 2功能。接着,详细说明了如何获取Dify源代码,并通过Docker Compose启动服务。文章还提供了高级配置指南,包括如何配置大语言模型和更新Dify版本。最后,针对Docker镜像拉取失败等常见问题,提供了详细的诊断和解决方案。通过本文,

jacky_zhuyuanlu的博客 1万+

说说Android应用的persistent属性

1 启动persistent应用     在Android系统中,有一种永久性应用。它们对应的AndroidManifest.xml文件里,会将persistent属性设为true,比如: ? 1 2 3 4 application android:name="PhoneApp" android:persis

UX_LEGEND的专栏 850

ArcMap|时空地理加权回归(GTWR)

ArcGIS的GTWR插件下载地址:https://www.researchgate.net/publication/329518786_GTWR_ADDIN_Valid_till_Dec_31_2022 更详细的操作参考: https://www.bilibili.com/video/BV1fR4y1M7xB?spm_id_from=333.999.0.0 https://blog.youkuaiyun.com/weixin_40008135/article/details/112693520 双击“GTWR_Be

个人学习笔记 1万+

android android:persistent service 空闲被回收

网上有好多文章介绍app service 持续空闲30分钟后被回收,是因为app service脱离了可视组件的绑定,就被系统认为是空闲了,可是我们需要开发app service完全和可视组件没关系的deamon 服务,那么目前只有一招了,就是设置一下applicaton的属性: android:persistent="true" 这个是需要system uid的: android:s...

EmMouse的专栏 719

Python爬虫教程:抓取纽约时报文章存档

爬虫技术主要用于从网站上抓取并提取数据。HTTP请求:使用requests库发送HTTP请求以获取网页。网页解析:使用或lxml库解析HTML网页。数据存储:将抓取的数据保存为CSV、JSON等格式,或者存储在数据库中。防反爬虫技术:模拟正常的用户请求,避免被反爬虫机制封锁。多线程与异步爬取:提高抓取效率。通过这篇博客,您已经学习了如何使用Python爬取纽约时报的历史文章存档。本文介绍了如何模拟请求头、抓取网页内容、解析HTML并提取数据,最后存储到CSV文件或数据库中。

2201_76125261的博客 595

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android应用程序防止被LMK干掉

一、背景:项目中APP需要常驻后台,但Android的LMK(low memory kill)会根据自己的算法在内存不足时清理一些进程。如何尽量不让LMK干掉自己的成呢? 二、调查: 参考一:http://bbs.youkuaiyun.com/topics/360088771#r_72861243 [quote] Android 系统对于内存管理有自己的一套方法,为了保障系统有序稳定的运信,系...

沉淀之路—Android 1082

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

关于start service Intent not found与android:directBootAware="true"属性的问题

在一个程序中设置了一下属性, android:persistent="true" android:directBootAware="true" 以上属性的含义分别为: android:persistent=“true”,设置该程序为常启动程序,开机启动,并且异常崩溃后,重新自动启动; android:directBootAware=“false”,允许程序在android未启动完成时期(解锁阶段...

Sunxiaolin2016的博客 4635

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android如何使自己的应用不容易被清理掉和开机自动启动

(1)Application加上Persistent属性 看Android文档知道,当进程长期不活动,或系统需要资源时,会自动清理门户,杀死一些Service,和不可见的Activity等所在的进程。但是如果某个进程不想被杀死(如数据缓存进程,或状态监控进程,或远程服务进程),可以这么做:<application android:allowBackup="true" andr

zhengxtDgxs的博客 2497

17-Android系统应用默认开机启动

Android系统应用默认开机启动 需要在清单文件的application标签添加android:persistent=“true” 属性 <application android:icon="@drawable/app_music_new" android:label="@string/musicbrowserlabel" android:taskAffinity="android.task.music" android:allowTaskReparenting="true"

陌上 466

ANDROID使程序进程不被LMK杀死

通过这两篇文章 http://topic.youkuaiyun.com/u/20110312/11/62e21a94-195b-48c8-85d3-ea2689ed693f.html?seed=582570045&r=72861243#r_72861243 http://blog.sina.com.cn/s/blog_4d66a3cb0100prfe.html 总算实现了目标。通过在androidman

flying_vip_521的专栏 2444
上一篇: 修改apk 文件名 kts写法
下一篇: 关于遗留项目重构反复看
lynn8570_blog
博客等级 码龄10年 254粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值