Android
 Computer >> コンピューター >  >> システム >> Android

ADB Android インストール ガイド:ドライバーとコマンド

この記事では、1 つ以上のデバイスとエミュレーターをインストール、テスト、診断、および管理する際に、ADB を使用して詳細な制御を行う方法について説明します。

ソフトウェア開発者としての最初の数年間は、主に Android SDK を扱っていましたが、Android Debug Bridge (ADB/adb) とは何か、それが何をするのか、いつ使用するのか、まったくわかりませんでした。

面白いことに、最初にそれについて学ぼうと思ったのは、何らかの専門的な目標ではありませんでした。むしろ、私が必死に復活させたかったのは、Nexus 6 をループするブートでした。そのような問題に対して、Android Studio と Gradle は防水ティーバッグと同じくらい役に立ちます。

また、この記事は2 種類の個人を念頭に置いて書かれていることにも言及したいと思います。 :

  • CLI、シェル、プロセス、クライアント サーバー モデルに精通している方
  • CLI、シェル、プロセス、クライアント サーバー モデルに慣れていない方

最初のカテゴリの場合は、「ADB の操作方法」というタイトルのセクションをスキップすることをお勧めします。 ."

2 番目のカテゴリのユーザーは、私のようなジュニア開発者であり、CLI、シェル、および ADB についてほとんど知らないと仮定します。最初のセクションは、いくつかの基本的な用語とアイデアの簡単な紹介と用語集であり、私が管理できる最も簡単な方法で説明されています.

予選

ここでは、ADB がどのように機能し、使用されているかを理解したい場合に重要ないくつかのトピックについて学びます。

Vim 愛好家や批判的な Unix システム管理者を冷笑して、過去にコマンド ライン ツールを学ぶことを恐れていた人もいるかもしれません。後でわかるように、CLI が私の脳の働きにとって理想的ではないことは率直に認めます。そのため、この主題に関する私の見解を楽しんでいただけると思います。

コマンド ライン

簡単に言うと、コマンド ラインは、テキスト行のみを使用するコンピュータへのインターフェース (情報を送受信する方法) です。 .

コマンド ライン インターフェース (CLI) 自体はプログラムではなく、一部のプログラムは CLI (およびおそらく GUI などの他のインターフェース) を提供することを理解することが重要です。

ある時点で、Windows コマンド プロンプト (私のような 90 年代の子供なら MS-DOS)、Mac ターミナル、または多くの Linux ディストリビューションで一般的な GNOME ターミナルなどに何かを入力したことがあるかもしれません。これらはすべて、主に CLI 経由で使用されます。

CLI を使用する利点と欠点は、それを使用する個人と、解決しようとしている問題の種類に大きく依存します。 ほぼ毎日行うものでない限り、個人的に CLI を使用するのは好きではありません .

私の脳は、あいまいな速記テキスト コマンドを記憶するのに適していないため (同じ理由で、子供の頃に読むことを学ぶのに苦労しました)、反復ベースの暗黙の記憶 (マッスル メモリ) とチート シートに大いに頼る必要があります。

苦労しても喜んで時間を割いてくれる人 (私のように)、またはそのようなことを覚えるのが本当に得意な人は、どれだけ効率的にできるかを理解できるようになるでしょう。 CLI と GUI 内 .

多くの操作は、さまざまなメニューや画面でポイント アンド クリックするよりもわずかな時間で実行できます。一連のテキスト コマンドを含むファイルであるスクリプトを作成することもできます。これにより、効率がさらに向上します。

ABD シェルの使用方法

Android、iOS、Windows、Mac、Linux、およびその他の Unix に似たシステムを含むオペレーティング システム (OS) という用語に精通していると仮定する必要があります。

この用語が ADB に関連するのはなぜですか?正確さよりも分かりやすさを優先して説明すると、Android OS は Linux ベースであり、Linux は Unix ベースです。

この結果、ADB を使用して、使用しているデバイスまたはエミュレーターの Unix シェルを取得できます。これにより、デバイスやエミュレーターのシェルと直接対話することで、非常に高い柔軟性、機能、および制御が可能になります。

