pythonのマルチデバイスパッケージインストールアプリ
コード
1つの #は/ usr / binに/ ENVパイソン! 2 #- * -エンコーディング:UTF-8 - * - 3 インポートOS 4 インポート時間 5 からマルチプロセッシングインポートプール 6リスト= [] 7 8 DEF getDevicesAll(): 9 #获取装置数量和名称 10台の デバイス= [] 11 トライ: 12 のため dName_ で os.popen(" ADBデバイス" ): 13 であれば " \ tの" 中dName_: 14 場合 dName_.find(" エミュレータ")< 0: 15 devices.append(dName_.split(" \ tの" )[0]) 16 devices.sort(CMP =なし、キー=無し、逆= 偽) 17 プリント(装置) 18 を除く: 19の パス 20 プリント(U " \ N设备名称:%S \ N总数量:%S台"%(デバイス、LEN(デバイス))) 21の リターンデバイス 22 23 DEFquickinstall(デバイス): 24 パッケージ名= " com.ishugui " 25 #卸载原有APK 26 試み: 27 28 os.system(' ADB -s ' +デバイス+ ' アン%S '%パッケージ名) 29 os.system(' ADB -s ' +デバイス+ ' アンインストール%S '%のパッケージ名) 30 プリント(デバイス+ " 卸载成功する\ n " ) 31 を除く: 32 印刷(+デバイス" アンインストールが\ N-失敗" ) 33が 34である 試み: 35 印刷(' ----- -----一覧' 、リスト) 36 [37 用 I でリスト: 38です os.system(「ADB -sは、' + +デバイス' インストール" + I) 39 40 を除い: 41で 印刷(+デバイス" N- \を失敗したインストール" ) 42で 印刷(+デバイス」正常にインストール\ N- " ) 43は 44がされて DEF (デバイスは、)はqainstall: 45 のstartTimeは= time.time() 46があるが 、プール=プール(2) #作成8つのタスクプール 47 結果= pool.map(QuickInstall、デバイス) 48 ENDTIME = time.time() 49 pool.close() 50 pool.join() 51が 印刷(終了時刻-のstartTime) #の印刷時間 52は 53れる DEF (ファイル名)get_apk: 54である 、グローバル リスト 55 #1 = 'F:/ダウンロード/ APK' filesname 56 #インストールパッケージ得る 57はある プリント(filesname) 58 のために親にdirnames、filnames にos.walk(filesname): 59 用 FILNAME でfilnames: 60 パス= os.path.join(親、FILNAME)が 61である list.append(経路) 62れます 印刷(' ----- -----一覧' 、リスト) 63が リターン リスト 64 65 #パケットパス 66 filesname = ' F:/ダウンロード/ APK ' 67の #は、インストールパッケージ取得 68 印刷(filesname) 69 のための親にdirnames、filnames にos.walk(filesname): 70 用 filname でfilnames: 71 パス= os.path.join(親、filname) 72 list.append(経路) 73 プリント(' - ---リスト----- ' リスト) 74 75 76 なら __name__ == " __main__ " : 77 78 filesname = ' F:/ダウンロード/ APK ' 79 リスト= get_apk(filesname) 80 81 試し: 82 デバイス= getDevicesAll() 83 を除い: 84 印刷(" デバイスエラーが出る" ) 85の RES = INPUT(" スタートアップデート1を入力してください。" ) 86 87 IF int型(RES)== 1 : 88 のtry : 89 qainstall(デバイス) 90 を除い: 91 印刷(" 更新に失敗しました" ) 92 #タッチ(デバイス)