私が見ることができるオープンソースのAndroidタスクマネージャー(プロセスマネージャー/プロセスディテーラー)プロジェクトがあるかどうか疑問に思っていました. 私は自分の大学プロジェクト用のアプリケーションを開発しています。優れたタスク マネージャーを調べるのに役立つと思います。ソースを読んだり表示したりできるオープンソースプロジェクトを知っている人はいますか? ソースをダウンロードする必要はありません。
ありがとう!
私が見ることができるオープンソースのAndroidタスクマネージャー(プロセスマネージャー/プロセスディテーラー)プロジェクトがあるかどうか疑問に思っていました. 私は自分の大学プロジェクト用のアプリケーションを開発しています。優れたタスク マネージャーを調べるのに役立つと思います。ソースを読んだり表示したりできるオープンソースプロジェクトを知っている人はいますか? ソースをダウンロードする必要はありません。
ありがとう!
簡単に言うと、タスク キラーは、OS をポーリングして、現在実行中のプロセスとそれらが消費しているメモリのリストを取得します。次に、インテリジェントなアルゴリズムまたはユーザー入力のいずれかを使用して、タスク キラーがシステムに呼び出しを発行し、システムにプロセスを強制終了するように指示します。これを行うことができる 2 つの 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 を共有するパッケージは、互いのプロセスを強制終了することもできます。このメソッドが呼び出されると、OS によってシグナルが生成され、プロセスに送信されます。プロセスが OS からシグナルを受信するたびに、そのシグナルを処理するか、すぐに終了する必要があります。SIG_KILL などのシグナルは処理できず、受信者プロセスが即座に終了します。強制終了する権限がないプロセス、つまり自分のプロセスではないプロセスを強制終了したい場合は、
2 番目の API は、組み込みの ActivityManager に、特定のパッケージに関連付けられたプロセスを強制終了したいことを伝えることによって機能します。この API は、ユーザーが KILL_BACKGROUND_PROCESSES パーミッションを受け入れる必要があるため、UID がプロセスの UID と一致する必要性を回避します。このアクセス許可は、アプリがユーザーによってタスク キラーとして承認されたことを OS に通知します。タスク キラーがアプリを強制終了したい場合、OS にプロセスを強制終了するように指示し、アプリが所有するプロセスしか強制終了できないという問題を回避できるようにします。
Android ドキュメントでは、この API が実際に最初の Process.killProcess API を使用していると書かれています
指定されたパッケージに関連付けられているすべてのバックグラウンド プロセスをシステムにただちに強制終了させます。これは、カーネルがメモリを再利用するためにそれらのプロセスを強制終了するのと同じです。システムは、必要に応じて将来的にこれらのプロセスを再起動します。詳細を知りたい場合は、Posix シグナルと Linux の kill コマンドについて読むことをお勧めします。
Astrid Task Managerを確認する必要があります。これは、このgithub リポジトリでソース コードを取得できるオープン ソースの Android アプリです。あなたもこのプロジェクトに興味を持つことができます。
化石を見てください。独自のアプリケーションを開発するために、トラッカーと、必要になる可能性のある他のすべてのものが1か所にあります。