シェルは、OS と対話するために使用するプログラムの総称です。タートル シェルがタートルへの保護とアクセスを提供するのと同じように (そして最も外側の層です)、OS のシェルは OS の内部動作への保護とアクセスの両方を提供します。個人的には、「シェル」が難解な頭字語ではないことを知って非常に驚きました.

この用語を考えすぎる必要を感じないでください。何らかのコンピューターでこれを読んでいる場合は、シェルを使用してここにたどり着きました。

シェルは、CLI または GUI のいずれかまたは両方を提供できます。どちらの場合でも、ファイルの作成/更新/削除/移動、他のプログラムの開始、およびシェルを通じて利用できる OS のさまざまなサービスへのアクセスに使用します。

ABD クライアントと ABD サーバーの使用方法

繰り返しになりますが、少し不正確な説明から始めましょう。ただし、すぐにこの定義を修正します。

クライアントとサーバーはどちらもコンピューターです。このように区別する理由は、役割に基づいています .たとえば、あなたのコンピュータ (デスクトップ、ラップトップ、携帯電話など) は、提供する freeCodeCamp サーバーのクライアントです。 この HTML ページを表示します。

一般に、クライアントは何か他のものを使用するものです 、一方、サーバーは使用されているものです .クライアント サーバー モデルは、コンピューティングの内部と外部の両方で非常に多くのことを説明できるため、この用語を考えすぎないでください。

ここで、クライアントとサーバーはどちらも「コンピューター」であると言いましたが、後でこれらの用語を使用する文脈では、実際にはそうではありません。

プログラマーやエンジニアは通常、クライアントとサーバーをプロセスと見なす必要があります (プロセスは単に実行中のプログラムです)。 )。

つまり、クライアント プロセスとサーバー プロセスは別々のコンピューターで実行されることがよくありますが、同じコンピューターで実行されても問題ありません。

それらはコンピュータのメモリ空間内の異なる場所を占有するため、事実上唯一の違いは、ネットワーク接続を介してメッセージを相互に送信するのではなく、IPC (プロセス間通信) を使用して通信することです。

すぐに説明するように、ADB はサーバー プロセスを利用して、複数の開発者 (複数のクライアント) が複数の Android デバイスやエミュレーターを管理できるようにします。

エンタープライズ設定では、このサーバー プロセスはリモート (ネットワーク接続を介して通信される) コンピューター上にある可能性がありますが、クライアントに対してローカルなサーバーをセットアップします。そうすることは、おそらくあなたが思っているよりもはるかに簡単です.

ABDデーモンとは?

読み飛ばしてしまった場合のために、プロセスは単なる実行中のプログラムであることは既に説明しました。デーモンはバックグラウンドで実行されるプロセスです。つまり、ユーザーはデーモンと直接対話しません。

たとえば、Web ブラウザーを開くと、インターネットへの接続に必要なネットワーク接続を管理する実際の作業は、(ブラウザー プロセス自体ではなく) NetworkManager Daemon のようなものによって実行される可能性があります。

各 Android デバイス (物理デバイスまたはエミュレート デバイス) は、適切に構成されていれば、サーバー プロセスによって与えられたコマンドを実行する ADB デーモン (adbd) を備えています。

つまり、クライアントがサーバーにコマンドを発行すると、サーバーはそのコマンドを ADBD に転送し、デバイス上で実行します。

Android 開発に ADB を使用する方法

この記事の残りの部分では、次のトピックについて説明します。

  • システムで ADB を使用するために必要なドライバと構成
  • 物理デバイスとエミュレータで ADB を使用する
  • ADB の CLI を使用した基本的なコマンド
  • ADB を介して Android デバイスのシェルを使用した、より複雑な使用法の概要

先に進む前に、ADB との対話に使用する CLI ツールを確立する必要があります。 Windows では、PowerShell を使用することを好みますが、コマンド プロンプトも機能します。 Linux と Mac では、デフォルトのターミナルが機能するはずです。

