www*_*.se 7 android embedded-resource apk android-resources
我需要从apk文件中提取应用程序图标.我只需要一个图标,我不想在apk中提取其他所有内容.文件很容易掌握,但如何确定哪个图标文件是正确的应用程序图标.我想这是存储在资源表中的?所以我想我需要的是实际读取资源表,我希望从资源表中我可以确定图标文件namne然后我可以从应用程序中提取.
我需要一个简单的工具,我知道apktool可以提取整个apk文件,但这不是我想要的
它做了我不需要的其他东西(反编译,解压缩其他文件等)
它需要很多时间才能运行
有没有其他工具可以用来抓住图标文件路径?
所有建议表示赞赏
编辑:澄清一下,我不想在设备上这样做.我试图在PC上这样做.
小智 12
aapt
安装了Android SDK的工具platform-tools
可以为您提供所需的详细信息.apktool随附aapt.
aapt d --values badging payload.apk
使用此输出,您可以从apk(这是一个zip文件)中提取图标文件.
/res/drawable-hdpi/icon.png
编辑:请注意,此文件不存在于所有apk文件中,但在大多数文件中.除了提取所有.png文件并从列表中选择一个文件之外,我找不到更好的解决方案.
小智 7
//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);
Run Code Online (Sandbox Code Playgroud)
你可以参考这个链接
至于我的知识(并且根据维基百科也是如此),APK文件是ZIP文件格式化的包.所以我认为你可以使用任何解压缩工具来解压缩apk文件并获取你想要的图标.对于启动器图标,只需打开AndroidManifest.xml
文件并查看该android:icon
属性即可<application>
.它可能看起来像这样:
android:icon="@drawable/ic_launcher"
然后是图标文件res/drawable-<dim>/ic_launcher.png
,其中<dim>
任何一个都ldpi, mdpi, hdpi, xhdpi
可以代表不同的分辨率.最大的图像将在xhdpi
或hdpi
.
归档时间: |
|
查看次数: |
29438 次 |
最近记录: |