そのため、 Ultra Debuggerライブラリの開発が開始されました。 現時点では、次のことができます。
- saveValue(コンテキストコンテキスト、文字列キー、オブジェクト値)メソッドを使用して、アプリケーションの状態を追跡します。 サービスが現在機能しているかどうか、最後に計算された値などを確認できます。
- addLogメソッド(コンテキストコンテキスト、文字列テキスト[、Throwable throwable])を使用してログを書き込みます。
- 共有設定を表示および編集します。
- SQLiteでレコードを表示および編集します。
- アプリケーションフォルダー内のファイルを含むファイルを表示します。
- 現在のアクティビティのフィールド値を表示します。
- 現在のアクティビティのメソッドを呼び出します。
ライブラリ自体はモジュール上に構築されます。 このため、必要に応じて、不要な機能を無効にしたり、新しいモジュールを追加して機能を拡張したりできます。
開発者へ
ライブラリの統合は非常に簡単です。
- 依存関係を書きます:
debugCompile 'ru.bartwell:ultradebugger:1.3' compile 'ru.bartwell:ultradebugger.wrapper:1.3'
ご覧のとおり、主な依存関係はデバッグアセンブリにのみ接続されています。 必要に応じて、特定のフレーバーに対してのみ接続できます。
ラッパーを個別に接続します。 これはオプションであり、ライブラリメソッドを直接呼び出すことができますが、リリースビルドでライブラリを無効にすることは困難です。 リフレクションを使用してライブラリメソッドを呼び出すラッパーです。 はい、リフレクションは非生産的ですが、デバッグビルドではこれはそれほど重要ではないようです。
- Applicationクラスで、ライブラリを初期化します。
@Override public void onCreate() { super.onCreate(); // Wrapper debug- UltraDebuggerWrapper.setEnabled(BuildConfig.DEBUG); // - UltraDebuggerWrapper.start(this, 8090); }
BuildConfig.DEBUGは、たとえばBuildConfig.FLAVOR.equals( "dev")に置き換えることができます。
- 必要に応じて、ログを追加し、必要な値を保存します。
UltraDebuggerWrapper.saveValue(context、 "SomeValue"、12345);
UltraDebuggerWrapper.addLog(コンテキスト、「いくつかのイベント」);
アプリケーションが起動すると、Webインターフェイスへのリンクを含む行がログに表示されます。 リンクは、スマートフォンのIPアドレスと、start()メソッドの呼び出し時に指定されたポート番号から形成されます。 必要に応じて、UltraDebuggerWrapper.getIp()およびUltraDebuggerWrapper.getPort()メソッドを使用してスマートフォンのIPアドレスとポート番号を取得し、Toastまたはダイアログボックスの形式で表示できます。
テスター
テスター用のライブラリーの使用も非常に簡単です。 スマートフォンとコンピューターを同じWiFiネットワークに接続し、スマートフォンのIPアドレスとブラウザーのポート(たとえば、192.168.0.33:8090)を入力するだけです。 スマートフォンのロックを解除してアプリケーションを実行する必要がある場合があります。 その後、接続されたモジュールのメニューが開き、リンクを使用して必要な情報を取得できます。 ファイルブラウジングは次のようになります。

はい、WEBインターフェースはSpartanに見えます:)しかし、必要な情報を取得することはかなり可能です。
おわりに
間違いなく改善のための踏み台があります。 モジュールの数を増やしたり、WebインターフェースのUIとUXを改善したり、テストを追加したり、コードの品質を改善したりできます。 もちろん、これはすべてライブラリの作成者の直接の責任です。 しかし、突然Ultra Debuggerが便利だと思われ、モジュールを追加したり、何かを変更したい場合は、遠慮なくプルリクエストを作成してください。プロジェクトに関するヘルプは歓迎します。