F-droid源码片段(一)

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());

}

}

}

时间: 2024-10-10 16:35:50

F-droid源码片段(一)的相关文章

WEBRTC源码片段分析(1)音频缓冲拷贝

源码位置webrtc/webrtc/modules/audio_device/ios/audio_device_ios.cc函数OSStatus AudioDeviceIPhone::RecordProcessImpl( AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, uint32_t inBusNumber, uint32_t inNumberFrames) { ...........

C语言100个经典算法源码片段

将写内容过程中比较常用的内容备份一次,下边内容段是关于C语言100个经典算法片段的内容. C语言的学习基础,100个经典的算法 C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的算法 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔 子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数 为多少? 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... 程序源代码: main() { long

java获取随机时间的源码片段

将写内容过程中重要的一些内容做个记录,如下资料是关于java获取随机时间的片段的内容. import java.text.parseexception; import java.text.simpledateformat; import java.util.date; public class getrandomtiem { public static void main(string []args){ simpledateformat format = new simpledateformat

F-droid 源码片段(二)下载模块整理

这篇文章把F-droid的下载功能经过修改单独拿出来,而且做了一个demo. 希望能对自己后续起到借鉴作用.各位童鞋也可以去进行下载. 其实主要的思想有2个 1.使用接口进行回调 2.线程直接调用回调,由于无法知道主线程是否进行UI操作,所以把线程的回调进行了包装,使用Handler来发消息.保证不会崩溃. 项目下载地址: http://download.csdn.net/download/leehu1987/7979253 一.定义一个接口,用于页面下载状态的监听: <pre class=&quo

C语言变成:磁盘检测源码片段

把写内容过程比较好的一些内容片段做个珍藏,下面内容是关于C语言变成:磁盘检测片段的内容.#include <stdio.h>#include <dos.h>#include <malloc.h> void main(void){struct fatinfo fat;long sector, total_sectors; getfat(3, &fat); if ((buffer = malloc(fat.fi_bysec)) == NULL)printf(&quo

C#华氏温度和摄氏温度的相互专函源码片段

把写代码过程经常用到的一些代码做个记录,如下资料是关于C#华氏温度和摄氏温度的相互专函片段的代码. public static double CelsiusToFahrenheit (string temperatureCelsius) { double celsius = System.Double.Parse (temperatureCelsius); } public static double FahrenheitToCelsius (string temperatureFahrenhe

C# 获得目录创建时间的源码片段

下面资料是关于C# 获得目录创建时间的片段的代码. using System; using System.IO; class DirectoryCreationTime { public static void Main() { string directoryString = Directory.GetCurrentDirectory() + @"TestDir"; Directory.CreateDirectory (directoryString); DateTime dateT

30s源码刨析系列之函数篇

前言 由浅入深.逐个击破 30SecondsOfCode 中函数系列所有源码片段,带你领略源码之美. 本系列是对名库 30SecondsOfCode 的深入刨析. 本篇是其中的函数篇,可以在极短的时间内培养你的函数式思维. 内容根据源码的难易等级进行排版,目录如下: 新手级 普通级 专家级 正文 新手级 checkProp const checkProp = (predicate, prop) => obj => !!predicate(obj[prop]); const lengthIs4

深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)

上篇文章<深入浅出Mybatis系列(一)---Mybatis入门>, 写了一个Demo简单体现了一下Mybatis的流程.本次,将简单介绍一下Mybatis的配置文件: 上次例子中,我们以 SqlSessionFactoryBuilder 去创建 SqlSessionFactory,  那么,我们就先从SqlSessionFactoryBuilder入手, 咱们先看看源码是怎么实现的: SqlSessionFactoryBuilder源码片段: 1 public class SqlSessi