精华内容
下载资源
问答
  • 安卓实现保活
    2020-06-30 14:51:54
    更多相关内容
  • Android保活方法

    千次阅读 2022-02-22 15:57:16
    参考 Android 保活措施 https://juejin.cn/post/6844904020901888008 深度剖析APP保活案例 ...2020年Android最新保活实现原理揭秘 ...Android实现进程保活方案解析 https://cloud.tencent.com/developer/article

    参考

    1. Android 保活措施
      https://juejin.cn/post/6844904020901888008
    2. 深度剖析APP保活案例
      http://gityuan.com/2018/02/24/process-keep-forever/
    3. 2020年Android最新保活实现原理揭秘
      https://cloud.tencent.com/developer/news/585273
    4. Android实现进程保活方案解析
      https://cloud.tencent.com/developer/article/1784046

    理解

    1. 保活的主要思路有两个,一个是提高进程优先级避免被杀; 另一个是在进程被杀后可以重新被拉起.

    2. 提高进程优先级方法
      (1)使用前台服务
      (2)监听熄屏广播,启用一个像素的透明Activity

    3. 进程被杀后重新拉起
      (1) 监听系统或第三方广播拉起进程.
      (2)双进程互保, 一个进程监测到另一个进程被杀后,就重新拉起.
      (2.1) 监测可以使用一个进程A持有一个文件的锁, 另一个B去获取.当B可以获取的时候,则A被杀,需要拉起.
      (2.2) 拉起的方法可以通过am命令去启动进程

    展开全文
  • Android进程保活的常用方法

    千次阅读 2021-12-02 11:22:32
    Android进程保活的常用方法 进程保活和去保活,一直是一个热门的讨论话题,先看一下保活方法 方法1:APP内部提升优先级 Perceptible(用户可以感受到其运行的(如后台运行的music playback), 1)在服务的oncreate添加...

    Android进程保活的常用方法

    进程保活和去保活,一直是一个热门的讨论话题,先看一下保活方法

    方法1:APP内部提升优先级

    Perceptible(用户可以感受到其运行的(如后台运行的music playback),
    1)在服务的oncreate添加 startForeground(1, new Notification()); (这种需要常驻通知,如mtkloger、music等)
    2)还有另外一种方法,就是am.setProcessForeground/setProcessImportant(mForegroundToken, pid, true)直接设置其是前台的)(这个不会有通知,Android S需要SET_PROCESS_LIMIT权限)
    Persistent(系统预置应用 + android:persistent=“true”) 常驻进程,优先级比前台还高,一般不建议

    方法2:针对adj的调整(系统)

    computeOomAdjLSP的最后面修改
    adj = ***;//修改adj
    adjType = “***”;//修改adjType
    // keep it out of the cached vaues.
    state.setCurAdj(psr.modifyRawOomAdj(adj));

    方法3:不让系统kill掉(系统)

    1. lmkd里面加入拦截,不杀死某个应用
    2. 系统API forcestop、kill加入拦截
    3. Process.kill**等sendSignal中加入拦截、或者更底层的拦截

    方法4:依赖关系保活(系统或者app都可以使用, Android上Foreground/Visible等高优先级进程比较多就是由于这个导致)

    1. 服务依赖,如(android S上gms meida provider方式,注意调用者是系统进程(也可以是app,不过情况会复杂一点,先说简单的))
      (如果带有BIND_IMPORTANT,则会变成Persistent Service的级别,如果不带BIND_IMPORTANT,一般处于Visible级别)
      mContext.bindServiceAsUser(new Intent().setComponent(name), mServiceConnection, Context.BIND_AUTO_CREATE | Context.BIND_IMPORTANT, mHandlerThread.getThreadHandler(), UserHandle.of(mUserId))
    2. provider依赖,一般情况下,provider依赖都不是unstable非稳定的,也就是依赖结束后会释放关系。不过也有很多例外
      => 如系统只调用acquireProvider,不去releaseProvider,此时稳定引用stable计数不为0 (如果是系统调用,则app是Foreground;如果是别的进程调用,则情况会复杂一点)
      => 如系统查询query了某个app的数据库,故意不调用Cursor的close方法(和上面acquireProvider是一样的表现)
      => 如果uid=1000的内置应用,其provider被引用后,链接不会释放(stable计数是1000) (情况和1类似,优先级跟调用provider的进程有关系)
      //frameworks/base/services/core/java/com/android/server/am/ContentProviderRecord.java
      noReleaseNeeded = (uid == 0 || uid == Process.SYSTEM_UID)
      && (_name == null || !“com.android.settings”.equals(_name.getPackageName()));

    方法5:APP互相拉起保活

    守护进程,不停监控保活对象是否存在,不存在则互启动

    展开全文
  • 主要介绍了Android 后台运行白名单实现保活,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Android 保活措施

    2022-05-08 08:43:46
    Android系统会尽可能的保持应用进程,但是当需要建立新的进程或者运行更重要的进程,便会回收优先级低一些的进程,这个就是lowmemorykiller的工作。而进程的优先级其实就是 /proc/pid/oom_adj 进程的优先级排序 前台...

    Android系统会尽可能的保持应用进程,但是当需要建立新的进程或者运行更重要的进程,便会回收优先级低一些的进程,这个就是lowmemorykiller的工作。而进程的优先级其实就是 /proc/pid/oom_adj

    进程的优先级排序

    1. 前台进程(Foreground Process)
    2. 可见进程(Visible Process)
    3. 服务进程(Service Process)
    4. 后台进程(Background Process)
    5. 空进程(Empty Process)

    前台进程

    1. 拥有 用户正在交互的 Activity(正处于 onResume中)
    2. 拥有 Service绑定到正处于 onResume的 Activity
    3. 拥有 Service 调用 startForeground 成为前台服务
    4. 拥有 Service 正在执行生命周期回调(onCreate、onStart、onDestroy)
    5. 拥有 BroadcastReceiver 正在执行 onReceive

    可见进程

    1. 拥有 Activity 处于 onPause ,此时可见但是不可操作
    2. 拥有 Service 绑定到正处于 onPause的 Activity

    服务进程

    1. 仅通过 startService 启动的 Service

    后台进程

    1. 拥有 Activity 处于 onStop

    空进程

    1. 不拥有任何活动的组件进程

    2. 回收策略

    从Zygote fork出来的进程都会被储存在 ActivityManagerService.mLruProcesses 列表中,由ActivityManagerService进行统一管理。ActivityManagerService会根据进程状态去更新进程所对应的 oom_adj 的值,当内存达到一定的阈值会触发清理 oom_adj 高的进程。

    [参考博客](()

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RJgyf1WY-1651970607056)(https://user-gold-cdn.xitu.io/2019/12/14/16f03873886484ad?imageView2/0/w/1280/h/960/ignore-error/1)]

    3. 保活方案

    3.1 提高进程优先级

    3.1.1 利用Activity

    1像素Activy,监控手机解锁屏事件,解锁时将Activity销毁,锁屏时启动,并且要无感知,在RecentTask里移除

    3.1.2 前台服务+Notification

    Service 通过 startForeg **《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】** roundService 启动 ,低版本时可以通过特殊方式对 Notification 进行隐藏,高版本无法规避,此方案为通过需求正向解决

    3.1.3 引导用户打开电池管理,允许应用后台运行

    目前市面上的手机,或多或少都有对进程管理有优化,可能会有允许应用后台允许的功能,但是每款手机的入口均不相同,而且相同厂商的不同版本也会不同

    具体做法,找到手机的电池管理或者系统的后台管理,针对不同的手机做文字书面的提醒,提醒用户开启此功能,暴力一点可以想办法拿到此Activity的具体类名 包名等信息,进行反射调用。

    此方案一般应用不要使用,工作量巨大,而且仅仅针对提醒类应用使用,比如吃药提醒,起床闹钟,这些对保活要求非常高的应用才适合

    3.2 进程死后拉活

    3.2.1 监听系统静态广播

    低版本时,静态广播可以唤醒应用进程,所以监听系统广播,例如开机,锁屏,解锁等可以做到,但是高版本不能通过静态广播监听系统广播了

    3.2.2 监听三方静态广播

    用进程,所以监听系统广播,例如开机,锁屏,解锁等可以做到,但是高版本不能通过静态广播监听系统广播了

    3.2.2 监听三方静态广播

    展开全文
  • Android 进程保活,点击home键 或者 点击back键盘 、锁屏、息屏保证服务器定时器不会阻塞,博客地址:https://blog.csdn.net/dreams_deng/article/details/106213951
  • Android Service保活

    千次阅读 2021-02-02 10:59:10
    保活Service我们需要做什么: 1.在应用被关闭后保活 2.在内用占用过大,系统自动释放内存时保活(优先杀死占用较高的Service) 3.重启手机后自动开启Service 4.手机息屏后不被释放内存 5.手动清理内存时保活 ...
  • Android保活的两种解决方案

    千次阅读 2020-12-23 09:50:50
    Android 保活的背景由于之前做一个项目的时候需要让进程一直在后台活下去保持不被杀死的状态,因此也是各种百度各种苦苦寻找,本来是想着靠Service来做保活的,因为我的手机是6.0系统的,之前试过的各种依靠...
  • Android后台保活

    千次阅读 2021-04-12 08:36:39
    9.0以上设备,开启应用后台自启动功能,可以延长应用在后台的存活时间。不同厂商设置方式如下: 1、三星: 设置-》常规管理-》电池-》-》菜单(右上角三个点)-》自动运行应用程序-》民生魔方,开启自动应用 ...
  • 有很多种方法可以实现Android的进程保活,比如通过  1像素且透明Activity提升App进程优先级、 通过设置前台Service提升App进程优先级、 Java层的双进程拉活、 JobScheduler实现、 NDK双进程守护、 使用账户同步...
  • Android8.0保活

    2020-09-05 16:40:35
    Android8.0保活关于安卓保活问题整体思路 关于安卓保活问题 关于我的保活问题无非是在后台长时间运行,不在用户主动结束App的情况下可以一直活下去,当然是在不结束进程的情况下,如果你确实需要后台推送,在app被杀...
  • 我们知道,Android 系统会存在杀后台进程的情况,并且随着系统版本的更新,杀进程的力度还有越来越大的趋势。系统这种做法本身出发点是好的,因为可以节省内存,降低功耗,也避免了一些流氓行为。 但有一部分应用,...
  • 众所周知,日活率是一款App的核心绩效指标,日活量不仅反应了应用...早期的Android系统不完善,从而导致有很多空子可以钻,它们用着各种各样的方式进行保活,长期以来被人诟病耗电、卡顿,也滋生了很多流氓应用,拖垮A
  • Android进程保活

    2021-02-23 11:03:58
    Android进程保活主要包括以下两个方面: (1)Android进程优先级提高 (2)Android进程被杀之后拉起复活 Low Memory Killer Android系统会依据系统资源和进程优先级(oom_adj)对进程进行回收,这即是Low Memory ...
  • 自从Android P(即Android 8.0)出现以后,Android已经从系统层面将后台保活这条路给堵死了(详见:《Android P正式版即将到来:后台应用保活、消息推送的真正噩梦》),曾今那些层出不穷的保活黑科技能用的也越来越少了...
  • 一、常见保活方案 **1、监听广播:**监听全局的静态广播,比如时间更新的广播、开机广播、解锁屏、网络状态、解锁加锁亮屏暗屏(3.1版本),高版本需要应用开机后运行一次才能监听这些系统广播,目前此方案失效。...
  • 对于IM应用和消息推送服务的开发者来说,在Android机型上的后台保活是个相当头疼的问题。老板一句:“为什么微信、QQ能收到消息,而你写的APP却不行?”,直接让人崩溃,话说老板你这APP要是整成微信、APP那么牛,...
  • android 保活 支持8.0+

    2019-03-06 13:43:34
    android保活库 ,多种保活措施 ,下载后请看readme
  • Android 给App保活(10种方案)

    千次阅读 2021-08-07 11:09:54
    1.Activity 1像素保活 public class Activity1 extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...
  • Android 添加白名单实现保活

    千次阅读 2021-06-08 06:36:07
    Android 白名单保活最近有遇到保活的需求,一开始想到的就是之前的黑科技保活比如像素Activity,播放无声MP3,双进程等方法,但是随着Android系统的更新,这些非常规的方法或多或少都已经失效了。作为研发虽然很不乐意...
  • Android进程保活主流方案

    千次阅读 2020-10-18 21:13:39
    进程保活对资讯类的App和即时通讯App的用处很大,但随着这一技术的滥用,各大手机厂商与谷歌都开始逐步收紧机制,进程保活也越来越难实现,可以说如今几乎无法实现100%保活Android高版本特为尤甚),程序员能做的...
  • 1.为什么要做 Android 保活? 首先我个人并不推荐也不喜欢手机应用通过各种手段后台保活,当我们确定一定以及肯定地需要这个功能的时候, 也就只能硬着头皮去与各个手机的后台管理机制做斗争了。 (一句话,产品需求...
  • Android Service服务保活

    千次阅读 2022-04-01 15:26:11
    Android Service保活
  • 最近在做的项目中需要app在后台常驻,用于实时上传一些健康信息数据,便于后台实时查看用户的健康状况。自从Android7.0以上后台...重点在于运用这样方案来实现保活功能。 代码实现 1.监听锁屏广播,开启1个像素的Acti
  • Android应用自启与保活

    2021-06-04 01:40:17
    Android开发中有些应用需要让应用的服务在后台运行不被杀死。下面介绍两种方法。但是这两种方法一起用只能拉活7.0以下的系统上的应用。一,使用开锁屏广播拉活。...二,使用JobService保活。Job...
  • 后来想想,这个方案其实存在很多问题,因为让每个需要埋点的 View 去继承 BaseView 类,说明 View 需要自定义,会耗费很多的时间和精力,对于自带的 Button 等控件的埋点,这种方法又无法实现。所以说
  • Android中,退出APP界面后通过startService()方法启动的服务很快就会随之停止,在一些需求中需要在退出APP界面的情况下保证Service一直在运行,其中一个方法就是将Service设置成前台服务。设置前台服务首先需要在...
  • Android保活方案

    2021-10-23 09:44:35
    Android保活措施 https://juejin.cn/post/6844904020901888008 深度剖析APP保活案例 http://gityuan.com/2018/02/24/process-keep-forever/ https://github.com/fanqieVip/keeplive ...进程保活 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,316
精华内容 2,526
热门标签
关键字:

安卓实现保活