-1

私は現在、Android UI での一連のユーザー インタラクションの背後でシステムが何をしているかを調べることを目的としたプロジェクトに取り組んでいます。たとえば、ユーザーが Facebook Messenger の送信ボタンをクリックした場合、そのようなアクションの測定された応答時間は 1.2 秒です。私の目標は、1.2 秒が何で構成されているかを把握することです。私の友人は、「Systrace」を調べてみるべきだと提案しました。

しかし、HTC one M8 で systrace を試したところ、いくつかの問題が発生しました。まず、/sys/kernel/debug/tracing/options/overwrite を開くときにエラーが発生しました - そのようなファイルまたはディレクトリはありません。http://opensourceforu.com/2010/11/kernel-tracing-with-ftrace-part-1/および mount -t debugfs none /sys/kernel/debugに従ってカーネルのサポートを構築することで、この問題を解決しました。その後、トレース ディレクトリを見つけることができました。さらに、Ramdisk 内のファイル default.prop に ro.debuggable=1 を設定し、boot.img を携帯電話に焼き付けました。

今、私は別の問題に遭遇しました:私が実行すると - python systrace.py --time=10 -o mynewtrace.html sched gfx view wm, 次のエラー(19)がポップアップします: /sys/kernel/debug/tracing/set_ftrace_filter の切り捨てエラー: そのようなデバイスはありません (19)。systrace のカーネル サポートを構築する方法が間違っているのか、それとも何かが欠けているのかはわかりません。

誰かがこの問題を手伝ってくれませんか?

4

1 に答える 1

0

私は解決策を考え出したと思います。私の環境は Ubuntu 16.04 + HTC one M8 です。以下のように手順を書きます。

  1. ターミナルを開き、次のように入力します。$adb shell
  2. (1) $su(2) $mount -t debugfs none /sys/kernel/debug. これで、/sys/kernel/debug/ の下に多くのディレクトリが表示されるはずです。(これを確認するには、/sys/kernel/debug に cd できます)
  3. 新しいターミナルを作成し、次のように入力dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of=/sdcard/boot.imgして、デバイスから boot.img カーネル イメージを生成します。
  4. AndroidImageKitchen を使用して boot.img を解凍し、Ramdisk フォルダー内の default.prop を見つけます。に変更ro.debuggable=0ro.debuggable=1ます。boot.img を再パックして、デバイスにフラッシュ ブートします。
  5. デバイスが起動したら、ターミナルで次のように入力します。USB を取り外し、再度接続してください。
  6. ~/androidSDK/platform-tools/systrace などの systrace フォルダーに移動し、次を使用します。 python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
  7. これで、独自の systrace ファイルを生成できるようになりました。
于 2016-08-24T07:35:37.753 に答える