仕事を成し遂げるために何でも自由に使ってください。

この記事にはプロセス全体の非常に詳細な説明が含まれていますが、ここで簡潔に説明するビデオ チュートリアルを用意しました:

adb のビデオ チュートリアル。

CLI の例を理解する方法

この記事には、好みの CLI ツールに入力するコマンドが多数含まれています。状況に応じて変化する特定のコマンドの部分は、山括弧内に記述されます。

作成する CLI コマンドに山かっこを含めないでください。

たとえば、私が書いた場合...:

adb pair <ip-address>:<port>

...次のように、山かっこと名前を実際の値に置き換えます。

adb pair 192.168.0.1:5554

ABD ドライバーと構成

まず、Android SDK Platform-Tools の最新 (または少なくとも最近) バージョンがあることを確認します。何らかの理由で Android Studio (AS) を使用しない場合は、そのリンクをクリックして、それぞれの OS のスタンドアロン パッケージをダウンロードしてください。

Android Studio をお持ちの場合は、SDK Manager を使用してこのパッケージをダウンロードまたは更新できます。

通常、AS には SDK Manager を開くためのツールバー アイコンがありますが、実際にはホットフィックスごとに外観を変更したいと考えています。

見つからない場合は、 [ファイル] -> [設定] に移動してください 検索バーに「SDK」と入力し、「Android SDK」メニュー項目を検索します。

ADB Android インストール ガイド:ドライバーとコマンド
Android SDK Platform Tools がインストールされていることを示すシステム設定

次のステップは、変数の数によって異なります。 予選で説明したとおり セクションでは、ADB はクライアント サーバー モデルを使用しているため、ツールの使用方法が非常に柔軟になります。

具体的には、次のような場合です:

  • リモート サーバーとやり取りする複数のクライアント
  • 1 つのクライアントに対してローカル (同じコンピュータ) のサーバー
  • 同じサーバーに接続されたさまざまな物理デバイスとエミュレーター

ADB を使用すると、複数のクライアントと非常に多数のデバイスを使用した高度な構成が可能ですが、この記事の範囲外です。

高度な構成を必要とせずに、1 台のサーバーで最大 16 個のエミュレーターと必要な数の物理デバイスを (合理的な範囲内で) 管理できます。

この記事の残りの部分で使用するのは、1 つの ADB サーバー プロセスに対して 1 つの物理デバイスと 1 つのエミュレーターだけです。

ABD エミュレーターの構成方法

ほとんどの場合、これ以上構成する必要はありませんが、開発者向けオプション を有効にする必要がある場合があります。 エミュレータで。最初のいくつかの ADB コマンドに到達すると、正常に動作しているかどうかがすぐにわかります。

エミュレータでこの機能を有効にしたい場合は、特定のバージョンの Android で有効にする方法を調べる必要があります。

USB デバッグ – 物理デバイスの構成方法

物理的な Android デバイスを使用する予定がない場合は、このセクションをスキップできます。ただし、開発者向けオプションを有効にする必要がある場合があることに注意してください

続行するには、Android デバイスと開発マシンで USB デバッグまたは WiFi デバッグのいずれかを構成する必要があります。

いずれの場合も、開発者向けオプションを有効にすることから始めます お使いのデバイスで。 Android の特定のバージョンでそれを行う方法を調べる必要があります。

USB デバッグ

開発者向けオプションを使用して、Android デバイスで USB デバッグが有効になっていることを確認します。上で共有したリンクはそのプロセスを説明していますが、これは Android OS のバージョンによって多少異なる傾向があります。

続行する前に、Windows ユーザーは USB ドライバーをダウンロードする必要があります。 Ubuntu ユーザーは、追加の手順も必要です。 Mac と Chrome OS の場合は、準備完了です。

開発者向けオプションで USB デバッグを有効にしたら、Android デバイスを USB ケーブルで接続します。

WiFi デバッグ

物理デバイスが複数ある場合や USB ケーブルが不足している場合は、WiFi デバッグを選択することをお勧めします。

