当前位置: 首页 > news >正文

android 保活的一种有效的方法

android 保活的一种有效的方法

为什么要保活

说起程序的保活,其实很多人都觉得,要在手机上进行保活,确实是想做一些小动作,其实有些正常的场景也是需要我们进行保活的,这样可以增强我们的用户体验。保活就是使得程序常驻内存,这种程序不容易被杀,或者在被杀以后还能完成自我启动,相当于有个监控程序一样,当我们的程序退出以后,能帮我们在拉起来。

保活方式

保活的方式有很多,但是大部分的效果并不是很好,如果有看过其他的一些文章,我们应该有了解,双进程保活,一像素保活,so保活,关播保活等。

但是这些保活方式还是很容易被杀。根本无法对抗一些高级的查杀软件,或者是 adb shell am force-stop XXX

如果能够抗住force-stop 那么基本上也就能在内存上站住脚了。

应用通知保活

通过了那么多的试验后,发现应用通知保活 这种方式是最简单而且支持的厂商也最多。唯一的缺点就是需要用户开启权限。

如果有用过一些push消息以后,我们会发现这些push消息,能够推送到手机上,当我们点击提示的时候会调到我们的应用中,如果利用push的消息,发现手机和我们断开了,我们往手机里面发送一个push消息,是否可以把我们的应用拉起来?

在这里插入图片描述

下面把程序实现出来,看看他能不能过扛得住force-stop

新建一个 NotificationService

open class NotificationService : NotificationListenerService() {private val TAG = "NotificationService"override fun onCreate() {super.onCreate()}override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {return Service.START_STICKY}override fun onBind(intent: Intent?): IBinder? {return super.onBind(intent)}override fun onRebind(intent: Intent?) {super.onRebind(intent)}override fun onUnbind(intent: Intent?): Boolean {return super.onUnbind(intent)}override fun onListenerConnected() {super.onListenerConnected()}override fun onListenerDisconnected() {super.onListenerDisconnected()}override fun onNotificationRemoved(sbn: StatusBarNotification) {super.onNotificationRemoved(sbn)}override fun onNotificationPosted(sbn: StatusBarNotification) {}override fun onDestroy() {super.onDestroy()}
}

NotificationService 是空的,我们这里不做什么事情,如果你想做一些启动其他服务的事情,你也可以在这里onCreate进行。

AndroidManifest.xml 中,加入 NotificationService 服务,注册这个服务到系统中。

        <serviceandroid:name=".service.NotificationService"android:exported="true"android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"><intent-filter android:priority="999"><action android:name="android.service.notification.NotificationListenerService" /></intent-filter></service>

就是这么简单,没有几行代码就可以实现一个保活的程序。我们看看效果如何?

记住一定要到设备和应用通知 把我们的程序打开来。

在这里插入图片描述
我们的demo程序为com.first66.keepmealive ,一开始的时候程序是活着的,我们需要制造一个意外让程序结束,这个意外我们直接用adb 命令来干掉com.first66.keepmealive

adb shell am force-stop com.first66.keepmealive

发现com.first66.keepmealive 先结束以后,后面马上又自己跑起来了。这个过程执行了两次,两次app都能够自己启动起来。

如果需要程序代码的话,可以和我进行私信联系。

相关文章:

android 保活的一种有效的方法

android 保活的一种有效的方法 为什么要保活 说起程序的保活&#xff0c;其实很多人都觉得&#xff0c;要在手机上进行保活&#xff0c;确实是想做一些小动作&#xff0c;其实有些正常的场景也是需要我们进行保活的&#xff0c;这样可以增强我们的用户体验。保活就是使得程序…...

kibana安装

kibana安装下载注意事项 地址&#xff1a;curl -O https://artifacts.elastic.co/downloads/kibana/kibana-7.16.3-linux-x86_64.tar.gz 下载后直接解压启动即可 1. 但需要使用非root用户启动 &#xff0c;root用户启动会报错 2. kibana需要和elasticsearch版本一致 不然…...

LV.12 D19 ADC实验 学习笔记

一、ADC简介 1.1 ADC ADC(Analog to Digital Converter)即模数转换器&#xff0c;指一个能将模拟信号转化为数字信号的电子元件 1.2 ADC主要参数 分辨率 ADC的分辨率一般以输出二进制数的位数来表示&#xff0c;当最大输入电压一定时&#xff0c;位数越高&#xff0c…...

ubuntu配置免密登录vscode

1、配置免密登录 &#xff08;1&#xff09;在windows系统cmd下运行命令 ssh-keygen 一路回车&#xff0c;将会在C:\Users\用户名\.ssh目录下生成两个文件&#xff1a;id_rsa和id_rsa.pub。如下图所示。 &#xff08;2&#xff09;进入.ssh目录。如果想使用root用户&#xff0…...

软件工程--面向对象分析用通俗语言20小时爆肝总结!(包含用例图、活动图、类图、时序图......)

面向对象方法分为面向对象分析&#xff08;OOA&#xff09;、面向对象设计&#xff08;OOD&#xff09;、面向对象编程&#xff08;OOP&#xff09;&#xff0c;本文详细介绍面向对象分析 本文参考教材&#xff1a;沈备军老师的《软件工程原理》大多图片来源其中 目录 面向对…...

