ByteScope

Android Sensor Viewer

端末が持つ全センサーの仕様、ブラウザでは取れないライブの値、そしてタッチパネルの生のマルチタッチ。

すべて USB ケーブル越しに読み取り、このタブの中だけで完結します。端末にアプリは入れず、どこにもアップロードしません。

ブラウザの対応を確認中…

このページが実行するコマンドとその負荷

どれも読み取りだけです。設定を変えることも、何かを入れることも、端末に書き込むこともありません。

コマンド得られるものかかる負荷
dumpsys sensorserviceセンサー一覧と各センサーの直近イベントバッファ。このページのライブの値です。1 回あたり数十キロバイトのテキストで、小さい版はありません。ライブ更新が最初は止まっている理由です。
dumpsys thermalservice各サーマルゾーンの温度と、スロットリングしているかどうか。数キロバイト。センサーのダンプと同じ往復に相乗りします。
getevent -lpすべての入力デバイスと軸の範囲。タッチ表示の校正に使います。1 回実行して終了します。
getevent -lt /dev/input/eventNマルチタッチのライブ取得。座標、追跡 id、圧力、接触面。終了させるまで動き続けるプロセスで、その間は端末が眠りません。
wm size画面解像度。タッチ座標を画面に配置するために使います。1 回実行して終了します。

センサー名、Android の型 id、単位記号、イベント名は端末自身の識別子なので翻訳しません。自分のシェル出力と突き合わせるためのものです。

このツールについて・FAQ・関連ツール

このツールについて

Android 端末を Chromium 系ブラウザに USB でつなぐと、このページがそのセンサーを読み取ります。ハードウェアが備える全センサーの一覧、加速度・ジャイロ・地磁気・気圧・環境光のライブ値、各サーマルゾーンの温度、そしてタッチパネル自身のイベントから描いた指の動き。端末には何も入れず、どこにもアップロードしません。このページはサーバーを持たない静的ファイルで、読み取った値はタブを閉じれば消えます。

ブラウザが環境光センサーを読めない理由

Generic Sensor API は、許可を求めたうえで加速度・ジャイロ・地磁気をウェブページに渡します。渡さない唯一のものが環境光です。AmbientLightSensor は Chrome ではフラグの裏に入ったまま既定で有効になったことがなく、Safari も Firefox も実装していません。理由はプライバシーで、明るさの値からいる場所が推測でき、十分に速く読めば近くの画面に何が映っているかまで漏れる、という議論です。つまりウェブの世界では照度は取れません。一方 ADB ならシステムのダンプの 1 行にすぎません。デバッグ経路は同じ種類の境界として設計されていないからです。読み取る shell は、自分の手で有効にし、ケーブルでつなぎ、手に持っている端末のものです。この差こそが、このページがこの形で存在する理由です。

ポーリングのスナップショットは高速サンプリングではない

ここのライブ値は dumpsys sensorservice から来ます。各センサーが直近に出したイベントを数十件、リングバッファに書き出す仕組みです。このページは 1〜2 秒に 1 回そのバッファを読み、新しいイベントだけをグラフに足します。位置はハードウェアが付けたタイムスタンプなので、1 秒に 1 回の読み取りでも十数点が描けます。できないのは「取りこぼしがない」と保証することです。200 Hz で動くセンサーは読み取りの合間にバッファを一周させ、あふれたイベントは戻りません。だからここが示すのは波形ではなく、形と偏りです。全サンプルが要るなら端末側でリスナーを登録するアプリが必要で、shell の権限では代われません。ページは 1 回あたりの負荷も表示します。あのダンプは数十キロバイトのテキストで、毎秒引くのは端末にとって本物の仕事だからです。

センサー一覧に測定範囲・分解能・消費電流が出ない理由

この一覧はプラットフォームが印字するものを見せているだけで、そのプラットフォームは面白い項目のうち 3 つを、ずっと前から印字しなくなりました。maxRangeresolutionpower はセンサーのオブジェクトには存在し、同じダンプの protobuf 版にも入っていますが、テキスト版は Android 8.1 のあたりから運んでいません。ですから Pixel ではこの 3 列がどのセンサーでも空です。空欄をダッシュで埋めると「この加速度センサーには測定範囲がない」と読めてしまうので、このページは列ごと消し、理由を下に書きます。書き戻すメーカーもあります。Samsung のビルドは範囲・分解能・ミリアンペアの消費電流をよく印字し、その場合は列が復活します。残りはセンサー HAL が列挙したもの、つまりハンドル、ベンダー部品名、Android の型、報告方式、最小遅延、最大レート、FIFO の深さ、そしてスリープ中の端末を起こせるかどうかです。

圧力と接触面は、ウェブが渡してくれないもの

