0

アプリのバッテリー分析を行っていますが、次のオプションのみが残っています。

  1. まだできていないデバイスのUSB充電を無効にし、[設定]->[バッテリー画面]のmonkeyrunnerを使用してスクリーンショットを撮ります
  2. USBケーブルが接続されていない場合は、ルート化された電話で実行されているシェルスクリプトを使用して、音量小キーと電源キーのホールドイベントをシミュレートし、[設定]->[バッテリー]画面のスクリーンショットを撮ることができます。
  3. ルート権限を取得された電話のadbシェルで実行されているシェルスクリプトを使用して、[設定]-> [バッテリー]にリストされているようなすべてのプロセスを表示するdumpsysバッテリーを取得しますが、コマンドがわかりません

すべての方法には独自の制限があります。目的を達成する方法はありますか?

4

3 に答える 3

1

電力消費分析が目標の場合は、AT&T研究所のApplication Resource Optimizer(ARO)をご覧ください。まさにあなたが探しているものだと思います。スクリーンショットよりもはるかに正確な分析が可能になります。

于 2012-10-03T09:57:02.620 に答える
1

ICS以降では、すべての電話が/ system/binにscreencapという名前のexeファイルにバンドルされています。以下のコマンドラインを実行してスクリーンショットを撮ります

screencap -p /sdcard/screenshot.png

これは、Javaを使用してシェルを取得することでも実行できるため、必要に応じてsceenshotをキャプチャできます。

于 2012-10-03T10:10:08.913 に答える
1

私はこの質問にいくらかの専門知識を持っています。私の見解では、2つのオプションがあります。

  1. ローカルモンキースクリプトを作成して、デバイスのシェルから実行できます。
  2. TCP / IP(WiFi)を介してデバイスを接続し、バッテリー消費のスナップショットを保存できます。

編集

デバイスからmonkeyスクリプトを実行するには、次のコマンドを実行する必要があります(smthを混乱させない場合)。

adb shell monkey -v -f /mnt/sdcard/script.txt

この場合のスクリプトは、少し変わったsintaxを使用します(ほんの一例です。これは、ジンジャーブレッドを使用したNexus Sのデフォルトの連絡先アプリケーションのスクリプトです)。

# Start of Script
type= user
count= 150
speed= 1.0
start data >>

#launch browser com.android.contacts/.DialtactsContactsEntryActivity
LaunchActivity(com.android.contacts, com.android.contacts.DialtactsContactsEntryActivity)
UserWait(4000)

#go to favorites tab
Tap(415, 85)
UserWait(3000)

#go to phone tab
Tap(60, 85)
UserWait(3000)

#calllog
Tap(175,90)
UserWait(2000)

#contacts
Tap(300,90)
UserWait(4000)

#create new contact
DispatchPress(KEYCODE_MENU)
UserWait(2000)
Tap(360,650)
UserWait(4000)

#go name
Tap(200,340)
UserWait(8000)
DispatchString(123)
UserWait(5000)

Tap(125,385)

#launching launcher and exit com.android.launcher/com.android.launcher2.Launcher
UserWait(10000)
LaunchActivity(com.android.launcher, com.android.launcher2.Launcher)
quit

私の場合、2番目のアプローチを使用する方が簡単です(エラーが発生しやすくなります)。WiFi経由でデバイスに接続できます(したがって、USBケーブルが取り外されます)。このためにあなたはすべきです:

  1. デバイスをUSB経由で接続し、実行しますadb tcpip <port_num>
  2. 次に、デバイスをWiFiネットワークに接続します
  3. 次に、(ネットワークにも接続されている)コンピューターで実行します。adb connect <phone_ip_addres>:<port_num>

これで、monkeyrunnerの標準的な方法を使用してWiFi経由でmonkeyrunnerコマンドを実行できます(monkeyrunner <script_name>.py

于 2012-10-03T10:43:33.753 に答える