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

亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

android+Python導(dǎo)出安裝的安卓手機(jī)應(yīng)用

Tecode / 2561人閱讀

摘要:安卓代碼收集應(yīng)用名稱版本號(hào)和包名得到手機(jī)上已經(jīng)安裝的應(yīng)用的名字即在中的。安卓應(yīng)用數(shù)量華為應(yīng)用數(shù)量第三方應(yīng)用數(shù)量所有應(yīng)用數(shù)量利用批量導(dǎo)出安裝包

1、安卓代碼:(收集應(yīng)用名稱、版本號(hào)和包名)
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) {
    //得到手機(jī)上已經(jīng)安裝的應(yīng)用的名字,即在AndriodMainfest.xml中的app_name。
    String appName = packageInfo.applicationInfo.loadLabel(getActivity().getPackageManager()).toString();
    //得到應(yīng)用所在包的名字,即在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", "安卓應(yīng)用數(shù)量: " + androidAppInfoList.size() + ", 華為應(yīng)用數(shù)量: "
    + huaweiAppInfoList.size() + ", 第三方應(yīng)用數(shù)量: " + thirdAppInfoList.size()
    + ", 所有應(yīng)用數(shù)量: " + allAppInfoList.size());
LogUtils.e("ch_test", new Gson().toJson(thirdAppInfoList));
2、Python利用adb批量導(dǎo)出安裝包:

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)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/125893.html

相關(guān)文章

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

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

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

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

    yy13818512006 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<