Android应用统计-使用时长及次数统计(二)

本文详细介绍了Android系统如何统计应用的使用时长和次数,包括Events文件的结构、Event记录、Configuration数据、UsageStats的使用以及UsageStatsManager的API。重点讨论了系统如何记录每个activity的使用记录,以及如何通过源码分析获取应用统计信息。下篇将继续探讨系统统计逻辑和源码分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键字: 应用统计 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"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值