app保活持续更新中

Android进程保活:如何让app一直运行 1)为什么需要进行进程保活呢?需求是什么?2)进程分类3)进程的优先级4)如何提高进程优先级5)如何进行进程保活。 阅读详情

一、如何保活后台服务

在Android Services (后台服务) 里面,我们了解了Android四大组件之一的Service,知道如何使用后台服务进行来完成一些特定的任务。但是后台服务在系统内存不足的时候,可能会被系统杀死。那么如何让后台服务尽量不被杀死呢?基本的解决思路主要有以下几种:

1. 提高Service的优先级:

<!-- 为防止Service被系统回收,可以尝试通过提高服务的优先级解决,1000是最高优先级,数字越小,优先级越低 -->  
android:priority="1000" 

2.把service写成系统服务,将不会被回收:

在Manifest.xml文件中设置persistent属性为true,则可使该服务免受out-of-memory killer的影响。但是这种做法一定要谨慎,系统服务太多将严重影响系统的整体运行效率。 

3.将服务改成前台服务foreground service:

重写onStartCommand方法,使用StartForeground(int,Notification)方法来启动service。  

注:一般前台服务会在状态栏显示一个通知,最典型的应用就是音乐播放器,只要在播放状态下,就算休眠也不会被杀,如果不想显示通知,只要把参数里的int设为0即可。 

同时,对于通过startForeground启动的service,onDestory方法中需要通过stopForeground(true)来取消前台运行状态。 

这个方案也是本文目前准备详细介绍的。

4.利用Android的系统广播

利用ANDROID的系统广播检查Service的运行状态,如果被杀掉,就再起来,系统广播是Intent.ACTION_TIME_TICK,这个广播每分钟发送一次,我们可以每分钟检查一次Service的运行状态,如果已经被结束了,就重新启动Service。 

三、前台服务

1.what

前台服务是那些被认为用户知道(用户所认可的)且在系统内存不足的时候不允许系统杀死的服务。前台服务必须给状态栏提供一个通知,它被放到正在运行(Ongoing)标题之下——这就意味着通知只有在这个服务被终止或从前台主动移除通知后才能被解除。

2.why

在一般情况下,Service几乎都是在后台运行,一直默默地做着辛苦的工作。但这种情况下,后台运行的Service系统优先级相对较低,当系统内存不足时,在后台运行的Service就有可能被回收。
那么,如果我们希望Service可以一直保持运行状态且不会在内存不足的情况下被回收时,可以选择将需要保持运行的Service设置为前台服务。

3.how

本文按照做音乐播放器的思路,做一下相关的说明,如何使用前台服务。

首先要创建一个服务:

public class MusicPlayerService extends Service {
  
  private static final String TAG = MusicPlayerService.class.getSimpleName();
  
  @Override
  public void onCreate() {
      super.onCreate();
      Log.d(TAG, "onCreate()");
  }
  
  @Override
  public int onStartCommand(Intent intent, int flags, int startId) {
    Log.d(TAG, "onStartCommand()");
  }
  
  @Override
  public IBinder onBind(Intent intent) {
       Log.d(TAG, "onBind()");
       // TODO: Return the communication channel to the service.
    throw new UnsupportedOperationException("Not yet implemented");
  }
}

然后创建Notification:

在Service的onStartCommand中添加如下代码:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
  Log.d(TAG, "onStartCommand()");
  // 在API11之后构建Notification的方式
  Notification.Builder builder = new Notification.Builder
    (this.getApplicationContext()); //获取一个Notification构造器
  Intent nfIntent = new Intent(this, MainActivity.class);
  
  builder.setContentIntent(PendingIntent.
    getActivity(this, 0, nfIntent, 0)) // 设置PendingIntent
    .setLargeIcon(BitmapFactory.decodeResource(this.getResources(),
      R.mipmap.ic_large)) // 设置下拉列表中的图标(大图标)
    .setContentTitle("下拉列表中的Title") // 设置下拉列表里的标题
    .setSmallIcon(R.mipmap.ic_launcher) // 设置状态栏内的小图标
    .setContentText("要显示的内容") // 设置上下文内容
    .setWhen(System.currentTimeMillis()); // 设置该通知发生的时间
  
  Notification notification = builder.build(); // 获取构建好的Notification
  notification.defaults = Notification.DEFAULT_SOUND; //设置为默认的声音
}

在完成Notification通知消息的构建后,在Service的onStartCommand中可以使用startForeground方法来让Android服务运行在前台。

