Android Nのbugreportが進化してた話

普通のアプリからbugreportの取得を行うことができるのかどうか調べていたら、Android Nからbugreportがちょっと進化していることがわかった。

bugreportってなに??って人は adb shellで adb shell bugreportとかしてみればわかるよ。雑に言うとdebugのために端末の情報をdumpするみたいなー。

内部的な話は今コード読んでるので、なんとなくわかってきたら別途まとめようかなー

取得できるbugreportの形式が増えてる

開発者向けオプションの「バグレポートを取得」を押すと、以下のように取得するbugreportの形式を選べ!ってダイアログが出てくるようになった。

f:id:operando:20160924215902p:plain

具体的に各形式で取得できるbugreportがどんなものなのかまでは詳しくみてない。

ちなみにコード読んだ感じ、形式は上の画像 + リモートから取得するbugreportの形式が用意されてるっぽい。

電源メニューからバグレポート取得のメニューをロングタップすることで取得できるようになってる

開発者向けオプションの「バグレポートのショートカット」を有効にすると、電源メニューにバグレポート取得のメニューが増える。

これは前からあったね。

f:id:operando:20160924215720p:plain

んで、実際に電源メニューを開いてバグレポート取得のメニューをロングタップすると、bugreportの取得が始まる。これはどうやらNから追加されたみたい。

わかりにくいけど以下のような感じ。

f:id:operando:20160924220621g:plain

ちなみにコード読んだ感じ、ロングタップからの取得だと上で出てたbugreportの形式的には、「完全レポート」の形式のbugreportになる。

電源メニューからバグレポート取得のメニューをクリックするとすぐにbugreportの取得が始まる

わかりにくけど以下のような感じ。

f:id:operando:20160924221139g:plain

ちなみにコード読んだ感じ、クリックからの取得だと上で出てたbugreportの形式的には、「対話型レポート」の形式のbugreportになる。

Android Mまではメニューをクリックするを以下のようなダイアログが出てたけど、出なくなったのはうれしいかなー

f:id:operando:20160924221425p:plain

まとめ

Android Nからbugreportが進化している。取得するbugreportに形式が増えたのは興味深い。

どうやらNからならDevicePolicyManager経由で取得もできるかもしれないのでそこら辺も後々調べてみよう

あとbugreport取得したらlogcatのeventにlogを落ちるようになってるのがわかって、log周りも色々増えてることがわかったので知見だ!