最初に、コマンド構文
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
。 次に、インストールの最後にログから情報を読み取り、インストール結果に関するメッセージを表示します。 次のようになります。
スクリプトを作成したら、実行可能にし、実行します。
この記事がお役に立てば幸いです。 ご清聴ありがとうございました。