HarmonyOS—ArkTS中@Observed和@ObjectLink装饰器的嵌套类对象属性变化【鸿蒙专栏-11】

文章目录 ARKTS中@Observed和@ObjectLink装饰器的嵌套类对象属性变化@Observed 类装饰器说明装饰器参数类装饰器的使用@ObjectLink 变量装饰器说明装饰器参数同步类型允许装饰的变量类型被装饰变量的初始值举例装饰器的限制条件观察变化和行为表现观察的变化框架行为使用场景1.…...

网络通信安全的坚固防线双向认证技术详解

目录 什么是双向认证 双向认证的工作原理 双向认证的实现方式 双向认证的重要性 双向认证的挑战 安全最佳实践 小结 什么是双向认证 双向认证&#xff0c;又称为双向身份验证或双向鉴别&#xff0c;是一种在通信双方之间建立信任关系的安全机制。在通信过程中&#xff0…...

Appium+python+unittest搭建UI自动化框架

阅读本小节&#xff0c;需要读者具备如下前提条件&#xff1a; 1. 掌握一种编程语言基础&#xff0c;如java、python等。 2. 掌握一种单元测试框架&#xff0c;如java语言的testng框架、python的unittest框架。 3. 掌握目前主流的UI测试框架&#xff0c;移动端APP测试框架…...

使用paddledetection的记录

首先在这里使用的是是paddle--detection2.7的版本。 成功进行训练 目录&#xff1a; 目录 数据集准备 配置文件的修改 使用的是BML的平台工具&#xff1a; !python -m pip install paddlepaddle-gpu2.5 -i https://mirror.baidu.com/pypi/simple --user %cd /home/aistudio…...

MySQL数据库的备份与恢复

在管理MySQL数据库时&#xff0c;备份和恢复是保证数据安全和完整性的关键环节。本文将指导您如何有效地备份MySQL数据库&#xff0c;并在需要时进行数据恢复。 请注意&#xff0c;如果没有 mysql> 的标志&#xff0c;说明我们是在外面终端进行的操作 创建备份文件路径 在…...

Pycharm配置jupyter使用notebook详细指南(可换行conda环节)

本教程为事后记录&#xff0c;部分图片非实操图片。 详细记录了pycharm配置jupyter的方法&#xff0c;jupyter添加其他conda环境的方法&#xff0c;远程密码调用jupyter的方法&#xff0c;修改jupyter工作目录的方法。 文章目录 一、入门级配置1. Pycharm配置Conda自带的jupyt…...

企业微信ipad版,http协议接口发开,获取客户群列表

版本介绍&#xff1a; HTTP协议接口可以通过该接口实现企业微信的各种功能&#xff0c;使用HTTP协议可以避免使用hook形式的需要开启PC客户端的方式&#xff0c;同时可以实现三端同时在线&#xff0c;不影响PC和手机端的登录状态&#xff0c;调用简单&#xff0c;可以支持几千…...

Double 4 VR智能互动教学系统在小语种课堂中的教学应用

小语种课堂一直是教育领域的一个难点。由于语言本身的复杂性和文化背景的差异&#xff0c;小语种教学一直是一个挑战。传统的课堂教学方法往往难以激发学生的学习兴趣和动力&#xff0c;教学效果不尽如人意。而Double 4 VR智能互动教学系统为小语种课堂带来了新的可能。 Double…...

OSEK OS任务调度的底层逻辑

先参考 FreeRTOS的任务触发底层逻辑 简述RTOS任务调度底层逻辑 AUTOSAR-OS的调度机制-调度表&#xff08;没理解透&#xff0c;继续更新&#xff09; OSEK与FreeRTOS在任务调度上最大的区别在于&#xff0c;FreeRTOS是基于全抢占任务调度和时间片轮转调度机制&#xff0c;具有…...

‘tsc‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

最近在用nodejs typescript 某游戏服务器在做一些研究 nodejs-tcs 问题描述&#xff1a; 1.使用命令npm install -g typescript安装typescript后&#xff0c;输入 tsc命令&#xff0c;一直报错 tsc 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 2.目…...

windows文件删除权限

一、普通文件 这里指的是所有可以被随意删除的文件。 二、可更改权限的文件 如果想要删除的文件无法被删除&#xff0c;那大概是权限不够&#xff0c;这时候&#xff1a;鼠标右键、属性、安全、编辑、选择相应的组或用户&#xff08;如果不知道哪个可以全选&#xff0c;反正…...

Nginx的location块相关知识积累(包括常用的正则匹配表达式的介绍)

Nginx的location块相关知识积累 01-location块的优先级 注意&#xff1a;如果Nginx的配置中有多个location块&#xff0c;那么各location块的匹配优先级并不是完全按照代码的先后顺序来决定各location优先级的。而是按下面的规则来决定的&#xff1a; 在 Nginx 中&#xff0c…...

rabbitMq确认机制之ConfirmType

