adb设置后台运行不结束

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了adb设置后台运行不结束相关的知识,希望对你有一定的参考价值。

不知道有多少人厌烦这个不老实的“小而简的绿色聊天软件”为了保活而常驻后台。
明明是一个互联网聊天软件,为什么要无时无刻不占用我手机资源?我的手机我做主。

通常情况下,root后,使用后台管理软件配合写轮眼切断唤醒途径,就能解决掉几乎所有软件的自起问题。唯独微信的CoreService这一服务总是能在没有收到任何系统广播的时候自己唤醒,也不知道是怎么实现的。

临时解决的方案:
相信不少人误打误撞试过手机系统设置中【开发者选项】里的【后台进程限制】,选1234都可以避免微信CoreService复活。
但这一选项重启失效,需要每次开机都手动设置一次。

根治的解决方案:
不保证所有手机都适用
0、在电脑上下载并解压adb
https://dl.google.com/android/repository/platform-tools-latest-windows.zip
1、手机【开发者选项】里开启【ADB调试】
2、手机【开发者选项】里手动选择一次【后台进程限制】(1234都行)后改回“标准限制”。
3、USB连接电脑,电脑打开cmd,切换(cd C:\xxx\xxx)到ADB的文件夹,输入命令adb devices,确保ADB可以成功找到手机。(ADB基本使用方法请百度)
4、输入ADB命令:
adb shell settings put global activity_manager_constants max_cached_processes=4
在不同版本的安卓上,此命令可能稍有不同。如果执行不成功,请参考评论区~
(这一限制和同时开了多少个软件无关,通常无需担心多开软件的问题)
限制后台进程为4个
5、输入ADB命令:
adb shell dumpsys activity settings
查看一下当前限制数量是不是变成了4
CUR_MAX_CACHED_PROCESSES即“后台进程限制”功能
此时,开发者选项里的“后台进程限制”仍显示为“标准限制”是正常现象。
解释说明:开发者选项中更改的是mOverrideMaxCachedProcesses=4,
随后会自动覆写到CUR_MAX_CACHED_PROCESSES=4。
而此处直接更改CUR_MAX_CACHED_PROCESSES=4。
6、杀掉微信进程,等一会看看它是不是安分了
(如果还自起,请使用写轮眼MyAndroidTools关闭微信的所有广播接收器,需要root)
可以使用adb命令查看进程列表以检查微信是否复活。非必需。
(adb shell 回车,出现手机名之后 ps -A |grep tencent,出现com.tencent.mm说明已启动)

7、重启手机,使用 第5步 的ADB命令检查CUR_MAX_CACHED_PROCESSES数量是否变化,没变则ok,变了或者多出一行mOverrideMaxCachedProcesses说明你的手机系统被厂商魔改太严重,不适用于此方法。

至此,完成。如果有帮上你,点个赞吧。

日后如果想恢复,
adb shell settings put global activity_manager_constants max_cached_processes=数字
数字填写16,32,48、64、128、192等等都可以,反正本来手机厂商也都随便填的。
参考技术A 第一个你进去设置一下,这个就是关联启动的华为荣耀6禁止应用自启动/唤醒开发者选项不允许后台进程取消app系统权限 LINKS 通过adb

adb常用命令食用方法

一、什么是adb?

adb是Android Debug Bridge的缩写,即安卓调试桥;那什么是安卓调试桥?简单来说,就是一个通用命令行工具,允许计算机与模拟器或连接的安卓设备之间进行通信,提供各种便利。

adb是一个客户端-服务器程序,包括三个组件:

客户端:在计算机上运行。在终端通过命令行调用adb
后台程序:在模拟器或安卓设备上作为后台进程运,在设备上执行命令
服务器:服务器在计算机上作为后台进程运行,管理客户端和后台程序之间的通信

官方参考资料:https://developer.android.google.cn/studio/command-line/adb.html


二、adb工具下载

仓库备份有windows 64位的adb工具,版本 Android Debug Bridge version 1.0.41

仓库链接:https://gitee.com/shengtudai/adb.git  其它版本自行百度

 

三、运行adb

解压工具包,在终端通过命令行调用adb工具,如解压路径为C:\\adb

用cd命令进入目录

cd C:/adb

 在设备的开发者选项里打开usb调试开关,或进入Recovery,再连接计算机,输入如下命令查找设备

adb devices

 若输出List of devices attached,则识别到设备

 

四、adb常用命令及功能

  1.安装软件 

adb  install  -r  path_to_apk 

     注:-r 为强制替换原来软件

  2.卸载软件

adb uninstall -k --user 0 com.tencent.mm // com.tencent.mm 就是微信的安装包名

    注:卸载软件需要通过包名卸载;-k为卸载但保留数据,一般不加; --user 指定用户 id,Android 系统支持多个用户,默认用户只有一个,id=0。该命令可免root卸载系统预装软件

  3.获取应用包名

  上面讲到,卸载软件需要通过包名卸载,如何获取包名呢?

  ①.列出所有包名,找到最像的那个

adb shell
pm list packages

    

  ②.在设备上打开需要获取包名的软件,保持在前台运行,输入如下命令

dumpsys window | grep mCurrentFocus

 

  这里 window{ } 中就是这个界面的包名类名,包名就是:com.tencent.mm

    4.截图和录屏

adb shell screencap /sdcard/screen.png

adb shell    在设备运行脚本命令

screencap   截屏命令

/sdcard/screen.png  截图保存路径

 

adb shell screenrecord --size 1920x1080 --time-limit 100 /sdcard/demo.mp4

adb shell    在设备运行脚本命令

screenrecord    录制视频命令

--size 1920x1080   widthxheight 设置视频大小

--time-limit 100      设置最大录制时长(以秒为单位)。默认值和最大值均为 1803 分钟)。

按 Control + C 停止屏幕录制

注:

screenrecord 选项说明

--help显示命令语法和选项

--size widthxheight设置视频大小:1280x720。默认值是设备的原生显示分辨率(如果支持),如果不支持,则使用 1280x720。为实现最佳结果,请使用设备的 Advanced Video Coding (AVC) 编码器支持的大小。

--bit-rate rate设置视频的视频比特率(以兆比特每秒为单位)。默认值为 4Mbps。您可以增加比特率以提升视频质量,但这么做会导致影片文件变得更大。以下示例将录制比特率设为 6Mbps:screenrecord --bit-rate 6000000 /sdcard/demo.mp4

--time-limit time设置最大录制时长(以秒为单位)。默认值和最大值均为 180(3 分钟)。

--rotate将输出旋转 90 度。此功能是实验性的。

--verbose显示命令行屏幕上的日志信息。如果您不设置此选项,则运行时此实用程序不会显示任何信息。

  5.将文件复制到设备/从设备复制文件

    要从模拟器或设备复制文件或目录

adb pull  remote  local

     要将文件文件或目录(及其子目录)复制模拟器或设备

adb push  local  remote

  :local 和 remote 指的是开发计算机(本地)和模拟器/设备实例(远程)上目标文件/目录的路径

 

以上是关于adb设置后台运行不结束的主要内容,如果未能解决你的问题,请参考以下文章

怎么设置电脑后台运行?

Android ADB 查看后台运行的服务

nohup 详解 Python不挂断运行后台程序

linux后台执行命令

应用程序未正确结束并在后台运行

adb常用命令食用方法