通过Launcher源码分析,加载桌面图标在IconCache(packages/apps/Launcher3/src/com/android/launcher3/IconCache.java)文件中的cacheLocked函数,这个函数做的是:
1.先查询IconCache的缓存中是否存在,如果存在就直接从缓存中取出图标,
2.如果不存在,则读取Launcher数据库,如果数据库存在,则把相关图标从数据库中读出来并保存到IconCache的缓存中,
3.如果数据库不存在,则从系统中的packageManager取相关的图标信息。