关键字: 应用统计 Android源码 应用使用时长 应用使用次数
上篇文章主要讲解了如何获取关于系统统计应用使用记录的数据,包括系统初始数据events,系统统计数据Usage,以及通过反射获取的应用启动次数mLuanchCounts。本文将进一步说明系统数据的结构以及相关数据的记录方法。
Events文件
在 手机/data/system/usagestats(/user_id/TimeStamp) 这一文件夹中保存着关于系统记录的每一个activity的使用记录。每一个文件记录一天的数据,文件名为当天开始记录的时间戳,一般为早上8:00,每天到了8点钟都会重新新建另一文件进行记录。目测,是由于时区问题导致本应从零点开始的记录变成了八点。其主要格式如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<usagestats version="1" endTime="36503806">
<packages>
<package lastTimeActive="-1499212800000" lastTimeActiveSystem="30396792" package="com.android.providers.telephony" timeActive="0" lastEvent="0" beginIdleTime="601202961" />
<package lastTimeActive="-1499212800000" lastTimeActiveSystem="35845563" package="com.android.providers.media" timeActive="0" lastEvent="0" beginIdleTime="606649836" />
<package lastTimeActive="-1499212800000" lastTimeActiveSystem="35845563" package="com.android.providers.downloads" timeActive="0" lastEvent="0" beginIdleTime="606649836" />
<package lastTimeActive="-1499212800000" lastTimeActiveSystem="30420851" package="com.android.providers.applications" timeActive="0" lastEvent="0" beginIdleTime="601225121" />
<package lastTimeActive="-1499212800000" lastTimeActiveSystem="35832034" package="com.android.defcontainer" timeActive="0" lastEvent="0" beginIdleTime="606636305" />
<package lastTimeActive="-1499212800000" lastTimeActiveSystem="23280068" package="com.android.stk" timeActive="0" lastEvent="0" beginIdleTime="598593891" />
<package lastTimeActive="-1499212800000" lastTimeActiveSystem="30397034" package="com.android.printspooler" timeActive="0" lastEvent="0" beginIdleTime="601202961" />
<package lastTimeActive="35844112" lastTimeActiveSystem="35844112" package="com.estrongs.android.pop" timeActive="190" lastEvent="2" beginIdleTime="606648382" />
<package lastTimeActive="-1499212800000" lastTimeActiveSystem="30419146" package="com.android.keychain" timeActive="0" lastEvent="0" beginIdleTime="601223425" />
<package lastTimeActive="-1499212800000" lastTimeActiveSystem="30399122" package="cn.trinea.android.developertools" timeActive="0" lastEvent="0" beginIdleTime="601203258" />
<package lastTimeActive="-1499212800000" lastTimeActiveSystem="30396792" package="com.android.phone" timeActive="0" lastEvent="0" beginIdleTime="601202961" />
<package lastTimeActive="-1499212800000" lastTimeActiveSystem="30420851" package="com.android.providers.userdictionary" timeActive="0" lastEvent="0" beginIdleTime="601225121" />
<package lastTimeActive="36109708" lastTimeActiveSystem="36109708" package="com.android.systemui" timeActive="2262" lastEvent="2" beginIdleTime="606913979"