初心者向けAndroidStudio、パート4:デバッグツールと生産性プラグイン

更新日:2020年1月。

Android Studioは、豊富な組み込み開発ツールのパレットと、さらに豊富なプラグインエコシステムを提供します。このシリーズの最初の3つの記事では、Android Studioを使用したシンプルなモバイルアプリのインストール、セットアップ、コーディング、実行に焦点を当てました。これで、Androidアプリケーションコードの品質と生産性をデバッグおよび改善するための3つの組み込みツールと3つのプラグインなどのより高度なツールのいくつかに精通することができます。

この記事では、AndroidStudio用の次のツールを紹介します。

組み込みのデバッグツール

  • Logcat
  • デバッグ
  • 糸くず

開発者の生産性のためのプラグイン

  • ADBのアイデア
  • コドタ
  • Lombokプラグイン

Android Studio3.5の新機能

Kotlinのサポート、メモリ管理とUIの応答性の改善など、AndroidStudioの最新バージョンで何を探すべきかを確認してください。

Androidアプリのロギングとデバッグ

バグのあるアプリは、潜在的な顧客を追い払う確実な方法です。LogcatとDebugは、Android Studioに組み込まれている2つのツールであり、Androidコードのバグを特定して修正するために使用できます。

ロギングAndroid:Logcat

すべての「バギー」シナリオに本格的なデバッガーが必要なわけではないかもしれません。場合によっては、特定の変数の値をログに記録して修正するだけで十分です。Android StudioのLogcatは、このタスクに最適です。

Logcatは、コードの問題を見つけて修正するのに役立つシステムメッセージのログをダンプするコマンドラインツール(Android Debug Bridge --ADBに統合)です。メッセージには、デバイスがエラーをスローしたときのスタックトレース、およびandroid.util.Logクラスに意図的に埋め込んだログメッセージが含まれます。Logcatは非常に便利で、Android Studioに直接統合されており、[表示]メニューまたはツールウィンドウバーからアクセスできます。

ジェフ・フリーゼン

Logcatのウィンドウは、ドロップダウンリストや他のコントロールの水平方向の行に分割され、メッセージ領域が続きます。左から右へ、コントロールは次のとおりです。

  • 接続されているデバイスとエミュレーターを識別するドロップダウンリスト。(図1を参照してください。)
  • 選択したデバイスにインストールされているAPKパッケージを識別するドロップダウンリスト。
  • ロギングレベルのドロップダウンリスト:
    • 詳細:すべてのメッセージを表示します。
    • デバッグ:開発中にのみ役立つデバッグログメッセージと、ドロップダウンリストの下位のメッセージレベルを表示します。
    • 情報:通常の使用で予想されるログメッセージと、ドロップダウンリストの下位のメッセージレベルを表示します。
    • 警告:まだエラーではない可能性のある問題と、ドロップダウンリストの下位のメッセージレベルを表示します。
    • エラー:エラーの原因となった問題を表示します-スローされた例外と、Assertメッセージレベル。
    • アサート:開発者が決して起こらないと期待する問題を表示します。
  • 表示されるメッセージは、このコントロールに入力したテキストを含むメッセージのみである検索バー。
  • 検索バーで正規表現を使用できるようにするチェックボックス。たとえば、図1のコンテキストでは、SystemClock | AlarmManager(つまり、メッセージにはいずれかの単語が含まれている必要があります)。
  • 次のオプションを含む、メッセージをフィルタリングするためのドロップダウンリスト:
    • フィルタなし(デフォルト)では、選択したAPKパッケージに関係なく、選択したデバイスのすべてのメッセージが表示されます。
    • [選択したアプリケーションのみを表示]は、選択したデバイス上の選択したAPKパッケージについて、適切なログレベル以下のメッセージのみを表示します。
    • [フィルター構成の編集]を使用すると、カスタムフィルターを作成できます。

ソースコードでは、android.util.Logメッセージをログに記録するためのさまざまなメソッドへの呼び出しを挿入できます。たとえば、呼び出しpublic static int i(String tag, String msg)INFOレベルメッセージpublic static int w(String tag, String msg)をログに記録したり、呼び出してレベルメッセージをログに記録したりできますWARN

どちらの方法でも、渡される文字列tagはメッセージの送信元を識別し(たとえば、このロギングメソッドが呼び出されたメソッド)、渡される文字列はmsgログに記録されるメッセージを識別します。

または、System.out「」とSystem.err「」print()およびprintln()メソッドを呼び出すこともできます。System.outメソッドの呼び出しは、呼び出しと同じことを実行しlog.i()ます。System.errメソッドの呼び出しは、呼び出しと同じことを実行しlog.w()ます。

