Android任务管理器源码

2023-12-28

我想知道是否有任何开源 Android 任务管理器(流程管理器/流程细节器)项目可供我查看。我正在为我的大学项目开发​​一个应用程序,它将帮助我了解寻找一个好的任务管理器!有谁知道一些开源项目,我可以在其中阅读或查看源代码!我不需要下载源。

谢谢你!


简而言之,任务杀手的工作原理是轮询操作系统以获取当前正在运行的进程及其消耗的内存列表。然后,任务杀手通过智能算法或用户输入向系统发出调用,告诉系统终止进程。有两个 api 可以做到这一点。

他们是 :

Process.killProcess(int pid) 

ActivityManager.killBackgroundProcesses(String packageName) 

首先通过调用 Process.killProcess(int pid) 来实现,其中 pid 是特定进程的唯一标识符。 Android 终止进程的方式与 Linux 相同;但是,用户只能终止他们拥有的进程。在 Android 中,每个应用程序都使用唯一的 UID (UserID) 运行。使用此 API 的应用程序只能终止自己的进程,因此文档中对 Process.killProcess(int pid) 的解释如下:

终止具有给定 PID 的进程。请注意,虽然此 API 允许我们根据 PID 请求杀死任何进程,但内核仍然会对您实际能够杀死的 PID 施加标准限制。通常,这意味着仅运行调用者的包/应用程序的进程以及该应用程序创建的任何其他进程;共享公共 UID 的包也能够杀死彼此的进程。 当调用此方法时,操作系统会生成信号并将其发送到进程。每当一个进程从操作系统接收到一个信号时,它必须要么处理该信号,要么立即死亡。 SIG_KILL 等信号无法处理并导致接收进程立即死亡。如果您想终止您无权终止的进程,即它不是您的进程,那么您必须切换用户或升级您的权限(在 Android 上,这需要设备上的 root 权限)。

第二个 API 的工作原理是告诉内置的 ActivityManager 您想要终止与特定包关联的进程。此 API 不需要您的 UID 与进程的 UID 相匹配,因为它要求用户接受 KILL_BACKGROUND_PROCESSES 权限。此权限向操作系统发出信号,表明应用程序已被用户批准作为任务杀手。当任务杀手想要终止某个应用程序时,它会告诉操作系统终止该进程,从而使应用程序能够解决只能终止其拥有的进程的问题。

在 Android 文档中,它说这个 API 实际上使用了第一个 Process.killProcess API

让系统立即终止与给定包关联的所有后台进程。这和内核杀死那些进程来回收内存是一样的;系统将来会根据需要重新启动这些进程。 如果您想了解更多信息,我建议您阅读 Posix Signals 和 Linux Kill 命令

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android任务管理器源码 的相关文章