もう一度、Android デバイスの開発者向けオプションにアクセスして、ワイヤレス デバッグを有効にします。デバイスが現在接続されているネットワークでのデバッグを許可するように求めるプロンプトが表示されます。許可する必要があります (それが適切なネットワークであると仮定します)。

CLI の使用を開始する時間 .まず、Android SDK のインストール ディレクトリ内で platform-tools ディレクトリ (またはフォルダ – 同じもの) を見つける必要があります。

Android Studio がインストールされていると仮定すると、アプリを介してそれを見つける簡単な方法は、もう一度 [ファイル] -> [設定] に移動し、検索バーに「SDK」と入力することです。 「Android SDK」メニューには、SDK がインストールされている場所が表示されます。これは、プラットフォーム ツールを含むディレクトリになります。

以下の例では、Android SDK ディレクトリへのパスをコピーしました。 をクリックし、Windows PowerShell のインスタンスを開きました。次に、次のコマンドを入力しました:

ディレクトリを変更:

cd <path-to-SDK-directory>

ファイルとディレクトリの一覧表示:

ls
ADB Android インストール ガイド:ドライバーとコマンド

次に、 cd platform-tools と入力しました そのディレクトリに移動します。次の手順では、Android OS 11 以降を実行しているデバイスを使用していることを前提としています。

Android 10 以前を実行しているデバイスを使用している場合は、その状況に関する詳細な手順がここにあります。

platform-tools ディレクトリに移動したら、次の手順を使用して Android デバイスを開発マシンにペアリングする準備が整いました。

1. [設定] -> [システム] -> [開発者向けオプション] の [ワイヤレス デバッグ] サブメニューで、[ペアリング コードを使用してデバイスをペアリングする] を選択します。 .

2. platform-tools ディレクトリに設定する必要がある CLI ツール内で、次のコマンドを入力します。

adb pair <IP address>:<Port>

ここで、IP アドレスとポートの両方が、[ペアリング コードを使用してデバイスをペアリングする] を選択した後にポップアップ表示される Android デバイスのダイアログから取得されます。 (山括弧は含めないでください)。

注:使用している CLI ツール、OS、およびアクセス制御によっては、adb への呼び出しの先頭に他のシンボルまたはコマンドを追加する必要がある場合があります。 たとえば、Windows で PowerShell を使用して .\adb pair :<ポート> と入力する必要がありました。

3. CLI で問題がなければ、IP アドレスとポート番号を提供した Android デバイスの同じダイアログに表示されたペアリング コードを入力するよう求められます。

4. ペアリング コードを入力した後、次のメッセージが表示されれば、この操作が成功したことがわかります。

Successfully paired to <IP Address>:<Port> [guid=<Some GUID>]

5. Windows または Linux を使用している場合は、ワイヤレス デバッグ設定メニュー内から表示される IP アドレスとポートを使用して、次のコマンドを実行する必要もあります (ペアリング コードを使用してデバイスをペアリングを選択した後にポップアップするダイアログではありません)。 :

adb connect <IP Address>:<Port>

その後、接続されたことを示す通知を電話で受け取る必要があります。

ADB の使用方法:コマンド

Android デバイスと開発マシンを適切に構成できたと仮定すると、ADB ツールを使用できるようになります。

続行する前に、CLI ツールを使用して adb を含むディレクトリに移動します (前のセクションの手順に従って WiFi デバッグをセットアップした場合を除きます)。

それ以外の場合は、ここで行うか、そのセクションでそのフォルダーの場所を確認する方法を確認してください。

現在サーバーに接続されているデバイスを確認する方法

adb kill-server を除く ADB のほぼすべてのコマンドを呼び出して、adb サーバーを起動できるようになりました。 .サーバー プロセスが実行されているかどうかに関係なく、次のコマンドを入力します。

adb devices

ADB Android インストール ガイド:ドライバーとコマンド

上のスクリーンショットでは、最初に adb devices を呼び出しました。 Androidフォンがサーバーに接続されたとき。 adb kill-server 経由でサーバーを強制終了した後 コマンド、サーバーを再起動するデバイスをもう一度呼び出しました。

