Androidでの.apkのインストールまたはadbインストール用のGUIのインストールを容易にする方法

こんにちは、ハブラフチャン。 たまたまAndroidデバイスに.apkファイルをインストールしなければならないことがよくありました。私はテスターとして働いています。 もう一度、ターミナルを開いて次のアプリケーションをインストールするコマンドを入力して、ルーチンを削除する方法を考えました。 この記事は初心者を対象としているため、多くの説明があります。

最初に、コマンド構文adb install < >



思い出しましょう。 2つ以上のデバイスが接続されている場合、次のようになります。

error: more than one device and emulator





- waiting for device -





adbはアプリケーションを配置する場所を知らないため。 デバイスを明示的に指定するための構文は、 adb -s <ID_device> installl < >



です。 ID_deviceを取得するには、 adb devices



コマンドを与える必要があります。これは、接続されたデバイスをリストします。

List of devices attached





LGOTMS409c0d device





HT0BTHG02888 device





以下のスクリプトを使用して、インストールプロセスをよりユーザーフレンドリーにすることができます。

スクリプトリスト:

 #!/bin/bash DEV_LIST=$(adb devices | awk '/device$/{if (NR!=1) {print $1}}') #   ,   .apk  DIR_PATH="/home/dn010891laa//" while [ -z "$DEV_LIST" ]; do zenity --question --title="    Android-" --text=" ?" --height=100 --width=400 if [ $? -eq "0" ]; then DEV_LIST=$(adb devices | awk '/device$/{if (NR!=1) {print $1}}') else notify-send "ADB" " " exit fi done path=$(find "$DIR_PATH" -name "*.apk*" | zenity --list --title "    "$DIR_PATH"" --column "  .apk" --height=370 --width=600) if [ $? -eq "1" ]; then exit fi if [ $(echo "$DEV_LIST" | wc -l) -ne "1" ] then DEV_NAME=$(zenity --list --title "     ?" --column " " $(echo "$DEV_LIST" | xargs)) if [ $? -eq "1" ];then notify-send "ADB" " " exit fi else DEV_NAME="$DEV_LIST" fi adb -s "$DEV_NAME" install "$path" | tee /tmp/installlog.txt | zenity --progress --text " "$path"   "$DEV_NAME"" --pulsate --auto-close --no-cancel log=$(cat /tmp/installlog.txt) zenity --info --title=" " --text="$log" rm /tmp/installlog.txt killall adb exit
      
      





今、順番に:

1。

ユーザーと対話するために、Zenityが使用されます-コマンドラインのグラフィカルインターフェイス。 インターネットのコマンドラインパラメーター(たとえば、 here )をzenity --help



するか、ターミナルでzenity --help



を実行してzenity --help





DIR_PATHは、デフォルトですべてのapkがスタックされる方法です。個人的には、このオプションは私にとって便利です。 ファイルへのパスが一定でない場合-DIR_PATHで行を消去し、パス変数にzenity --file-selection --title=" apk " --file-filter=*.apk



次に "選択任意のパスを選択し、* .apkファイル拡張子のフィルターを使用します。

2。
  DEV_LIST=$(adb devices | awk '/device$/{if (NR!=1) {print $1}}')
      
      



adb devices



コマンドの出力を取得し、行から余分なテキスト(この場合は「device」)を削除し、最初の行を除くすべての行を表示します。

3。
  while [ -z "$DEV_LIST" ]</code>: <code>-z
      
      



-文字列の長さが0の場合、trueを返します。ループの本体ですべてが明らかであると思います。

4。
  path=$(find "$DIR_PATH" -name "*.apk*" | zenity --list --title "    "$DIR_PATH"" --column "  .apk" --height=370 --width=600)
      
      



-指定されたパスで* .apk拡張子を持つすべてのファイルを探し、zenityを介してリストに結果を表示します-選択されたパスを変数pathに割り当てます

5。
  if [ $(echo "$DEV_LIST" | wc -l) -ne "1" ]
      
      



-デバイスのリストを読み取り、行数を取得します。1行以上ある場合は、リストを作成します。

  DEV_NAME=$(zenity --list --title "     ?" --column " " $(echo "$DEV_LIST" | xargs))
      
      



、選択した値がDEV_NAMEに割り当てられます。

6。
  adb -s "$DEV_NAME" install "$path" | tee /tmp/installlog.txt | zenity --progress --text " "$path"   "$DEV_NAME"" --pulsate --auto-close --no-cancel
      
      



-インストールするコマンドを与え、インストールの進行状況をログファイルに並行して書き込み、パラメーターをzenity --progress



転送して、進行状況zenity --progress



を表示しzenity --progress



。 次に、インストールの最後にログから情報を読み取り、インストール結果に関するメッセージを表示します。 次のようになります。









スクリプトを作成したら、実行可能にし、実行します。

この記事がお役に立てば幸いです。 ご清聴ありがとうございました。




All Articles