// 参数一:唯一的通知标识;参数二:通知消息。
startForeground(110, notification);// 开始前台服务

如果需要停止前台服务,可以使用stopForeground来停止正在运行的前台服务。

@Override
public void onDestroy() {
  Log.d(TAG, "onDestroy()");
  stopForeground(true);// 停止前台服务--参数:表示是否移除之前的通知
  super.onDestroy();
}

到此为止,我们基本上就学会了如何使用前台服务了。

四、总结

1. 前台服务与普通服务的区别

  • 前台Service的系统优先级更高、不易被回收;
  • 前台Service会一直有一个正在运行的图标在系统的状态栏显示,下拉状态栏后可以看到更加详细的信息,非常类似于通知的效果。
Android 14.0 App进程保活白名单功能实现详解 在Android系统中,为了优化系统资源的使用和提高用户体验,系统会根据进程的优先级和内存使用情况来管理后台进程。当系统资源紧张时,一些后台进程可能会被系统杀死以释放内存。然而,对于一些需要实时更新数据或提供即时服务的应用来说,后台进程的持续运行至关重要。因此,Android 14.0引入了app进程保活白名单功能,允许开发者将某些应用添加到白名单中,从而确保这些应用在后台能够持续运行。Android 14.0的app进程保活白名单功能为开发者提供了一种有效的手段来确保特定应用在后台的持续运行。 阅读详情

相关推荐

从咕咚、乐动力看Android保活:揭秘主流运动APP的黑科技与避坑指南

本文深入解析Android运动类APP如咕咚、乐动力的保活技术,揭秘其通过降低oom_adj值、进程复活等黑科技实现后台常驻内存的原理。提供从Low Memory Killer机制到实战避坑指南的完整方案,帮助开发者优化APP保活策略,平衡性能与用户体验。

weixin_30872337的博客 482

Android App保活的方式

以上是Android App保活的一些常用方式,不同的应用程序可以根据自己的需求选择合适的方式来保持应用程序的运行状态。需要注意的是,保活过程中需要合理使用系统资源,以避免对系统性能造成影响。

小魔楼的专栏 1万+

Android App加入白名单保活授权及引导用户操作指南

在Android系统中,应用程序在后台运行时,如果长时间没有用户交互或未进行网络请求等操作,系统可能会将其进程终止,以释放内存资源。然而,对于某些需要持续后台运行的应用,如即时通讯、定位服务等,加入白名单则成为提高其保活能力的重要手段。本文将详细介绍如何将Android App加入白名单并引导用户完成相关操作。

2401_89549124的博客 1339

Android应用保活全攻略:30个实用技巧助你突破后台限制

本文详细介绍了30种保活方法,涵盖了前台服务、双进程守护、JobScheduler、监听系统广播、使用Firebase Cloud Messaging等多种技巧。同时,文章强调了在实际开发中,应根据功能需求和用户体验来权衡保活策略,尽量遵循系统的规范和限制。在可能的情况下,优先考虑使用系统推荐的解决方案,以实现最佳的用户体验。

陆业聪 4966

从保活到升级:深入解析Android priv-app目录下Service的生存之道与破解之法

本文深入解析Android系统中`/system/priv-app`目录下Service的特殊保活机制及其对应用升级的挑战。通过分析特权应用的权限与生命周期管理,提供三种实战验证的破解方案,包括间接绑定保活、OTA升级包处理和动态加载技术,帮助开发者解决特权应用升级难题。

weixin_30614109的博客 426

UniApp安卓保活实战:用Ba-KeepAliveSuit插件搞定后台定位和WebSocket不掉线

本文详细介绍了如何使用UniApp的Ba-KeepAliveSuit插件实现安卓后台保活,解决后台定位和WebSocket不掉线的问题。通过分析安卓系统的后台限制机制,结合插件的前台服务绑定、定时心跳唤醒和双进程守护等技术,显著提升后台任务存活率。文章还提供了实战案例和厂商适配技巧,帮助开发者应对不同设备的特殊限制。

weixin_30379531的博客 449

什么是Android进程(app)保活、进程保活的方案

想了解什么是Android 进程、Android 进程的生命周期、Android 进程回收策略 可参照地址https://blog.youkuaiyun.com/lmm0513/article/details/103073475 一、app保活 在Android中是一种流氓行为,一方面无端浪费用户手机电量,另一方面给用户一种很困惑的感觉,影响用户体验还有可能导致整个Android系统流畅性...

lmm0513的博客 5342

安卓APP保活--十种方案

