http://www.eoeandroid.com/forum.php?mod=viewthread&tid=207309
//比较两个应用程序的启动次数和运行时间
public final int compare(ApplicationInfo a, ApplicationInfo b) {
ComponentName aName = a.intent.getComponent();
ComponentName bName = b.intent.getComponent();
int result = 0;
//get usagestats service
IUsageStats mUsageStatsService = IUsageStats.Stub
.asInterface(ServiceManager.getService("usagestats"));
try {
//get PkgUsageStats
PkgUsageStats aStats = mUsageStatsService
.getPkgUsageStats(aName);
PkgUsageStats bStats = mUsageStatsService
.getPkgUsageStats(bName);
if(aStats!=null && bStats!=null) {
if ((aStats.launchCount > bStats.launchCount)
|| ((aStats.launchCount == bStats.launchCount) && (aStats.usageTime > bStats.usageTime)))
result = -1;
else if ((aStats.launchCount < bStats.launchCount)
|| ((aStats.launchCount == bStats.launchCount) && (aStats.usageTime < bStats.usageTime)))
result = 1;
else {
result = 0;
}
}else if(aStats!=null && bStats ==null) {
result = -1;
} else if(aStats==null && bStats !=null) {
result = 1;
}
} catch (RemoteException e) {
Log.i("TAG", "get package usage stats fail");
}
return result;
}
ActivityManager am = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
Map<String,Integer> apptimes = am.getAllPackageLaunchCounts();
Set<Entry<String,Integer>> entryset = apptimes.entrySet();
Iterator<Entry<String,Integer>> iterators = entryset.iterator();
while(iterators.hasNext()){
Entry<String,Integer> item= iterators.next();
Log.d("yzy","key = "+item.getKey() +" values ="+item.getValue());
}
分享到:
相关推荐
在Android开发中,`UsageStatsManager`是系统提供的一项服务,用于收集和查询应用的使用统计数据,包括但不限于应用启动次数、活跃时间等,这对于开发者分析用户行为或者优化应用性能非常有帮助。 首先,要使用`...
开发者可以通过`UsageStatsManager.queryUsageStats()`方法查询这些数据,它能够返回一个包含应用使用时间、启动次数等信息的UsageStats对象列表。这些数据可用于长期分析,例如统计过去一天、一周或一月内的应用...
本文将详细介绍如何查看Oracle数据库中执行最慢和查询次数最多的SQL语句,以帮助DBA(数据库管理员)识别潜在的性能瓶颈。 首先,我们来看如何查询执行最慢的SQL语句。在Oracle中,可以使用`v$sqlarea`视图来获取...
在本文中,我们将详细讨论如何使用 SQL Server 嵌套子查询,包括什么是嵌套子查询、如何创建嵌套子查询、嵌套子查询的优点和应用场景等。 什么是嵌套子查询? 在 SQL Server 中,有两种子查询类型:标准子查询和...
《C++ Primer 第四版:容器的综合应用——文本查询》是C++编程领域的一份重要参考资料,主要探讨了如何利用C++标准库中的容器进行高效的数据管理和处理,特别是针对文本查询的应用。在这个主题中,我们将深入理解C++...
标题中的"Access_JDBC30.jar"是一款专为解决Access数据库与Java应用程序通过JDBC连接时,关于查询次数和每次查询条数限制问题的库文件。这个特定版本的JDBC驱动程序,允许开发者无限次地执行查询,同时每次查询也...
《iOS开发:构建列车时刻表查询应用》 在iOS开发领域,构建一款列车时刻表查询应用是一项常见的任务,它能够帮助用户快速、便捷地获取列车时刻信息,为出行提供便利。本项目源代码是一个完整的列车时刻表查询应用,...
这个示例会展示如何创建和使用ALSA定时器,这对于需要精确时间同步的音乐应用程序非常有用。 **ALSA库的关键概念** 1. **PCM设备** - PCM设备代表音频数据的输入/输出,支持模拟音频流。它们有主设备和子设备,每...
3. **获取应用的最近活跃时间**:`getLastTimeUsed()`方法可以返回一个应用最近一次被使用的精确时间戳。 4. **获取特定时间范围内的应用使用统计**:`queryEvents()`方法可以获取指定时间范围内的所有使用事件,...
5. 查询借出次数超过 10 次的所有图书的书号和书名。 三、实验环境与实验准备工作 实验环境:Microsoft Windows 2008 操作系统,Microsoft SQL Server 2008 数据库管理系统标准版或企业版。 实验准备工作:在开始...
在处理大量数据时,为了提高效率并避免一次性加载所有数据导致性能下降,通常会采用分页查询的方式来获取数据。下面我们将详细探讨SQLite中的查询所有、分页查询以及查询个数的相关知识点。 1. 查询所有数据: 在...
预加载是一种优化策略,允许你在一次查询中获取主对象及其关联数据,从而减少查询次数。例如,使用`with()`方法可以预先加载用户和他们的地址,只需两次查询即可完成。 此工具的使用对于开发阶段尤其有价值,因为它...
2. 保证返回值是查询所需要的,减少数据库访问次数。 3. 通过搜索参数减少访问行数,最小化结果集。 4. 使用索引时,将它们放在选择的首列。 5. 优化算法结构以简单化。 6. 限制通配符的使用,选择需要输出的列。 7....
- 使用批处理操作减少I/O次数,提升性能。 #### 五、持续监控与迭代 1. **建立持续集成/持续部署(CI/CD)**流程,确保每次提交代码后都能自动构建并部署到测试环境进行验证。 2. **实施性能监控**,利用Firebase ...
此外,物化视图技术还可以减少数据的计算次数,提高查询效率。 在使用物化视图技术时,需要注意物化视图的建立和维护,确保物化视图的数据是最新的,以便确保查询结果的准确性。 3. 基于 Oracle 平台的 Job 定时...
本文主要通过一下几个方面介绍:使用SQLDMV查找慢速查询、通过APM解决方案查询报告、SQLServer扩展事件、SQLAzure查询性能洞察等相关内容。本文来自博客园,由火龙果软件Anna编辑、推荐。SQLServer的一个重要功能是...
- **控件封装**:为了提高复用性和通用性,将万能查询功能封装为OCX控件,便于在多种支持VB6.0技术的应用系统中使用。 - **兼容性**:确保控件能够在不同的操作系统环境下正常工作。 ##### 用户界面设计 - **界面...
在开发这样一个离线版的公交查询应用时,开发者需要处理的关键技术点包括: 1. 数据获取:需要从官方或其他可靠来源获取最新的公交线路数据,并进行整理存储。 2. 数据存储:利用SQLite数据库存储公交线路数据,以便...