我想知道是否有任何开源的Android的任务管理器(进程管理器/进程详图),我可以看看项目。 我开发一个应用程序为我的单项目,这将帮助我获得上寻找一个好的任务管理器的想法! 没有任何一个知道的一些开源项目,我可以阅读或查看源! 我不需要下载源。
谢谢!
我想知道是否有任何开源的Android的任务管理器(进程管理器/进程详图),我可以看看项目。 我开发一个应用程序为我的单项目,这将帮助我获得上寻找一个好的任务管理器的想法! 没有任何一个知道的一些开源项目,我可以阅读或查看源! 我不需要下载源。
谢谢!
你必须看看阿斯特丽德任务管理器是一个开源的Android应用程序,你可以在此获取源代码的github仓库 。 您也可以对此感兴趣的项目 。
概括地说,任务杀人犯民意调查工作的OS为当前运行的进程的列表和它们消耗的内存。 然后,要么是一套智能算法或与用户输入的任务杀手向系统发出呼叫告知系统杀死进程。 有两个API,你可以做到这一点。
他们是 :
Process.killProcess(int pid)
ActivityManager.killBackgroundProcesses(String packageName)
该第一作品通过调用Process.killProcess(INT PID)其中,pid是用于特定过程的唯一标识符。 安卓杀死在Linux并以同样的方式处理; 然而,用户可能只杀死他们所拥有的进程。 在Android中每个应用程序与一个唯一的UID(用户ID)运行。 使用此API应用程序只能杀死自己的过程,因此在文档的Process.killProcess(INT PID)下面的解释应用程序:
杀死指定PID的进程。 需要注意的是,虽然该API允许我们要求杀死基于其PID任何进程,内核仍然会强加给它的PID你实际上能杀死标准的限制。 通常,这意味着仅在运行呼叫者的包/应用和由该应用创建的任何其他进程的进程; 包共享一个共同的UID也将能够杀死对方的过程。 当调用此方法由OS产生的信号并将其发送到该过程。 每当一个过程从OS接收的信号就必须要么处理该信号或立即死亡。 信号如SIG_KILL无法处理,导致接收进程的立即死亡。 如果你想杀死你没有权限杀死进程,即它不是你的进程,那么你必须切换用户或升级您的权限(在Android上,这需要在设备上的root权限)。
第二API的工作原理告诉内置的ActivityManager你婉杀与特定包关联的进程。 这个API得到周围的需要为您的UID相匹配的进程的UID,因为它需要用户接受KILL_BACKGROUND_PROCESSES许可。 该许可信号到某个应用已批准由用户为任务的杀手操作系统。 当一个任务的杀手要杀死一个应用程序,它告诉OS杀掉进程允许应用程序来解决只能够杀死它拥有进程的问题。
在Android文档它说,这个API实际使用第一Process.killProcess API
有系统立即杀死与给定包关联的所有后台进程。 这是一样的内核杀死这些进程回收内存; 系统将根据需要重新启动,今后这些过程的照顾。 如果你想知道更多,我建议你阅读了POSIX信号和Linux的kill命令
看一看化石 ,开发自己的应用程序有一个跟踪和一切你可能需要在一个地方所有。