安卓APP保活--十种方案 什么是保活?保活就是在用户主动杀进程,或者系统基于当前内存不足状态而触发清理进程后,该进程设法让自己免于被杀的命运或者被杀后能立刻重生的手段。 保活是”应用的蜜罐,系统的肿瘤“,应用高保活率给自己赢得在线时长,甚至做各种应用想做而用户不期望的行为,给系统带来的是不必要的耗电,以及系统额外的性能负担。 保活方案一直就层出不穷,APP开发们不断地绞尽脑汁让自己的应用能存活得时间更长, 主要思路有两个:

半夏微凉科技 5372

腾讯微信团队Android进程保活技术终极揭mi,速看

PP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。**[外链图片转存中…(img-O7KnUVmI-1712034104140)]

X7gUWZnYP的博客 1099

24GHz雷达DIY呼吸监测仪:用树莓派+TI IWR6843搭建生命体征检测系统(附Python代码)

本文详细介绍了如何利用树莓派和TI IWR6843毫米波雷达模块DIY非接触式呼吸监测仪。通过硬件选型、信号处理流水线设计和实时可视化系统搭建,实现高精度的生命体征检测,特别适合医疗健康和运动监测场景。附带的Python代码帮助开发者快速复现该系统。

rl6adventurer的博客 985

逆变器母线电容选型与均压电阻设计实战指南

本文为逆变器母线电容选型与均压电阻设计提供了实战指南。文章从工程角度出发,详细解析了母线电容耐压值、容值的计算方法,并重点强调了纹波电流热设计的重要性。同时,深入探讨了串联电容均压电阻的设计原则与功率计算,通过5.5kW变频器案例,系统演示了从参数确定到最终选型的完整流程,旨在帮助工程师设计出稳定可靠的逆变器系统。

weixin_29299807的博客 292

Android保活终极方案:革命性后台永生技术完整指南

在Android生态日益严格的今天,传统保活方案纷纷失效,但真正的技术突破从未停止。本文为您揭秘2023年最新Android高可用黑科技应用保活方案,实现终极目标——应用永生!最高适配Android 14,完美兼容小米、华为、Oppo、vivo等最新机型,拒绝强杀,开机自启动,让您的应用在后台持久运行。 ## 🚀 一键集成指南:三分钟搞定保活配置 区别于常规的一像素方案和后台音乐方案,本技术

gitblog_00947的博客 1137

DC竞赛 国能日新功率预测题 rank21 解决方案(适合新手)

DataCastle国能日新光伏功率预测 数据异常处 本题在测试集中提供了时间、辐照度、风速、风向、温度、压强、湿度、实发辐照度8个特征,以及标签**实际功率**。 而在训练集中只有前七个特征,无实发辐照度。 策略 在观察了数据之后,我们确定实发辐照度是一个强力特征,于是我们采取了stacking的策略: 1. 第一次训练以实发辐照度为标签,预测 测试集的实发辐照度 2....

yyhhlancelot的博客 7294

终极Android保活方案:让应用永不掉线的完整指南

AndroidKeepAlive是一款革命性的**Android后台运行**解决方案,专门为需要持续后台服务的应用开发者设计。这款强大的**应用保活库**能够确保您的应用在各种设备休眠、系统优化甚至用户强制停止的情况下依然保持运行,为用户提供无缝的连续体验。🚀 ## 为什么选择AndroidKeepAlive? 在Android生态系统中,后台运行一直是开发者面临的巨大挑战。传统的保活方案往

gitblog_00405的博客 445

8155平台multi-display(多屏显示)原理与配置

8155平台多屏互动原理与配置

漂流瓶の海岸 1607

