2012-07-15 110 views
3

如果有任何开源的Android的任务管理器(进程管理器/进程详图),我可以看看项目我想知道。我正在为我的uni项目开发一个应用程序,它会帮助我找到一个好的任务管理器的想法!有没有人知道一些开源项目,我可以阅读或查看源代码!我不需要下载源代码。Android的任务管理器源

谢谢!

+0

Stack Overflow不是一个好的搜索引擎的替代品。 – 2012-07-15 18:51:08

+0

http://code.google.com/p/android-task-manager/ – 2012-07-15 19:13:29

回答

3

你必须看看Astrid任务管理器这是一个开源的Android应用程序,你可以在这github repository中获取源代码。您也可以对此感兴趣project

+1

astrid不是一个进程管理器,而freetaskmanager太旧,无法直接构建。 – 2012-09-21 03:14:52

-1

看一看fossil,用于开发自己的应用程序有一个跟踪和一切你可能需要在一个地方所有。

3

简而言之,任务杀人犯民意调查工作的OS为当前运行的进程的列表和它们消耗的内存。然后,无论是使用智能算法还是使用用户输入,任务杀手都会向系统发出一个呼叫,通知系统终止进程。有两个apis你可以做到这一点。

它们是:

Process.killProcess(int pid) 

ActivityManager.killBackgroundProcesses(String packageName) 

这首作品通过调用Process.killProcess(INT PID)其中pid是特定进程的唯一标识符。 Android以与linux相同的方式杀死进程;但是,用户只能杀死他们拥有的进程。在Android中,每个应用都使用唯一的UID(UserID)运行。

杀死与所述给定PID过程:使用此API应用程序只能杀死自己的过程,在这个文档中为Process.killProcess(INT PID),因此下面的说明中的应用程序。请注意,虽然此API允许我们根据其PID来请求终止任何进程,但内核仍会对您确实能够杀死的PID施加标准限制。通常这意味着只有运行调用者的程序包/应用程序以及由该应用程序创建的任何其他进程的进程;共享一个通用UID的软件包也能够杀死对方的进程。 当调用此方法时,信号由OS生成并发送到进程。每当进程收到来自OS的信号时,它必须处理该信号或立即死亡。 SIG_KILL等信号无法处理,并导致收件人进程立即死亡。如果你想杀死你没有杀掉特权的进程,即它不是你的进程,那么你必须切换用户或升级你的特权(在android上这需要设备上的root权限)。

第二API的工作原理告诉内置的ActivityManager你婉杀与特定包关联的进程。这个API得到周围的需要为您的UID相匹配的进程的UID,因为它需要用户接受KILL_BACKGROUND_PROCESSES许可。此权限向操作系统发出通知,表明应用程序已被用户认可为任务杀手。当任务杀手想要杀死一个应用程序时,它会通知操作系统终止进程,从而允许应用程序绕过只能杀死它拥有的进程的问题。

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

让系统立即杀死与给定包关联的所有后台进程。这与内核杀死那些进程来回收内存相同;系统将根据需要照顾未来重新启动这些过程。 如果你想知道更多,我建议你阅读有关Posix Signals和Linux kill命令