频道栏目
首页 > 程序开发 > Web开发 > Python > 正文
Python如何提取APK图标
2018-03-12 11:37:36      个评论    来源:明天你好的专栏  
收藏   我要投稿

有个需求,需要提取1000个APK的图标,最开始的想法通过Apktools对APK进行解压,再获取图标,由于Apktools解压APK比较耗时,这个办法就被弃用。通过分析找到一个快的方法,步骤如下(window系统):

1、通过aapt工具,提取图标在APK中路径**

aapt工具在android_sdk的build-tools\27.0.2目录
然后随便找一个APK命令为test.apk,执行aapt dump badging test.apk命令,会发现输出有一部分内容如下:
这里写图片描述
接下来通过findstr命令提取application-icon-120这一行,图标的路径为r/a6/icon.png
这里写图片描述

2、通过Python zipfile提取图标

步骤1已经获取了图标在APK中的路径,通过Python的zipfile库,将APK的图标保存到本地。


代码实现

将aapt.exe拷贝到H:\Python\temp\目录

#coding=utf-8
import os
import zipfile

def parse_icon(filePath):

    cmd = "H:\\Python\\temp\\aapt.exe dump badging %s | findstr application-icon-120" % filePath

    output = os.popen(cmd).read()
    print output

    iconPath = output[22:len(output) - 2]
    print iconPath

    zip = zipfile.ZipFile(filePath)
    iconData = zip.read(iconPath)

    saveIconName = "H:\\Python\\temp\\icon.png";

    with open(saveIconName,'w+b') as saveIconFile:
        saveIconFile.write(iconData)

    parse_icon("H:\\Python\\appstore\\test.apk")

执行完就会发现,在H:\Python\temp\目录下生成了图标文件icon.png
这里写图片描述


点击复制链接 与好友分享!回本站首页
上一篇:python :高级编程技术 week1-3
下一篇:python:4种基本排序算法
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站