ジェフ・フリーゼン

図2で表示されるメッセージは、エミュレートされたNexus5Xデバイスで実行されているサンプルアプリプロセスのみです。さらに、これらのメッセージには、[選択したアプリケーションフィルターのみを表示する]が含まれonCreate、受け入れられる必要があります。

Logcatの詳細

Logcatの詳細については、Googleの「Logcatを使用したログの書き込みと表示」をご覧ください。android.util.Logクラスのドキュメントも調べてください。

Androidのデバッグ:デバッグ

Logcatを使用してコードを記録および修正することは、非常に単純なアプリでは問題ありません。より複雑なアプリの場合、この形式のデバッグは面倒な場合があります。代わりに、アプリの実行可能コードをデバッグできるものが必要になります。Android Studioの組み込みのデバッグツールは、次のような多くの機能を提供します。

  • アプリをデバッグするデバイスを選択します。
  • アプリケーションコード(Java、Kotlin、またはC / C ++)にブレークポイントを設定します。
  • 実行時に変数を調べて式を評価します。

このデバッグツールを使用する前に、いくつかの前提条件があります。

  1. アプリにC / C ++ソースコードが含まれている場合は、SDKマネージャーからLLDBをインストールする必要があります(図3を参照)。幸い、このシリーズのサンプルアプリ(W2A)にはC / C ++コードが含まれていないため、この前提条件は無視してかまいません。

    ジェフ・フリーゼン

  2. 接続されたデバイスでデバッグを有効にする必要があります。ただし、エミュレーター(この例では)を使用している場合は、この前提条件を無視できます。エミュレートされたデバイスでは、デバッグはデフォルトで有効になっています。
  3. デバッグ可能なビルドバリアントを実行する必要があります。デフォルトでは、これは自動的に作成されるため、多くの場合(この例を含む)、心配する必要はありません。

簡単なデバッグセッションを実行してみましょう。

シンプルなAndroidデバッグ

サンプルアプリ(W2A.java)のエディターウィンドウを開いた状態でAndroid Studioを実行していると仮定すると、最初のステップはpublic void onCreate(Bundle savedInstanceState)行にブレークポイントを設定することです。この行を強調表示し、次のいずれかを実行して、ブレークポイントを設定します。

  • 線の左側の側溝領域をクリックします。それに応じて線がピンクに変わるはずです。
  • [実行]メニューから[ラインブレークポイントの切り替え]を選択します。
  • CtrlキーF8キーを同時に押します。

次に、[実行]メニューから[デバッグ]アプリを選択するか、ツールバーの適切なアイコンをクリックします。エミュレーターが実行されていない場合は、[展開ターゲット選択]ダイアログボックスが表示されます。Nexus 5X API 15を選択し、[ OK]をクリックしました。

エミュレートされたデバイスがオンラインに来るのを待っている間、クリックデバッグ表示するツールウィンドウバーのボタンをデバッグウィンドウを。最終的には、図4のようなものが表示されます。

ジェフ・フリーゼン

デバッグウィンドウにはに、および方法のうちの、ステップオーバー、そしてより多くのアイコンが用意されています。図5は、メソッドをステップオーバーするとどうなるかを示しています。

ジェフ・フリーゼン

適切なアイコンをクリックして、[実行]メニューから[ステップオーバー]を選択するか、F8キーを押します。これにより、各メソッド呼び出しをステップオーバーしながら、メソッドをさらに深く進めることができます。onCreate()

メソッドの終了}文字のある行を選択してから、「カーソルまで実行」をonCreate()選択します。アプリケーションが実行中であるという通知を受け取ります。デバイスのロックを解除すると、サンプルアプリのアクティビティウィンドウが表示されます。

ジェフ・フリーゼン

デバッグの詳細

Android Studioでのデバッグの詳細については、Googleの「アプリのデバッグ」をご覧ください。たとえば、さまざまな種類のブレークポイントの使用方法。

GAPIDを使用したデバッグ

ここでは説明しませんが、Androidアプリからグラフィックスドライバーへの呼び出しを検査、調整、再生できるデバッグツールのコレクションであるGAPID:Graphics APIDebuggerを確認することをお勧めします。

Lintによるコード検査

どれほど注意深く記述しても、ソースコードにはバグや文体の問題が含まれている可能性が高く、何らかの理由で非アクティブなリソースを参照している可能性があります。リンターは、これらの証拠と、それは、開発者に報告厄介な毛羽の他のビットのソースコードをスキャンツールの一種です。

Lintは、AndroidSDKの組み込みリンターです。これを使用して、非推奨の要素や、ターゲットAPIでサポートされていないAPI呼び出しなどの問題を見つけることができます。

