list2 = pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES); List all" />

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

android+Python導出安裝的安卓手機應用

Tecode / 2340人閱讀

摘要:安卓代碼收集應用名稱版本號和包名得到手機上已經安裝的應用的名字即在中的。安卓應用數量華為應用數量第三方應用數量所有應用數量利用批量導出安裝包

1、安卓代碼:(收集應用名稱、版本號和包名)
private void collectAppInfo() {

PackageManager pm = getActivity().getPackageManager();
List list2 = pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
List allAppInfoList = new ArrayList<>();
List androidAppInfoList = new ArrayList<>();
List huaweiAppInfoList = new ArrayList<>();
List thirdAppInfoList = new ArrayList<>();
for (PackageInfo packageInfo : list2) {
    //得到手機上已經安裝的應用的名字,即在AndriodMainfest.xml中的app_name。
    String appName = packageInfo.applicationInfo.loadLabel(getActivity().getPackageManager()).toString();
    //得到應用所在包的名字,即在AndriodMainfest.xml中的package的值。
    String packageName = packageInfo.packageName;
    String versionName = packageInfo.versionName;
    AppInfoModel appInfo = new AppInfoModel();
    appInfo.setAppName(appName);
    appInfo.setPackageName(packageName);
    appInfo.setVersionName(versionName);
    allAppInfoList.add(appInfo);
    if(packageName.startsWith("com.android.")) {
        androidAppInfoList.add(appInfo);
    } else if(packageName.startsWith("com.huawei.")) {
        huaweiAppInfoList.add(appInfo);
    } else {
        thirdAppInfoList.add(appInfo);
    }
}

Log.e("ch_test", "安卓應用數量: " + androidAppInfoList.size() + ", 華為應用數量: "
    + huaweiAppInfoList.size() + ", 第三方應用數量: " + thirdAppInfoList.size()
    + ", 所有應用數量: " + allAppInfoList.size());
LogUtils.e("ch_test", new Gson().toJson(thirdAppInfoList));
2、Python利用adb批量導出安裝包:

def daochu(packageName, outputName):

try:
    newCommand = adb shell pm path {}.format(packageName)
    # os.system(newCommand)

    (status, uploadRes) = subprocess.getstatusoutput(newCommand)
    packagePath = str(uploadRes)[8:]
    if package: in packagePath:
        packagePath = packagePath[0:packagePath.index(package:)-1]
    outputPath = ./{}.apk.format(outputName)
    newCommand2 = adb pull {}  {}.format(packagePath, outputPath)
    os.system(newCommand2)
    # (status, uploadRes) = subprocess.getstatusoutput(newCommand2)
    # print(str(uploadRes))
except Exception as e2:
    print(e2)
    print("output error: {}".format(packageName))
return

def allDaochu():

os.chdir(/home/xxx/yyy/apk)
data = 
with open(package.txt, r) as f:
    data = f.read()
print(data)
jsonData = json.loads(data)
print(len(jsonData))
for index in range(len(jsonData)):
    packageName = jsonData[index][packageName]
    appName = jsonData[index][appName]
    versionName = jsonData[index][versionName]
    if   in appName:
        appName = appName.replace( , )
        # print(appName)
    if  ( in versionName:
        versionName = versionName.replace( (, [)
        # print(versionName)
    if ) in versionName:
        versionName = versionName.replace(), ])
        # print(versionName)
    outputName = {}-{}.format(appName, versionName)
    print({}: {}.format(packageName, outputName))
    daochu(packageName, outputName)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125893.html

相關文章

  • 如何用Python抓抖音上小姐姐

    摘要:比如分鐘破譯朋友圈測試小游戲文章里用的方法但有些根本就沒有提供網頁端,比如今年火得不行的抖音。所以常用的方式就是通過在電腦上裝一些抓包軟件,將手機上的網絡請求全部顯示出來??偨Y下,重點是的抓取,關鍵是配置代理證書,難點是對請求的分析。 爬蟲的案例我們已講得太多。不過幾乎都是 網頁爬蟲 。即使有些手機才能訪問的網站,我們也可以通過 Chrome 開發者工具 的 手機模擬 功能來訪問,以便...

    FingerLiu 評論0 收藏0
  • 程序員!一款超實用安卓實時同步投屏電腦軟件,誰用誰知道!

    QtScrcpy超贊的安卓實時投屏軟件 QtScrcpy介紹眼見為實的效果環境準備主要功能介紹手機打開USB調式模式運行精簡模式非精簡模式運行時注意這個圖 無線連接步驟(保證手機和電腦在同一個局域網): QtScrcpy介紹 QtScrcpy可以通過USB(或通過TCP/IP)連接Android設備,并進行顯示和控制。不需要root權限。單個應用程序最多支持16個安卓設備同時連接。同時支持G...

    yy13818512006 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<