1

開発中のアプリについて、開発中とリリース時の両方でトラブルシューティングを容易にしたいと考えています。LogUSBデバッグで電話を接続せずにアプリを実行しているときに呼び出しを取得できるようにしたいので、取得して送信できます。たとえば、アプリがクラッシュしたとき、またはLog.e(...)が呼び出されたときに、ログ履歴 ( への呼び出しLog.i()Log.w()) をサーバーに送信したり、ユーザーが手動で送信したりできます。

これはどのように行うことができますか?

また、アプリが開発中かリリース中かによって手法を変える必要がありますか? ( AndroidLogドキュメントから、リリース バージョンにコンパイルしてLog.v(...)はならないことを知っています。これらの呼び出しをすべてコメント アウトするよりも良い方法はありますか?)

Log自分で拡張したりロールしたりするのは理にかなっているかもしれませんが、悪魔は細部に宿ります。

4

2 に答える 2

1

クラッシュ ログを取得するには、ライブラリACRAがあります。Acra はクラッシュ レポートをサーバーに送信します。あるいは、Google Playの開発者コンソールには、ユーザーが送信したクラッシュ レポートが保存されるクラッシュと ANR のタブもあります。Google Play コンソールのクラッシュ レポートは非​​常に使いやすく、同じクラッシュの数とクラッシュが発生したアプリのバージョンに関する追加情報を提供します。

于 2014-08-07T12:59:46.023 に答える
1

私のアプリでは、予想どおり、ログ呼び出しをラップする LogWrapper クラスを作成しました。すべてのメソッド内で、フラグをチェックBuildCondig.DEBUGして、デバッグ モードかリリース モードかを判断しています。

さらに、私の LogWrapper は、どのメソッドが呼び出しを行っていたかをチェックし、それを meassge に追加します。これは通常、Log クラスを直接使用して使用することはできません。

アプリが DEBUG モードの場合、ログ呼び出しを Log クラスに渡します。それ以外の場合は、ログ呼び出しをサード パーティ ライブラリ (私の場合はCrashlytics ) に渡します。他にもクラッシュ ツールがあります。たとえば、Hockeyappも推奨されるプラットフォームです。

于 2014-08-07T13:07:21.890 に答える