3

Android 4.0+ でスクリーン キャプチャを実行するアプリケーションを作成しようとしています。ルート化された電話が必要になる可能性が高いことは承知していますが、それで問題ありません。

/dev/graphics/fb0 からデータを取得しようとしました。動作しますが、起動画面しか表示されません。(HTC One X) したがって、ICS はアクセラレーションによって完全にレンダリングされるため、起動後にフレームバッファーにレンダリングされないのではないかと推測しています。

この問題に関する Web 上の情報は限られていますが、いくつかの提案がありました。1 つは、Android-Screenshot-Library を使用することです。機能しません (/dev/fb0 からフレーム バッファーの内容を取得します)。他の提案は、独自のアプリの画面のみをキャプチャすることです。ユーザーが行っている画面をキャプチャしたい (これは調査用であり、悪意はありません)。

これまでのところ、私は立ち往生しているので、アイデアや提案は大歓迎です。

4

1 に答える 1

1

フレームバッファへの直接アクセスには、デバイス固有の知識が必要であり、グラフィック エンジンのモードを頻繁に変更する必要があるため、お勧めできません。

より良い答えは、特定のバージョンで dbd が何をするかを調べることです。見る

アンドロイド/プラットフォーム/システム/コア/adb/framebuffer_service.c

インストールされている Android バージョンに匹敵するタグで AOSP に表示されます (ただし、技術的には、ベンダー ビルドでは adbd がスクリーンショット機能を別の方法で実装する可能性があります)。

現在、マスターでは、データを標準出力にダンプする「screencap」と呼ばれるスタンドアロンの実行可能ファイルを実行しています。

おそらく、graphicsグループに属するユーザー、つまり root または adb のシェルユーザー ID として実行する必要があります。

于 2012-07-19T16:17:31.800 に答える