android10 系统定制:增加应用使用数据埋点,应用使用时长统计

news2024/12/23 15:06:01

需求意在统计应用的使用时长和开始结束时间,最终生成一个文件可以直观看出什么时候进入了哪个应用、什么时候退出,如图:
在这里插入图片描述
每行记录了应用的进入或退出,以逗号分割。分别记录了事件开始时间,应用包名,进入或退出(1或2),应用名称。
根据上面的数据记录可以看出:2024-08-12 09:52:54进入了设置,09:52:57退出设置回到了桌面,09:53:11进入了包名为com.example.intelligentsearch888名称为client1的应用… …
基本思路:当系统窗体焦点发生变化时,获取应用信息,如果进入了新的应用(同一个应用内不做记录,减少不必要的数据)则写入记录文件。
具体实现:
1.添加数据记录帮助类:
在frameworks/base/services/core/java/com/下添加自定义目录custom/buriedpoint,添加工具文件BuriedPointManager.java:

 package com.custom.buriedpoint;

import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.provider.Settings;
import android.text.TextUtils;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author : ljl  
 * @description:
 * @date :2024/8/9 下午5:35
 */
public class BuriedPointManager {

    

    /**
     * Enter application buried point type
     */
    private static final int TYPE_BURIED_POINT_DATA_ENTER = 1;

    /**
     * Exit application buried point type
     */
    private static final int TYPE_BURIED_POINT_DATA_EXIT = 2;

    /**
     * Embedded point file path
     */
    private static final String BURIED_POINT_FILE_PATH = "/data/system/UsageStats.txt";