Android Studio内からLintを実行するには、[分析]メニューから[コードの検査... ]を選択します。これを行うと、[検査範囲指定]ダイアログボックスがアクティブになります。

ジェフ・フリーゼン

ダイアログボックスから、目的のスコープ(この場合はプロジェクト全体)を選択し、[ OK ]をクリックして検査を開始します。結果は[検査結果]ウィンドウに表示され、カテゴリ別に整理されます。

ジェフ・フリーゼン

その性質に忠実に、Lintは、アプリケーションコードを乱雑にする可能性のあるいくつかの綿毛を選び出しました。発見されたら、図8に示す3つのJava警告を簡単に修正できますandroidAnimationprivate。2つのfindViewById()メソッド呼び出しからキャストを宣言して削除するだけです。

Lintの詳細

Android StudioでのLintの使用と、Android SDKのスタンドアロンLintツールの詳細については、「lintチェックでコードを改善する」をご覧ください。

AndroidStudioプラグインのインストールと使用

組み込みツールにはメリットがありますが、プラグインとして他の多くのツールを利用できます。このセクションでは、AndroidStudioでのコーディングの生産性を向上させるための3つのプラグインについて説明します。

  • ADBのアイデア
  • コドタ
  • Lombokプラグイン

AndroidStudioプラグインマネージャー

Android Studioのプラグインマネージャーを使用すると、プラグインを簡単に見つけてインストールできます。[設定]ダイアログボックスから[ファイル] > [設定] 、[プラグイン]の順に選択して、プラグインマネージャーをアクティブにします。

ジェフ・フリーゼン

次に、[リポジトリの参照... ]をクリックして、サポートされているプラ​​グインの完全なリストが表示される[リポジトリ参照]ダイアログボックスをアクティブにします。このダイアログを使用して、最初のプラグインであるADBIdeaを選択します。

ジェフ・フリーゼン

Androidの生産性を向上させる

コードショートカット:ADBのアイデア

ADB Ideaは、アプリの起動やアンインストールなど、一般的に使用されるADBコマンドへの高速アクセスを提供することで、日々のAndroid開発をスピードアップします。

選択ADBアイデアをプラグインのリポジトリリストで、クリックインストール]ボタンを。Android Studioは、プラグインのダウンロードとインストールに進みます。次に、Installのラベルを変更してAndroidStudioを再起動します。プラグインごとに、[ Android Studioの再起動]をクリックした後にプラグインを再選択し、AndroidStudioを再起動するためにこのボタンをもう一度クリックする必要がありました。

ジェフ・フリーゼン

Android Studioをインストールすると、[ツール]メニューからADBIdeaにアクセスできます。[ツール]> [ADBアイデア]を選択し、表示されるポップアップメニューから適切なコマンドを選択します。

ジェフ・フリーゼン

ADB再起動アプリを選択した後、[イベントログ]ウィンドウに次のメッセージが表示され、AmazonKindleデバイスで再起動したアプリが表示されました。

ジェフ・フリーゼン

使用可能なコードを見つける:Codota

あなたは使用することができますCodotaのあなたはAndroidのコーディングの問題に対する解決策のために公に利用可能なJavaソースコードスニペットの何百万人に目を通すことができますCodotaの検索エンジンにアクセスするためのプラグインを。

ジェフ・フリーゼン

プラグインのリポジトリリストでCodotaを選択し、[インストール]ボタンをクリックします。Android Studioがプラグインをダウンロードしてインストールすると、[インストール]ボタンのラベルが変更されてAndroidStudioが再起動します。再起動すると、Codotaがアクティブになります。

再起動すると、[ Codota認証]ダイアログボックスが表示されます。リンクをクリックし、指示に従ってトークンを受け取ります。次に、トークンを前述のダイアログボックスに貼り付けて、[移動]をクリックします。

ジェフ・フリーゼン

Android Studioでは、図16に示すように、エディターウィンドウでJavaコードを右クリックし、[関連する例を取得]メニュー項目を選択することでCodotaにアクセスできます。

ジェフ・フリーゼン

このメニュー項目をクリックすると、ブラウザに関連するコード例のページが表示されます。たとえば、次のページでは、以下に関連する例を示しますfindViewById

ジェフ・フリーゼン

Javaコードの自動生成:Lombok

Project Lombokは、ボイラープレートコードの代わりに使用できる一連の注釈を提供しているため、このコードを手作業で書き出す時間を節約できます。

ジェフ・フリーゼン

プラグインのリポジトリリストでLombokプラグインを選択し、[インストール]クリックします。Android Studioがプラグインをダウンロードしてインストールすると、AndroidStudioを再起動するように求められます。再起動すると、Lombokプラグインがアクティブになります。