5分钟搞定Unity+Visual Studio开发环境配置(含C#游戏开发工作负载)

本文提供了一份详细的Unity与Visual Studio开发环境配置指南,帮助开发者在5分钟内完成C#游戏开发工作负载的设置。从Unity Hub安装到Visual Studio关键组件选择,再到常见问题排查,全面覆盖环境搭建的各个环节,显著提升游戏开发效率。

weixin_29014237的博客 248

App保活,无声音乐保活

最近在做一个运动手环项目,需要不断的更新运动数据,并且在灭屏的状态下给用户推送来电和短信。大部分手机在App灭屏的状态下就会把App睡眠了,这样是推送不了短信的,用户不满意啊。后来发现播放音乐之类的灭屏也能播啊,那就假装咱也是音乐播放方应用吧。 1.Service的内容: import android.app.ActivityManager; import android.app.Notif...

sxk874890728的博客 1543

打造会自主学习的 AI 助手:OpenClaw 记忆系统完全指南

这不是科幻,这是我正在使用的系统。我的 AI 助手「小琳」已经运行了一段时间,积累了大量的知识和经验,而且还在不断学习成长。心跳(Heartbeat)是 OpenClaw 的定时轮询机制,可以让 AI 主动做一些事情。你有没有遇到过这样的困扰:每次和 AI 对话,它都像失忆了一样,之前聊过的内容完全不记得?设置定时任务:每天早上 8 点,查询天气和热点新闻,通过钉钉推送给我。让你的 AI 助手拥有持久记忆,能够自主学习、总结经验、不断成长。这不仅仅是一个「能记住事情的 AI」,而是一个。

Honmaple的博客 1633

android 音乐app 保活,App保活,无声音乐保活

最近在做一个运动手环项目,需要不断的更新运动数据,并且在灭屏的状态下给用户推送来电和短信。大部分手机在App灭屏的状态下就会把App睡眠了,这样是推送不了短信的,用户不满意啊。后来发现播放音乐之类的灭屏也能播啊,那就假装咱也是音乐播放方应用吧。1.Service的内容:import android.app.ActivityManager;import android.app.Notificatio...

weixin_34770855的博客 549

极智AI | 算能SC5+智算卡驱动安装与升级

大家好,我是极智视界,本文介绍一下 算能SC5+智算卡驱动安装与升级

极智视界 1277

TMS320F28377D双核开发例程 - DSP开发

首先,我们需要创建一个新的工程来进行开发。然后,选择适当的目标设备为TMS320F28377D,并设置工程的名称和存储位置。在上面的代码中,我们定义了一个128个元素的输入数组和输出数组。然后,我们使用一个简单的数字信号处理算法,将输入数组中的每个元素平方,并将结果存储到输出数组中。这个芯片的双核架构提供了更高的计算能力和灵活性,使得数字信号处理的开发更加高效和可靠。希望本文对您有所帮助!当应用程序在TMS320F28377D芯片上运行时,它将对输入数组中的每个元素进行平方运算,并将结果打印出来。

IfllUnity的博客 2517

UniApp后台定位避坑指南:从权限检测到进程保活,让你的App不再‘跟丢’用户

本文深入探讨UniApp后台定位的优化策略,涵盖权限检测、进程保活和厂商兼容性等关键问题。通过动态权限监听、智能节流算法和厂商白名单策略,有效解决Android/iOS系统差异导致的定位中断问题,显著提升定位成功率和用户体验。特别针对watchPosition等核心功能提供实战代码示例,帮助开发者实现稳定可靠的后台定位服务。

weixin_32050773的博客 370

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

(原创)分享一些推荐的进程保活方式

Android平台进程保活技术DaemonProcess

TL961922的博客 602

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

如何有效提升鸿蒙应用的日活与月活

目标关键动作提高日活优化首日体验 + 每日场景设计 + 推送唤醒提高月活内容更新 + 任务系统 + 分享传播闭环降低流失稳定性能 + 个性化激励 + 用户成就感要想突破 50+ 日活、稳定月活增长,不靠运气,只靠系统化的增长思维 + 持续优化。

haotongx的博客 2546

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

终极Android保活黑科技:2025年最新实现应用永久运行的秘密武器

你是否曾因Android应用频繁被系统杀死而烦恼?想让你的音乐播放、导航定位或实时通讯应用在后台持续运行,即使面对用户强制停止也能屹立不倒?今天,我们将揭秘2025年最新Android高可用黑科技应用保活方案——AndroidKeepAlive,让你的应用实现真正的"永生"! [![Android应用保活技术演示](https://raw.gitcode.com/gh_mirrors/an/An...

gitblog_00872的博客 705

安卓app开发系列之-用户反馈和维保

用户反馈和维保是应用成功的关键组成部分。通过有效地收集和分析用户反馈,开发者可以更好地理解用户需求并及时响应。同时,通过定期的维护和更新,确保应用的稳定性、性能和用户满意度。持续关注用户的声音,不断优化和提升应用,将有助于建立长期的用户忠诚度。维护不仅是技术问题,更是与用户之间的一种沟通和建立信任的过程。如果您有任何问题或需要深入讨论的内容,欢迎随时交流!

Jamson 2111
上一篇: Android中的Webview一些知识点
下一篇: Maven项目下java.lang.ClassNotFoundException常规解决办法
java_for
博客等级 码龄12年 6粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值