繰り返しますが、ADB サーバーが現在実行されていない場合は、ADB コマンドを多かれ少なかれ呼び出すと、サーバーのバックアップが開始されます (adb kill-server を除く) 、 もちろん)。明示的な adb start-server があります コマンドですが、実際には使用する必要はありませんでした.

サーバーがリセットされたため、デバイスはアイテムを返しませんでした。したがって、次の例に移る前に、もう一度 adb pair を使用する必要がありました と adb connect (Windows または Linux の場合) 前のセクションで説明したコマンド。

PowerShell とエミュレータ プログラムを使用してエミュレータを起動しました。このエミュレータ プログラムは、"emulator" という platform-tools のサブディレクトリにあります。

もちろん、AVD マネージャーまたは Android Studio を使用してエミュレーターを起動し、必要に応じて例に従って実行することもできます。

多数のデバイスが接続されている場合、adb devices の便利なオプションです。 コマンドは -l です 、デバイスに関する詳細情報を提供します。

以下に、私の物理的な Android デバイスを参照するいくつかのエントリと、特定のポートに接続されたエミュレーターが表示されます。

ADB Android インストール ガイド:ドライバーとコマンド

特定のデバイスにコマンドを送信する方法

誤って電話をブリックしないようにするために、代わりにエミュレーターにコマンドを送信したいと考えています。これを行うには、先頭に -s を追加する必要があります オプション、その後にターゲット デバイスのシリアル番号を入力してから、コマンドを入力します。

シリアル番号は、devices コマンドを使用した後に接続されたデバイスを説明する最初の文字セットです。

たとえば、この場合のエミュレーターのシリアル番号は、エミュレーターという単語の後にエミュレーターが現在接続されているポートが続くだけです。

ADB Android インストール ガイド:ドライバーとコマンド

もう 1 つの赤い矢印は、私の電話のシリアル番号を指しています (明らかな理由でブロックされています)。

当然、デバイスが 1 つしか接続されていない場合 (デバイスの種類に関係なく)、-s を使用する必要はありません。 オプション。

デバイスに APK (アプリ) をインストールする

adb install を使用して、実行中のエミュレーターにテスト APK をインストールします。 指図。

これは基本的に、Android Studio と Gradle にデバッグ APK をインストールさせることと同じです。ご覧のとおり、テスト APK には -t が必要です インストール コマンドの後のオプション:

adb -s <device-serial-number> install -t <path-to-APK>

ADB Android インストール ガイド:ドライバーとコマンド

注:Android OS では、APK をインストールする前に署名する必要があります (単なるテスト/デバッグ APK であっても)。

1 つの解決策は、アプリをビルドして実行し、Android Studio にインストールして、生成されたデバッグ証明書で署名することです。このような APK に署名する方法は他にもいくつかあります。このリンクにアクセスして調べることができます。

他に ADB にできることは?

ADB のより高度な使い方を見る前に、adb --help を試すことを強くお勧めします。 指図。ほとんどの CLI ベースのプログラムで通例であるように、help コマンドは、ツールのさまざまなコマンドとオプションを説明するドキュメントを出力します。

ADB のドキュメントは非常に読みやすく、便利であると言えます。これは、CLI プログラムでは必ずしもそうではありません。

高度な ADB 使用のヒント

この記事で ADB のすべての使用法とコマンドを取り上げるのは、私たち二人にとって時間の無駄です。

混乱が生じた場合に備えて、ADB を使用して APK をインストールし、Android Studio と Gradle が行う多くのことを行うことはお勧めしません (そうする正当な理由がない限り)。

そうは言っても、ADB なしでは困難または不可能なことが ADB にできることはたくさんあります。

準備セクションで、ADB を使用してデバイスのシェルへのフックを取得できると述べました。この記事を締めくくるには、シェル コマンドの使用方法と、それらに関する詳細情報の入手先について説明します。

シェルが何であるかわからない場合は、上記の説明をスキップした可能性があります。

ABD シェルの使用方法