    /**
     *

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2134927.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

B2C电商接口解决方案||搭建电商项目必备电商接口

01 涉及接口 电商接口:天猫、京东商城、拼多多、有赞、快递鸟接口。 02 业务场景 企业在第三方电商平台开店,需要对电商平台上商品价格、库存进行更新,并将电商订单下载到ERP系统,ERP进行作业后,将物流信息上传到电…

【MATLAB源码-第265期】基于simulink的DQPSK调制解调系统仿真,未直接调用模块并且手动实现,输出各节点波形图。

操作环境: MATLAB 2013a / 2013b 1、算法描述 差分正交相移键控(DQPSK)调制解调系统是一种非常成熟的数字通信技术,主要用于传输数据中的相位变化,而非绝对相位。这一特性使得它对信号中的相位抖动和其他干扰具有更…

再次进阶 舞台王者 第八季完美童模全球赛见证官【孔翊橙】赛场+秀场超燃合集!

7月20-23日,2024第八季完美童模全球总决赛在青岛圆满落幕。在盛大的颁奖典礼上,一位才能出众的少女——孔翊橙迎来了她舞台生涯的璀璨时刻。见证官——孔翊橙,以璀璨童星之姿,优雅地踏上完美童模盛宴的绚丽舞台,作为开…

双副本与双活:TDengine 为企业打造的高效数据管理利器

在现代数据管理中,企业对于可靠性、可用性和成本的平衡有着多样化的需求。为此,TDengine 在 3.3.0.0 版本中推出了两种不同的企业级解决方案:双活方案和基于仲裁者的双副本方案,以满足不同应用场景下的特殊需求。本文将详细探讨这…

看看智慧门诊银医通自助服务方案,如何化解医院患者跑难题

“看病三分钟,排队三小时”,这是许多患者在就医过程中的无奈吐槽。挂号队伍长如龙,看病流程繁琐复杂,缴费窗口人满为患,检查报告等待时间漫长…… 这些就医痛点,不仅让患者身心疲惫,也给医院的管…

Python编码系列—Python抽象工厂模式:构建复杂对象家族的蓝图

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

wifi MSDU MPDU BA

MSDU (Mac service data unit) mac 服务层 数据单元, 也就是包含了 mac 层头和 FCS 的 802.11 包。 MPDU(Mac protocol data unit)mac 协议层数据单元, 这个包只是原始的802.11 数据包 在新的wifi 协议中有两种聚合方式 A-MSDU…

数仓建设:为什么我们的数据容易被业务方质疑?

目录 0 问题背景 1 问题产生的原因 2 问题解决方案 3 小结 数字化建设通关指南专栏原价99,现在活动价39.9,按照阶梯式增长,直到恢复原价 0 问题背景 “ 在数字化建设进程中,无论是处于数据产品的你,或是数据开发的…

ModbusTCP/RTU转Ethernet/IP(CIP)-Modbus设备与罗克韦尔AB的PLC之间通讯

IGT-DSER智能网关模块支持西门子、三菱、欧姆龙、罗克韦尔AB等各种品牌的PLC之间通讯,同时也支持PLC与Modbus协议的工业机器人、智能仪表、变频器等设备通讯。网关有多个网口、串口,也可选择WIFI无线通讯。无需PLC内编程开发,只要在IGT-DSER智…

Python 数学建模——Vikor 多标准决策方法

文章目录 前言原理步骤代码实例 前言 Vikor 归根到底其实属于一种综合评价方法。说到综合评价方法,TOPSIS(结合熵权法使用)、灰色关联度分析、秩和比法等方法你应该耳熟能详。Vikor 未必比这些方法更出色,但是可以拓展我们的视野。…

从GreaterWMS学习仓库管理系统

前言 客户并不知道(确切地)他们需要什么? 需要通过需求分析工具和技术,利用宽进严出的需求池,需求验证使用原型测试,场景分析,专家评审,交叉检查等手段,经过充分验证的需…

牛耕分解+形态学分割 全覆盖路径规划(二)Part1. 分割

书接上文:牛耕分解形态学分割 全覆盖路径规划(一) 前置文章1:房屋区域分割算法 Morphological Segmentation 前置文章2:牛耕覆盖算法 Boustrophedon Coverage Path Planning 项目地址:ipa320 / ipa_cove…

基于Kubernetes部署Spark:spark on kubernetes

什么是spark? spark是一种基于内存的快速、通用、可扩展的的数据分析计算引擎。 Hadoop、Hive、Spark是什么关系? 大数据技术生态中,Hadoop、Hive、Spark是什么关系?| 通俗易懂科普向_哔哩哔哩_bilibili Hadoop 与 HDFS (Hado…

【腾讯云】AI驱动TDSQL-C Serveress 数据库技术实战营-如何是从0到1体验电商可视化分析小助手得统计功能,一句话就能输出目标统计图

欢迎来到《小5讲堂》 这是《腾讯云》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 背景效果图流程图创建数据库基本信息数据库配置设置密码控制台开启…

腾讯联合多所高校出品!AI游戏生成模型 GameGen-O 轻松生成高质量游戏元素

最近,香港和中国的几所大学与腾讯联合研发了一个名为 GameGen-O 的 AI 模型,专门用于创建开放世界视频游戏的模拟。 GameGen-O 的功能不仅仅限于生成高质量的游戏内容,它还模拟了多种游戏引擎的特性,能够创造出丰富多样的游戏元素…

字符分类函数和字符串函数

Hello~,欢迎大家来到我的博客进行学习! 目录 1.字符分类函数😘1.1解释以及使用🤯1.2将字符分类函数组合使用👻2 .字符转换函数🧐 1.字符分类函数😘 1.1解释以及使用🤯 在键盘上敲的字符有许多…

揭秘高效日志管理:解锁数据宝藏,驱动业务精准决策

作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 座右铭: 云端筑梦,数据为翼,探索无限可能,引领云计算新纪元 个人主页:团儿.-CSDN博客 目录 前言&#…

duckdb 连接postgres 和 jdbc 的使用

why? 主要是特别快 嵌入式,不需要服务器,使用超级方便 扩展机制灵活,可以直接读取CSV、JSON、Parquet等文件 Parquet文件格式详解(含行、列式存储区别)_parquet格式-CSDN博客 采用列式存储(用…

边缘计算网关:连接中心计算与边缘设备的重要桥梁-天拓四方

一、边缘计算网关:重新定义信息高速公路的“路标” 边缘计算网关,作为边缘计算生态系统中的核心组件,不仅承载着数据传输的功能,更是智能信息处理的关键节点。它通过分布式计算架构,将数据处理任务前置到网络边缘&…

JDK 收费了,怎么应对?难道 JDK 8 一直用下去吗?

最近遇到一个问题:Oracle JDK 8 在 ARM 机器上性能特别差! 我的第一直觉就是是不是 JDK 8 在 ARM 不兼容? 为了研究这个问题,我探究了一圈,主要是找找有没有同行遇到这个问题,在找的过程中呢,发…