出于好奇,我想知道应用程序图标存储在Android设备文件系统的哪个位置。
就像我的设备主屏幕上的各种应用程序的快捷方式一样,这些图标文件(或图像)存储在那里。是仅在应用程序包(.apk)内部,还是Android将其存储在其他地方?
如果它在应用程序包中,Android只会加载来自每个apk的所有图像并在第一次启动时加载吗?
答案 0 :(得分:2)
安装app文件时,会分析.apk文件,并由启动器提取各种信息。 (此过程不涉及加载和运行应用程序本身。)这些项目中的应用程序图标,启动程序通常在其自己的私有区域中缓存。具体如何完成取决于您设备上当前活动的启动器。您可以浏览启动器的源代码,以了解有关如何缓存从app .apk文件中提取的这些项目的更多详细信息,但我不确定该练习的实际用途。< / p>
启动器使用自己的缓存大大加快了启动速度,否则每次重启时都必须扫描每个已安装的应用程序,以便为启动器提取必要的信息以显示自己。但是,缓存是偶然问题的根源,例如当安装了更新的应用程序(带有新图标和可能的新应用程序名称)时,图标不会立即更新。 (例如,请参阅this thread和this one。)
答案 1 :(得分:1)
考虑一下创建自己的应用时会发生什么。通常,您为所有可绘制资源存储桶(或至少是您要支持的资源存储区)创建应用程序的图标。然后将这些文件与AAPT一起打包到包含项目其余部分的apk中。然后在安装您的应用程序后,操作系统将选择与您的手机配置相匹配的图标,并在已安装的应用程序页面上创建快捷方式。