0

getRunningProcesses()を使用すると、約20〜30のプロセスが得られました。

ただし、Android端末でTOPコマンドを使用すると、80を超えるプロセスが表示されました。「root」が所有する一部のプロセスのメモリ消費量がゼロであることがわかりました。

違いの原因は何ですか?TOPによって検出されたプロセスの一部が現在実行されていませんか?

4

2 に答える 2

1

topオペレーティングシステムで実行されているすべてのプロセスを示しています。一方 ActivityManager.getRunningAppProcesses、Androidによって開始されたプロセスのみが表示されます。

ルート所有のプロセスは通常、イベント処理のためにLinuxカーネルによって開始されますが、によって返されるプロセスはActivityManager.getRunningAppProcessesAndroidフレームワークによって開始されたプロセスのみです。

于 2013-01-29T19:08:45.340 に答える
0

Androidは多くのサービスを実行します。Androidで実行する必要があるため、閉じたくないサービス。サービスに関する詳細情報は次のとおりです。

  • サービスは別個のプロセスではありません。Serviceオブジェクト自体は、それが独自のプロセスで実行されていることを意味するものではありません。特に指定がない限り、その一部であるアプリケーションと同じプロセスで実行されます。
  • サービスはスレッドではありません。これは、メインスレッドから作業を行うための手段ではありません(アプリケーションが応答しないエラーを回避するため)。

Androidデベロッパー-プロセスとスレッドもお読みください。

于 2013-01-27T13:37:53.007 に答える