android 应用程序使用统计
2012-06-08 15:28
274 查看
//通过反射方法获得usagestats服务
Class<?> cServiceManager = Class .forName("android.os.ServiceManager"); Method mGetService = cServiceManager.getMethod("getService", java.lang.String.class); Object oRemoteService = mGetService.invoke(null, "usagestats"); // IUsageStats oIUsageStats = // IUsageStats.Stub.asInterface(oRemoteService) Class<?> cStub = Class .forName("com.android.internal.app.IUsageStats$Stub"); Method mUsageStatsService = cStub.getMethod("asInterface", android.os.IBinder.class); Object oIUsageStats = mUsageStatsService.invoke(null, oRemoteService); // PkgUsageStats[] oPkgUsageStatsArray = // mUsageStatsService.getAllPkgUsageStats(); Class<?> cIUsageStatus = Class .forName("com.android.internal.app.IUsageStats"); Method mGetAllPkgUsageStats = cIUsageStatus.getMethod( "getAllPkgUsageStats", (Class[]) null); Object[] oPkgUsageStatsArray = (Object[]) mGetAllPkgUsageStats .invoke(oIUsageStats, (Object[]) null); System.out.println(oPkgUsageStatsArray); Class<?> cPkgUsageStats = Class .forName("com.android.internal.os.PkgUsageStats"); for (Object pkgUsageStats : oPkgUsageStatsArray) { // get pkgUsageStats.packageName, pkgUsageStats.launchCount, // pkgUsageStats.usageTime String packageName = (String) cPkgUsageStats.getDeclaredField( "packageName").get(pkgUsageStats); int launchCount = cPkgUsageStats .getDeclaredField("launchCount").getInt(pkgUsageStats); long usageTime = cPkgUsageStats.getDeclaredField("usageTime") .getLong(pkgUsageStats); System.out.println(packageName + ":" + launchCount + ":" + usageTime);
注意加权限:<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
相关文章推荐
- AndroidStudio中使用Jacoco统计Android应用程序代码覆盖率
- android 应用程序使用统计
- 使用jQuery Mobile + PhoneGap 开发Android应用程序(转)
- Android使用应用程序资源(、颜色数组、尺寸、弦、布尔、整型)
- 使用 Eclipse PhoneGap 构建 Android 应用程序入门
- Android判断网络状态是否断开+Android完全关闭应用程序+ 本文讲述了Android中不同Activity之间的数据传递 — Bundle对象的实现(-)+Android中Bundle的使用示例
- 使用maven构建一个基于Java的spark应用程序用于统计唐诗三百首中各汉字出现的次数
- Android中获取应用程序(包)的信息-----PackageManager的使用(二)
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
- Android中获取应用程序(包)的大小-----PackageManager的使用(二)
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
- linux环境使用Eclipse开发Android应用程序时使用真机调试方式
- Android中的内存使用状况统计&&Android中集成第三方软件包(.jar, .so)
- 使用URL打开android应用程序
- Android 6.0中应用程序使用硬件访问服务实例
- 使用WakeLock使Android应用程序保持后台唤醒
- Android之中获取应用程序(包)的信息-----PackageManager的使用(一)
- android应用使用情况统计实现
- Linux 下使用命令行开发 Android 应用程序~~玩玩还行