如何在线从Android APK文件中提取图标
设计师寻找灵感,审阅者整理缩略图,开发人员检查竞争对手的资产,从 APK 文件中提取图标 的需求比您想象的更频繁地出现。问题在于,手动挖掘 res/mipmap 等内部文件夹是一个缓慢而繁琐的过程。
本演练涵盖了到达 从 APK 中提取高分辨率应用程序图标 的最快方法、Android 如何首先存储图标资源,以及我们的 APK图标提取工具 如何在几秒钟内为您处理繁琐的部分。
要点
- APK 文件存储多种分辨率的图标支持不同的屏幕尺寸。
- 自适应图标(Android 8.0中引入)由前景层和背景层组成。
- 在线提取器比手动方法更快,并且不需要 APK 解压。
- 您可以从任何 APK 中提取图标,包括系统应用程序和受保护的文件。
为什么提取 APK 图标?
应用程序图标代表应用程序的身份。您可能希望将它们提取为独立的 PNG 或 SVG 文件有多种原因:
- 用户界面/用户体验设计: 分析图标样式、颜色和阴影效果。
- 内容创作: 使用高质量徽标作为 YouTube 缩略图或博客文章标题。
- 设备定制: 基于原始设计创建您自己的自定义图标包。
- 应用程序验证: 将提取的图标与官方图标进行比较,以确保有效性。
了解 Android 图标资源
在 APK 内,图标在 android:icon 属性下的 AndroidManifest.xml 中定义。现代应用程序使用多种类型的图标格式:
- Mip 贴图: 光栅图像(PNG、WebP)存储在名为 mipmap-xxxhdpi、mipmap-xxhdpi 等的文件夹中。
- 矢量绘图: 基于 XML 的向量,可无限扩展而不损失质量。
- 自适应图标: 它们使用单独的背景和前景层,允许 Android 对图标应用不同的蒙版(圆形、方形、方圆形)。
如何在线提取图标(标准方法)
我们的 在线 APK 图标提取器 旨在自动处理所有这些复杂性。该过程非常简单:
逐步提取:
- 导航至我们的 图标提取工具。
- 上传您的 .apk 或 .xapk 文件。
- 该工具立即解析 AndroidManifest.xml 以查找图标的资源路径。
- 它扫描 res/ 目录以获得可用的最高分辨率(通常为 xxxhdpi)。
- 屏幕上会显示图标的预览。
- 单击 下载图标 将其另存为高质量 PNG。
高分辨率保证
我们的提取器始终优先考虑 XXXL (192x192) 或原始矢量资源,确保您获得满足您设计需求的最清晰的徽标。
手动方法(使用 ZIP 开启器)
如果您无法访问互联网,您可以手动提取图标,尽管它更复杂:
- 将您的 app.apk 重命名为 app.zip。
- 打开 ZIP 文件。
- 导航至 /res/。
- 查找以 mipmap- 开头的文件夹。
- 在这些文件夹中搜索名为 ic_launcher.png 的图像文件。
- 从最大的文件夹(例如 xxxhdpi)复制文件。
警告:对于使用专门命名约定的自适应图标或应用程序,此方法通常会失败。
自适应图标:为什么你会看到两层
自 Android 8 (Oreo) 以来,该平台一直使用 自适应图标:一种两层系统,允许操作系统将图标剪辑并动画成不同的形状(Pixel 上的圆形、Samsung One UI 上的方格形、原生启动器上的圆角方形、某些 OEM 皮肤上的泪滴形)。当您提取自适应图标时,您会得到两个 PNG(或两个矢量绘图),而不是一个:
- 前景层:实际的标志或符号。它始终绘制在顶部,并且必须位于安全区域内(108 × 108 dp 画布中心的 66 dp 圆圈)。
- 背景层:纯色、渐变或简单图案。启动器使用它来填充剪切后前景之外的区域。
- 可选单色层:随 Android 13 主题图标一起引入。它包含一个单色轮廓,启动器会对其进行着色以匹配用户的壁纸衍生主题调色板。
如果您只导出前景 PNG,您最终会得到一个没有背景或透明背景的图像,这对于设计模型中的资源来说很好,但如果您想要启动器就绪的图标,则错误。始终导出两个图层,或使用 APK 图标提取器,当检测到自适应图标时,它会自动为您合成它们。
密度文件夹备忘单
在 APK 内,相同的图标可能以五种或更多尺寸存在,每个像素密度桶一个。启动器会选择最接近设备密度的桶。当您提取最高质量版本时,请直接前往 xxxhdpi:
| 密度桶 | 文件夹名称 | 启动器图标大小 | 自适应画布尺寸 |
|---|---|---|---|
| LDPI | mipmap-ldpi | 36 × 36 | 不适用 |
| mdpi(基线) | mipmap-mdpi | 48 × 48 | 108 × 108 |
| hdpi | mipmap-hdpi | 72 × 72 | 162 × 162 |
| xhdpi | mipmap-xhdpi | 96 × 96 | 216 × 216 |
| xxhdpi | mipmap-xxhdpi | 144 × 144 | 324 × 324 |
| xxxhdpi | mipmap-xxxhdpi | 192 × 192 | 432 × 432 |
| 任何dpi-v26 | mipmap-anydpi-v26 | XML 自适应图标定义,而不是位图 | |
罕见的 anydpi-v26 文件夹很特殊:它包含 参考 前景和背景绘图存储在其他地方的 XML 文件。如果您在打开 mipmap 文件夹时仅看到 XML,则实际图形位于 res/drawable-* 中或作为 res/drawable/ 中的矢量 XML。浏览器工具会自动遵循这些参考。
矢量与光栅:您应该导出哪一个?
现代 Android 应用程序更喜欢 矢量绘图(使用 SVG 子集的 XML 文件)作为图标和小型 UI 图形。它们可以无限扩展,几乎没有重量,一个文件涵盖了所有密度。较旧的应用程序仍然以各种密度提供光栅 PNG。提取时,您可能会遇到以下任一格式:
- 矢量XML(文件扩展名 .xml,根标签 <vector>),可通过一行属性交换转换为 SVG,或由我们的工具光栅化为您指定的大小。
- 网络P(紧凑有损/无损):现代应用程序可以在每种密度下以 WebP 形式发送图标。我们的提取器可以解码 WebP,如果您需要更广泛的兼容性,您可以将其重新导出为 PNG。
- 巴布亚新几内亚:通用格式。所见即所得。
对于设计工作,只要存在矢量源,就优先选择它;为了实现旧版兼容性(旧工具、营销材料),请导出您能找到的最高密度的 PNG。
提取图标时的常见陷阱
- 将 res/mipmap 与 res/drawable 混淆。 mipmap 持有启动器图标; drawable 保存应用内图像。两者都可以包含类似图标的资源,但清单中的 android:icon 只引用 mipmap 条目。
- 选择错误的密度。 如果您正在设计 4K 显示器,则 48 × 48 mdpi 版本将看起来像素化。始终从 xxxhdpi 或矢量源开始。
- 忘记圆形变体。 许多应用程序都声明 ic_launcher 和 ic_launcher_round,但裁剪略有不同。有些发射器总是选择第一轮。将两者都提取出来。
- 忽略商标。 上述法律说明适用。提取图标供个人参考或提高可访问性是可以的;使用已发布的商业徽标作为您自己产品的图标则不然。
常见问题 (FAQ)
提取应用程序图标合法吗?
提取图标供个人使用、审查或教育通常是可以接受的。但是,未经所有者许可在商业产品中重新分发或使用它们可能会违反版权和商标法。
Android 应用程序图标的标准尺寸是多少?
对于商品详情,图标应为 512x512。在 APK 内,主屏幕通常找到的最高分辨率是 192x192 (xxxhdpi)。
我可以从系统应用程序(如 Google 相机)中提取图标吗?
是的。如果您有系统应用程序的 APK 文件,我们的工具将像任何其他常见应用程序一样提取其图标。
每次都获得干净的启动器资源
如果您设计、审查或构建 Android 应用程序,从 APK 中提取图标是一个方便的技巧。您可以手动完成,但专用的 在线工具 速度更快,并且无需猜测即可获得全分辨率源。当您需要时,它是我们 APK 工具集中的免费部分。