我需要从apk文件中提取应用程序图标。我只需要一个图标,我不想把其他的东西都提取出来。这些文件很容易获得,但我如何确定哪个图标文件是正确的应用程序图标。我猜这是存储在资源表中的?所以我想我需要的实际上是读取资源表,我希望从资源表中我可以确定图标文件的名称,然后我可以从应用程序中提取。
我需要一个简单的工具,我知道apktool可以提取整个apk文件,但这不是我想要的。
还有其他工具可以用来获取图标文件路径吗?
感谢您的所有建议。
编辑:为了澄清,我不是试图在设备上这样做。我试着在电脑上做这件事。
发布于 2013-01-23 16:48:31
aapt
工具附带了Android,在platform-tools
下可以找到它,它会给您提供所需的详细信息。带有aapt的apktool船舶。
aapt d --values badging payload.apk
使用此输出,您可以从apk (即zip文件)中提取图标文件。
发布于 2013-01-23 15:58:34
/res/drawable-hdpi/icon.png
下面找到作为png文件的图标编辑:注意,这个文件并不存在于所有apk文件中,而是存在于其中的大多数文件中。除了提取所有.png文件并从列表中选择一个之外,我找不到更好的解决方案。
发布于 2014-02-19 13:35:53
//if your apk is not installed ..only having .apk on sdcard
String APKFilePath = "mnt/sdcard/myapkfile.apk"; //For example...
PackageManager pm = getPackageManager();
PackageInfo pi = pm.getPackageArchiveInfo(APKFilePath, 0);
// the secret are these two lines....
pi.applicationInfo.sourceDir = APKFilePath;
pi.applicationInfo.publicSourceDir = APKFilePath;
//
Drawable APKicon = pi.applicationInfo.loadIcon(pm);
String AppName = (String)pi.applicationInfo.loadLabel(pm);
您可以参考此链接。
https://stackoverflow.com/questions/12640359
复制相似问题