随机推荐

  • For 循环不能在同一个文件描述符上工作两次[重复]

    这个问题在这里已经有答案了 该代码没有进入第二个 for 循环 我没有在任何地方修改文件描述符 为什么会发生这种情况 import os import re path home ajay Desktop practice ajay txt
  • Jquery脚本删除表单集合中的所有项目

    我有一张桌子 table class Products tr th ProductId th th Productname th th Quantity th th UnitPrice th tr tr td td tr table
  • 我无法让 Netbeans C++ 工作,我做错了什么?

    我最近下载了 Netbeans 但无法让 C 组件正常工作 当我尝试编译示例程序时 出现以下错误 c Users Documents NetBeansProjects Welcome 1 C Program Files x86 MinGW
  • 遵循 C 中的符号链接

    我正在编写一个 C 程序 给定符号链接的名称 该程序将打印链接指向的文件或目录的名称 关于如何开始有什么建议吗 The readlink 已经提到的功能是答案的一部分 但是 您应该注意它可怕的接口 它不会以 null 终止响应字符串 您可能
  • Gradle 未使用 ext:pom 导入依赖项

    我想要导入库 org geotools 添加原料compile group org geotools name geotools version 16 1 or compile group org geotools name geotool
  • 如何将 HTML 字符串绑定到 Android 应用程序中的 Web 视图?

    我目前有一个 android TextView 它绑定到一个可能包含或不包含 HTML 的字符串
  • 如何使异步 Dart 调用同步?

    我正在为一家德国公司评估 Dart 将各种 Java 程序移植到 Dart 中 并对结果进行比较和分析 在浏览器中 Dart 轻而易举地获胜 对于服务器软件性能似乎是一个严重的问题 参见我的这个问题 https stackoverflow
  • 如何根据支持 bean 条件有条件地显示 p:dialog

    有什么方法 或正确的方法 有条件的根据支持 bean 条件在 primefaces 上显示对话框 代码如下所示
  • 如何将 1400-1500 转换为下午 2 点至下午 3 点?

    我正在从服务接收表示时隙的数据作为字符串 格式如下 1500 1600 这意味着下午 3 点到 4 点 我将列出这些内容 例如 1200 1300 1300 1400 1400 1500 我必须在用户界面中将其表示为 中午 12 点至下午
  • `format()` 和 `str()` 有什么区别?

    gt gt gt format sys stdout lt io TextIOWrapper name
  • '=' sp_executesql 附近的语法不正确

    我需要delete all rows在一些table where值是空字符串 我有多个名称相似的表 我尝试执行字符串中的sql语句 DECLARE sql AS NVARCHAR MAX DECLARE emptyValue AS NVAR
  • 如何使ajax请求异步?

    我想让一些ajax请求异步 比如两个Ajax 第一个Ajax不需要完成 第二个请求就可以发生 ajax url urlone async true complete function console log 1 type post data
  • 创建静态库并使用 premake 链接到它

    我目前正在尝试学习如何使用 premake 4 以便将其应用到 OpenGLsdk http www opengl org sdk 我目前正在尝试制作一个 Visual Studio 2010 解决方案 该解决方案构建 2 个项目 一个是静
  • 如何触发 Tab 键事件?

    How do we fire a tab key pressed event deliberately in Java I also want to know how to fire a Shift tab key pressed even
  • 使用 Angular 7 上传文件时,表单数据并不总是在 Chrome 中发送

    当我的 Angular 7 应用程序使用 Angular file 上传文件时 表单数据并不总是通过 Chrome macOS 发送 我使用 Firefox 或 Safari 没有任何问题 至少上次发生这种情况时 刷新 Chrome F5
  • java中的try/catch与null检查

    有时我面临必须编写一段这样的代码 通常它有更多嵌套的 if 和更复杂的结构 但对于示例来说就足够了 public void printIt Object1 a if a null SubObject b a getB if b null S
  • 视频在回溯时卡住 (C++) (QT) (libvlc)

    我正在使用 libvlc 使用 QT 4 在我的 GUI 应用程序上播放视频 当我向前搜索视频时 它工作正常 但是当我向后搜索视频时 它会卡住 我的意思是帧不会改变 而我的回调函数是 videopostrender没有接到任何电话 void
  • 如何混合(合并)视频和音频,以便音频在输出视频中循环,以防持续时间太短?

    背景 我需要将视频文件和音频文件合并为一个视频文件 以便 输出视频文件的持续时间与输入视频文件的持续时间相同 输出文件中的音频将仅是输入音频文件的音频 如果太短 则会循环到最后 如果需要可以在最后停止 这意味着一旦音频播放完毕而视频尚未播放
  • PHP cli 命令行 safe_mode 限制

    我正在使用 Kohana 框架 3 0 9 它生成每日日志 如果日志文件是在 CRON 运行脚本的前一天制作的 我想邮寄日志文件 但经过几天的尝试 我无法弄清楚如何在 PHP CLI 模式中推迟 safe mode 当我在网络上运行脚本时
  • Android任务管理器源码

    我想知道是否有任何开源 Android 任务管理器 流程管理器 流程细节器 项目可供我查看 我正在为我的大学项目开发 一个应用程序 它将帮助我了解寻找一个好的任务管理器 有谁知道一些开源项目 我可以在其中阅读或查看源代码 我不需要下载源 谢