ADB を使用してデバイスのシェルにコマンドを送信するのは非常に簡単です。複数のデバイスを接続している場合は、-s <device-serial-number> を続けてください。 コマンドを特定のデバイスに送信します。

単一のシェル コマンドを作成するには、adb shell を使用する必要があります。 コマンド (大きな驚きですね?) に続いて、デバイスのシェルで作成する実際のコマンドが続きます:

adb shell ls

出力:

ADB Android インストール ガイド:ドライバーとコマンド

前述のように、ls コマンドは、CLI の現在のディレクトリにあるファイルとディレクトリのリストを表示します。別のディレクトリに移動するまで、これがたまたま Android デバイスのルート ディレクトリになります。

シェル経由で多くのコマンドを作成する場合は、対話型のシェル セッションを開始することもできます。これは簡単なコマンドで実行できます:

adb shell

インタラクティブなシェル セッションでは、adb shell <command> を使用せずに直接シェル コマンドを入力できます。 .

インタラクティブなシェル セッションを終了する場合は、exit と入力して終了できます。 または Ctrl + D を押します。

ADB Android インストール ガイド:ドライバーとコマンド

シェルを介して操作できるさまざまなコマンドとユーティリティがあります。 ActivityManager (am ) は、さまざまな状況で Android アプリのさまざまなコンポーネント (アクティビティ、サービス、BroadcastReceivers など) をテストするのに特に役立ちます。

特定のアクティビティを直接起動したいが、このアクティビティはマニフェストでランチャー アクティビティとして指定されていないとします。

android:exported=”true” を追加する必要があります。 各 <activity/> への属性 起動するマニフェストのエントリ (まだランチャー アクティビティではないことを前提としています)。

その後、次のコマンドを使用して直接移動できます:

am start -n <app-package-id>/<activity-name>

<activity-name> に注意してください package-id に関連して、それが配置されているパッケージを含める必要があります。複数のパッケージ内にあるアクティビティを起動する例については、以下の出力を参照してください。

ADB Android インストール ガイド:ドライバーとコマンド

参考資料

この記事での私の目標は、ABD の使用法を紹介、説明、ガイドするために最善を尽くすことでした (可能な限り)。

この時点で、非常に不自然な例を作成するか、単にドキュメントをコピーする必要がありますが、どちらも私がやりたいことではありません.

代わりに、ドキュメントにアクセスして、Activity Manager、Package Manager、Policy Manager などのツールを使用して実行できる優れた機能を簡単に確認することをお勧めします。

こちらのソーシャル メディアで私と連絡を取ることができます:

https://www.instagram.com/rkay301/
https://www.facebook.com/wiseassblog/
https://twitter.com/wiseass301
https://wiseassblog.com/


  1. GApps をカスタム Android ROM にインストールするためのガイド

    多くの開発者と Android ユーザーは、CyanogenMod のようなカスタム ROM を自分のデバイスにフラッシュします。これは、膨大なカスタマイズと互換性を備えているためです。通常、カスタム ROM は root 化された電話によってフラッシュされます。これにより、管理者権限が付与されますが、Google からサービスが奪われます。 これは、会社の特許が原因で発生します。そのため、サービスはデフォルトでカスタム ROM に含まれていません。メールやブラウザなどの基本的なサービスは存在しますが、Google Apps パッケージは手動でインストールする必要があります。 このブログで

  2. Androidで複数のFacebookアカウントをインストールして実行する方法

    Facebook は、世界中で最も人気のあるソーシャル メディア プラットフォームの 1 つです。すべての Facebook ユーザーは、Facebook アカウントを使用する目的が異なります。ニュース フィードをチェックするために使用する人もいれば、写真やビデオを 1 日おきに投稿するのが好きな人もいれば、ビジネス目的で使用する人もいます。 仕事と娯楽を混在させたくない人は、両方のアカウントを別々に作成する傾向があります。頻繁にアカウントを切り替えなければならないので、一度に複数のアカウントを管理するのは面倒ではありませんか? 心配はいりません。両方のアカウントにアクセスする簡単な方法が