我想知道是否有任何开源的android任务管理器(进程管理器/进程细节)项目可以让我看看。我正在为我的uni项目开发一个应用程序,它将帮助我了解如何寻找一个好的任务管理器!有没有人知道一些开源项目,在那里我可以阅读或查看源代码!我不需要下载源代码。
谢谢!
发布于 2012-07-16 08:10:34
你一定要看看,Astrid Task Manager,,它是一个开源的安卓应用,你可以在这个github repository中获取源代码。您也可以对此project感兴趣。
发布于 2015-03-27 23:54:41
简而言之,Task Killers的工作方式是轮询OS,以获取当前正在运行的进程及其消耗的内存的列表。然后,通过智能算法或用户输入,Task Killers向系统发出调用,告诉系统终止进程。有两个apis可以做到这一点。
它们是:
Process.killProcess(int pid)
ActivityManager.killBackgroundProcesses(String packageName)
第一种方法是调用Process.killProcess(int ),其中pid是特定进程的惟一标识符。Android以与linux相同的方式杀死进程;但是,用户只能杀死他们自己的进程。在安卓系统中,每个应用程序都使用唯一的UID (UserID)运行。使用此接口的App App只能杀死自己的进程,因此Process.killProcess(int Pid)文档中有如下解释:
终止具有给定PID的进程。请注意,尽管此API允许我们根据进程的PID请求终止任何进程,但内核仍然会对您实际能够终止的PID施加标准限制。通常,这意味着只有运行调用者的包/应用程序的进程和该应用程序创建的任何其他进程;共享公共UID的包也能够杀死彼此的进程。当调用此方法时,信号由操作系统生成并发送到进程。每当进程接收到来自OS的信号时,它必须要么处理该信号,要么立即死亡。诸如SIG_KILL之类的信号无法处理,并导致接收方进程立即终止。如果你想杀死你没有权限杀死的进程,也就是说,它不是你的进程,那么你必须切换用户或提升你的权限(在android上,这需要设备上的root权限)。
第二个API的工作方式是告诉内置的ActivityManager您想要杀死与特定包相关的进程。此API避免了您的UID需要与进程的UID匹配的问题,因为它需要用户接受KILL_BACKGROUND_PROCESSES权限。该许可向OS发出信号,表明应用程序已被用户批准为任务杀手。当任务杀手想要杀死一个应用程序时,它会告诉操作系统杀死进程,让应用程序绕过只能杀死自己拥有的进程的问题。
在安卓文档中说这个接口实际上使用的是第一个Process.killProcess接口
让系统立即杀死与给定程序包关联的所有后台进程。这与内核杀死这些进程以回收内存是相同的;系统将在将来需要时负责重新启动这些进程。如果您想了解更多信息,建议您阅读Posix信号和Linux kill命令
发布于 2012-10-06 16:35:22
看看fossil,为了开发你自己的应用,它有一个跟踪器,以及你可能需要的所有其他东西都在一个地方。
https://stackoverflow.com/questions/11494626
复制相似问题