タッチパネルの節は端末のタッチパネルから getevent を流し込み、それを指として組み立て直します。届くのは座標だけではありません。ABS_MT_TRACKING_ID はカーネルが各接触点に割り当てる識別子で、これがあるから 1 本の指を画面上で追えます。ABS_MT_PRESSURE はパネルが考える押しの強さで、単位はパネルが勝手に決めたものです。ABS_MT_TOUCH_MAJOR は接触楕円の幅で、端末が指先と手のひらを見分ける手がかりです。ブラウザのタッチイベントはこのどれも当てになりません。force はほとんどの環境で未実装か合成値ですし、radiusX は大まかな推定です。すべてのパネルが返すわけでもありません。圧力をまったく報告しない静電容量パネルは珍しくなく、このページはその事実を書きます。全部同じ濃さで描いて、何かを測ったように見せることはしません。

これは診断のための表示で、校正ツールではありません。パネルの挙動を変えることはできませんし、座標が飛んだからといってタッチパネルの故障とは限りません。汚れた画面、ノイズを載せる安価な充電器、縁を押さえるケース、どれも同じ絵になります。得意なのは生の事実を素早く見ることです。反応しない領域が本当に何も返していないのか、幽霊タッチに追跡 id が付いているのか、置いたままのジャイロが流れていないか。ここから先は、Web ADB ハブに端末ダッシュボードが、電池のページに容量と充放電回数が、そしてブラウザだけで動く画面テストに表示そのものの確認があります。

よくある質問

タッチパネルの反応しない場所はどう調べますか?

このページでタッチ取得を開始し、指 1 本を端から端までゆっくり動かし、方向を変えてもう一度なぞってください。反応しない領域は、指は動いているのに点が止まる空白として現れ、下の数値表も一緒に止まります。壊れかけのパネルはむしろ逆で、座標が細かく暴れるか、接触が消えては新しい追跡 id で現れ直します。ケースを外し、データケーブル以外の充電器につながない状態で試してください。ノイズの多い充電器は幽霊タッチの最も多い原因で、故障したパネルとまったく同じ症状を出します。

センサー一覧に測定範囲・分解能・消費電流が出ないのはなぜ?

Android のテキストダンプがそれを印字しないからです。この 3 つの属性はプラットフォームのセンサーオブジェクトの一部で、同じダンプの protobuf 版には含まれていますが、人が読む形式では Android 8.1 のころから省かれています。ですから Pixel では 1 つも出ません。USB の制限でも shell の制限でも、このページの制限でもありません。書き戻すメーカーもあり、Samsung のファームウェアは範囲・分解能・ミリアンペアの消費電流をよく印字し、その場合は列が自動的に現れます。いつでも見られるのは型、報告方式、サンプル間の最小遅延、最大レートで、たいていは範囲の代わりに知りたかったのはこちらです。

ジャイロが流れているかどうかはどう見ますか?

端末を机に平らに置き、触らずに 30 秒ほどジャイロのグラフを眺めてください。健全なジャイロは 3 軸ともほぼゼロで、その周りに小さなノイズが乗るだけです。流れているものは小さな一定のずれの上に座ります。1 軸だけ 0.01〜0.05 rad/s が居座るのが典型で、地図アプリで方位がゆっくり回る、VR の視界が横に流れる、といった症状の正体です。このページはグラフの範囲をゼロまで広げないので、小さな偏りも潰れずに見えます。ただし端末が本当に静止していることが前提です。誰かがタイプしている机は静止していません。

getevent とは何ですか。実行して安全ですか?

`getevent` は Android に組み込まれた小さなツールで、`/dev/input` の生の入力イベントを印字します。フレームワークがタッチやキー入力を組み立てるのに読んでいるのと同じイベントです。読むだけで、タップを注入したり、設定を変えたり、端末に書き込んだりはできません(注入するのは `sendevent` で、このページは実行しません)。唯一の代償は、流しっぱなしの `getevent` がプロセスを生かし続け、端末を眠らせないことです。だからこのページは、停止ボタン、ページを離れたとき、タブが背面に回ったとき、ケーブルを抜いたときに必ず終了させます。

ADB なしで環境光センサーを読めますか?

ウェブページからは読めません。Chrome の環境光インターフェースは既定でオフのフラグの裏にあり、通常のサイトには公開されていません。Safari と Firefox はそもそも実装していないので、ウェブ上での実際の答えは「読めない」です。端末に入れたアプリなら特別な権限なしに同じセンサーを読めます。懐中電灯アプリやカメラアプリが自由に使っているのはそのためで、制限はセンサーではなくブラウザ側にあります。ADB 経由のこのページは、システム自身のセンサーダンプから、プラットフォームがアプリに渡すのと同じ lux の値を読んでいます。

  • Web ADB Toolkit

    端末ダッシュボード、シェル引き出し、その他の Web ADB ツール。

  • Android Battery Health

    充放電回数、容量、電圧・電流・電力のライブ表示。

  • Screen Test

    ドット抜け、輝度ムラ、リフレッシュレートをブラウザで確認。