配置方式 Bean(name "connectionFactory")Primarypublic ConnectionFactory normalConnectionFactory(Value("${spring.rabbitmq.username}") String username,Value("${spring.rabbitmq.password}") String password,Value("${spring.rab…...

ubuntu下QT搭建Android开发环境

一、前言 用QT开发android和直接使用android开发的区别 使用Qt开发Android应用和直接使用Android开发工具&#xff08;例如Android Studio&#xff09;有一些区别&#xff0c;主要体现在开发工具、语言、界面设计和性能等方面&#xff1a; 开发工具&#xff1a; Qt Creat…...

QT 做一个登录,注册的跳转页面

思路&#xff1a; 1.登录需要判断账号与密码是否想等&#xff0c;相等才可跳转新页面&#xff0c;匹配失败输入框提示”账号密码不匹配”。 2.注册不需要判断&#xff0c;直接跳转新页面即可。 widget.cpp文件 #include "widget.h" #include "ui_widget.h&qu…...

SAMD21 Turbo PWM:硬件级高精度同步PWM驱动详解

1. SAMD21 Turbo PWM 库深度解析&#xff1a;面向嵌入式工程师的高性能PWM驱动实践指南SAMD21 Turbo PWM 是一款专为基于 ATSAMD21G 微控制器&#xff08;如 Arduino Nano 33 IoT、Adafruit Itsy Bitsy M0、Trinket M0 等&#xff09;设计的底层硬件加速 PWM 库。它绕过 Arduin…...

OpenClaw性能调优:降低Phi-3-mini-128k-instruct长任务token消耗的技巧

OpenClaw性能调优&#xff1a;降低Phi-3-mini-128k-instruct长任务token消耗的技巧 1. 问题背景&#xff1a;长任务带来的token消耗困境 上周我在用OpenClaw处理一个文档整理任务时&#xff0c;遇到了一个棘手的问题。这个任务需要读取50多份Markdown格式的技术文档&#xff…...

告别穿模与漂移!南洋理工团队提出HMR新框架:用视觉大模型对齐人体姿态

点击下方卡片&#xff0c;关注「3D视觉工坊」公众号选择星标&#xff0c;干货第一时间送达本文一作投稿发布 | 来源&#xff1a;3D视觉工坊「3D视觉从入门到精通」知识星球(点开有惊喜) &#xff01;星球内有20多门3D视觉系统课程、300场顶会讲解、顶会论文最新解读、海量3D视觉…...

OpenClaw + Seedance 2.0实战:从零搭建全自动AI视频生成流水线

OpenClaw Seedance 2.0实战&#xff1a;从零搭建全自动AI视频生成流水线 前言 这篇记录我用OpenClaw Agent串联Seedance 2.0满血版API&#xff0c;搭建全自动视频生产流水线的完整过程。包括架构设计、Skill编写、API调用细节和踩坑记录。 一、架构设计 用户输入&#xff…...

C++的std--filesystem文件系统库与跨平台路径处理的标准化

C的std::filesystem文件系统库与跨平台路径处理的标准化 在现代软件开发中&#xff0c;跨平台文件系统操作一直是一个复杂且容易出错的挑战。不同操作系统&#xff08;如Windows、Linux和macOS&#xff09;使用不同的路径分隔符和文件系统语义&#xff0c;开发者往往需要编写大…...

02_RAGFlow之DeepDoc深度文档理解技术

RAGFlow之DeepDoc深度文档理解技术 知识体系 RAGFlow知识体系 | -- 文档解析层 | -- DeepDoc核心能力 | -- 文档布局分析模型 | -- 模板化分块策略 | -- 多模态处理层 | -- 表格结构识别 | -- 公式识别 | -- 图文混排处理 | -- 分块优化层 | -- 可视化模板市场 |…...

nginx实验练习

[rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld[rootserver ~]# systemctl disable firewalld[rootserver ~]# yum install nginx -y[rootserver ~]# nginx -V # 查看版本&#xff0c;编译器、配置参数等信息[rootserver ~]# syste…...

集成学习:为什么单打独斗不如“打群架”?(上篇)

如果你刚开始接触机器学习&#xff0c;可能听说过“随机森林”“XGBoost”这些名字&#xff0c;它们经常在各种数据竞赛里屠榜。这些方法的背后&#xff0c;都站着一个共同的大佬——集成学习。说人话就是&#xff1a;三个臭皮匠&#xff0c;顶个诸葛亮。与其把所有赌注押在一个…...

【实用技巧】-Mac系列设备自定义鼠标指针颜色与动态效果指南

1. 为什么需要自定义鼠标指针&#xff1f; 作为一个用了十年Mac的老用户&#xff0c;我深知默认的白色指针在复杂界面中经常"消失"的烦恼。特别是做设计时&#xff0c;盯着色彩斑斓的PS画布&#xff0c;那个小箭头简直像在玩捉迷藏。更糟的是在演示场景&#xff0c;观…...

DLSS Swapper深度解析:游戏性能优化实战指南

DLSS Swapper深度解析&#xff1a;游戏性能优化实战指南 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper作为一款开源游戏性能优化工具&#xff0c;专为解决PC玩家面临的DLSS版本管理难题而生。在3A游戏对…...