[发明专利]获取Android应用程序启动次数和时间的方法有效
申请号: | 201610070825.X | 申请日: | 2016-01-29 |
公开(公告)号: | CN105740125B | 公开(公告)日: | 2018-03-30 |
发明(设计)人: | 黄旭;雷珂 | 申请(专利权)人: | 四川秘无痕信息安全技术有限责任公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 641000 *** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 获取 android 应用程序 启动 次数 时间 方法 | ||
1.一种获取Android应用程序启动次数和时间的方法,其特征在于,
1.1解析启动时间文件,该文件是xml格式文件,数据存放在节点a中,节点a内部用节点b记录了各个应用的启动数据,其中节点b中的值bvl为应用程序的包名,节点b内部的节点c记录了该应用页面的启动情况,值cvl表示页面的名称,cv2表示页面最近一次启动时间;
1.2解析使用次数及时长文件,该文件是一种安卓手机中的USAGE格式文件,以4个字节为单位存储数据,该文件对于数字的存储采用16进制小端格式存储;其中,偏移量0x00~0x03表示文件头;偏移量0x04~文件尾表示数据区;偏移量0x04~0x07表示该文件记录的应用程序个数;偏移量0x08~文件尾记录了各个应用的使用情况,每个应用数据为一个数据块,数据块与数据块之间以4个0x00字节分割;
2.1加载系统文件,在手机获取root权限的情况下,开启su进程修改文件读写权限,通过数据流加载到内存;
2.2解析启动时间文件,通过Android自带的XmlPullParser相关类解析文件;通过getAttributeValue方法获取节点b中的值bv1;通过获取页面的启动时间来间接获取应用程序的启动时间,同样通过以上方法获取到应用程序所有页面的启动时间,通过比较,最近的时间即为应用程序的启动时间;
2.3通过自定义解析类实现对使用次数及时长文件的解析。
2.根据权利要求1所述的一种获取Android应用程序启动次数和时间的方法,其特征在于,数据块解析具体如下:
包名,每个数据块前4位代表应用包名实际长度,紧接着是用Unicode编码存储应用包名,包名的存储长度=实际长度*2;
应用启动数据,由于该文件中的数据是以4个字节为单位存储的,如果包名长度结尾处偏移量恰好为4的倍数,则加上4个0x00字节,否则用0x00占位补齐作为启动数据与包名的分割符;应用启动数据由8个字节组成:前4个字节代表启动次数,后4个字节代表运行时长;
应用程序页面个数,应用程序页面个数紧接在应用启动数据后,用4个0x00字符分割,该数据由4个字节组成;
应用程序页面名称,应用程序页面名称紧跟在应用程序页面个数后,同样前4位也是代表名称的实际长度,后面用Unicode编码存储了页面名称;
应用页面启动数据,同应用启动数据一样,如果应用程序页面名称结尾处偏移量恰好为4的倍数,则加上4个0x00字节,否则用0x00占位补齐作为页面启动数据与页面名称的分隔符;页面启动数据由44个字节组成:前4个字节代表页面的启动次数,后40个为预留字节与页面信息数据组成。
3.根据权利要求2所述的一种获取Android应用程序启动次数和时间的方法,其特征在于,2.3通过自定义解析类实现对使用次数及时长文件的解析包括:
2.3.1数字信息的转换方法functionl:
步骤1:将小端格式倒序转换为大端格式;
步骤2:将转换后的字节数据依次和0xFF取&转换为int类型数据;
步骤3:通过Integer类的toHexString方法将4个int类型数据转换为HexString并依次拼合为一个HexString字符串;
步骤4:通过Integer类的valueOf方法将HexString字符串转换为int类型。
4.根据权利要求3所述的一种获取Android应用程序启动次数和时间的方法,其特征在于,2.3通过自定义解析类实现对使用次数及时长文件的解析还包括:
2.3.2应用程序启动信息解析:
步骤1:获取文件头信息,判断是否是USAGE类型文件,文件读写下标index移动到第四个偏移位置结尾处;
步骤2:如果步骤1成立则获取文件名称并截取日期date,否则获取下一个USAGE文件;
步骤3:从index位置依次向下读取4个字节;
步骤4:用functionl方法获取到应用程序数量appcount,index继续向下移动4个字节;
步骤5:重复步骤3,用functionl方法获取应用程序包名实际长度,实际长度*2得到应用程序的存储长度pkglength,index继续向下移动4个字节;
步骤6:从index位置依次向下读取pkglength个字符,采用按Unicode编码读取到应用程序包名pkgname,index继续向下移动pkglength个字节;
步骤7:计算index是否为4的倍数,若是则向下移动4个字节,否则向下移动到index为4的倍数为止;
步骤8:重复步骤3,用functionl方法获取到应用程序在当前date使用的次数count,index继续向下移动4个字节;
步骤9:重复步骤3,用functionl方法获取到应用程序在当前date启动的时长time,index继续向下移动8个字节;
步骤10:重复步骤3,用functionl方法获取到应用程序的页面个数pagecount,index继续向下移动4个字节;
步骤11:重复步骤3,用functionl方法获取应用程序页面名实际长度,实际长度*2得到应用程序的存储长度pagelength,index继续向下移动4个字节;
步骤12:从index位置依次向下读取pagelength个字符,采用按Unicode编码读取到应用程序页面名,index继续向下移动pagelength个字节,重复步骤7;
步骤13:重复步骤3,用functionl方法获取到应用程序的页面启动次数,index继续向下移动44个字节;
步骤14:重复步骤11~13,重复pagecount-1次获取到应用程序所有启动过的页面的启动数据后index继续向下移动4个字节;
步骤15:重复步骤5~14,重复appcount-1次获取到所有启动过的应用程序的启动数据后,该文件解析完成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川秘无痕信息安全技术有限责任公司,未经四川秘无痕信息安全技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610070825.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于数据库触发器的告警方法
- 下一篇:一种圆珠笔