標籤:style color io ar strong for art sp log
protected boolean update() {
long startTime = System.currentTimeMillis();
compareCacheToPackageManager();
updateCache();
long duration = System.currentTimeMillis() - startTime;
Log.d(TAG, "Took " + duration + "ms to compare the installed app cache with PackageManager.");
return hasChanged();
}
比對系統的已安裝的應用,查詢需要插入和刪除的應用列表
private void compareCacheToPackageManager() {
Map<String, Integer> cachedInfo = InstalledAppProvider.Helper.all(context);
List<PackageInfo> installedPackages = context.getPackageManager().getInstalledPackages(0);
for (PackageInfo appInfo : installedPackages) {
toInsert.add(appInfo);
if (cachedInfo.containsKey(appInfo.packageName)) {
cachedInfo.remove(appInfo.packageName);
}
}
if (cachedInfo.size() > 0) {
for (Map.Entry<String, Integer> entry : cachedInfo.entrySet() ) {
toDelete.add(entry.getKey());
}
}
}
F-droid源碼片段(一)