2012-07-15 57 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命令