androidアプリ開発はじめました

GW中にXperiaを買ったので、早速アプリ開発にも着手。

Xperia(に限らずスマートフォン全般だと思いますが)、電池の持ちが悪いので、常駐して動く余計なプロセスがないか気になります。
そこで、任意の区間での各プロセスのCPU使用時間を計測するアプリを作ろうとしています。

とりあえず、検証用に作ったもの。(野良アプリの直リンクです)
http://inutch.net/droid/ListProcStat.apk

「get stat」ボタンを押すと、

プロセス名(スレッド名),utime,stime

のフォーマットで出力されます。
utime: ユーザモードでのCPU使用時間
stime: カーネルモードでのCPU使用時間

やってることは、単に /proc ファイルシステムの中身を読んで整形しているだけです。
これだけじゃ何もわからないですが、間隔を置いて2回測定して、「send」ボタンでPCに内容をメールで送信して、PC側でEXCELとか使って2点間の差分を取れば、各プロセス/スレッドに対して、その区間のCPU使用時間がわかります。
※自分用に作ってるので、TO: のメールアドレスがデフォルトで僕のアドレスになっています。ご注意ください。
#なんか、普段仕事でやってることと変わらない気が・・・

これから、アプリとして単体で使えるように作りこんでいきます。

  • (済)測定開始時と測定終了時のデータをそれぞれ保持して差分を表示するようにする。
  • (済) /proc の読み込みはGUIとは別スレッドで。
  • プロセス名(パッケージ名)→アプリケーション名への変換。(わかりやすいように)
  • (済)表示のフィルタリング。(スレッドもすべて/プロセスのみ、全プロセス/動いたプロセスだけ、など)
  • GUIのデザイン。
  • 測定開始時の値を永続化してこのアプリ自体がkillされてもいいようにする。
  • 定期的な測定機能の追加。

ある程度アプリとしての体裁が整ってからMarketに載せます。

--- 2010/05/09 20:55追記 ---
上の(済)の機能は作りました。 
utime,stimeは区別しても意味が無いので、合計して表示するように変更しています。
ソート結果が見やすいように、

CPU使用時間[タブ]プロセス名(スレッド名)

と表示順序を変更しています。

http://inutch.net/droid/ListProcStat.apk