Android 系统级应用守护进程

news2024/11/13 10:26:33

+import java.util.Random;

/**

  • Application class for SystemUI.

@@ -42,6 +69,8 @@ public class SystemUIApplication extends Application {

private static final String TAG = “SystemUIService”;

private static final boolean DEBUG = false;

  •   private Context mContext;
    

/**

  • The classes of the stuff to start.

@@ -86,6 +115,8 @@ public class SystemUIApplication extends Application {

// application theme in the manifest does only work for activities. Keep this in sync with

// the theme set there.

setTheme(R.style.systemui_theme);

  •           mContext = getApplicationContext();
    

SystemUIFactory.createFromConfig(this);

@@ -143,6 +174,7 @@ public class SystemUIApplication extends Application {

private static final String SETTING_SYSTEM = “tchip.provider.setting.system”;

private static final String SETTING_SECURE = “tchip.provider.setting.secure”;

private static final String SETTING_GLOBAL = “tchip.provider.setting.global”;

  •   private static final String BROADCAST_SCREENSHOT = "rk.android.screenshot.action";
    

private String valueContent = “0”;

private MainReceiver mainReceiver;

@@ -150,6 +182,10 @@ public class SystemUIApplication extends Application {

android.util.Log.i(“AZ”, log);

}

  •   private void LDLog(String log) {
    
  •           android.util.Log.i("LD", log);
    
  •   }
    

public class MainReceiver extends BroadcastReceiver {

@Override

@@ -225,6 +261,18 @@ public class SystemUIApplication extends Application {

intentDown.putExtra(“android.intent.extra.KEY_CONFIRM”, false);

intentDown.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intentDown);

  •                   } else if (BROADCAST_SCREENSHOT.equals(action)) {
    
  •                           Intent intentScreenShot = new Intent("android.intent.action.SCREENSHOT");
    
  •                           intentScreenShot.putExtra("path", intentScreenShot.getExtras().getString("path"));
    
  •                           intentScreenShot.putExtra("name", intentScreenShot.getExtras().getString("name"));
    
  •                           context.sendBroadcast(intentScreenShot);
    
  •                   } else if (BROADCAST_TIMETICK.equals(action)) {
    
  •                           //checkLaidianAppAlive();
    
  •                           try{
    
  •                                   mHandler.removeCallbacks(laidianAppR);
    
  •                           }catch(Exception e){
    
  •                           }
    
  •                           mHandler.postDelayed(laidianAppR, 1000);
    

}

}

}

@@ -326,4 +374,82 @@ public class SystemUIApplication extends Application {

public SystemUI[] getServices() {

return mServices;

}

  •   Handler mHandler = new Handler();
    
  •   private int laidianAppCheckTime = 3000;
    
  • Runnable laidianAppR = new Runnable(){

  •           @Override
    
  •           public void run() {
    
  •                  checkAppAlive(pkgName", "clsName");
    
  •                   mHandler.postDelayed(laidianAppR, laidianAppCheckTime);
    
  •           }
    
  • };

  •   private void checkAppAlive(String pkgName, String clsName){
    
  •           long startTime = System.currentTimeMillis();
    
  •           if(!isAppAlive(pkgName)){
    
  •                   LDLog("checkAppAlive.start to start app... ");
    
  •                   try{
    
  •                           ComponentName componentName = new ComponentName(pkgName, clsName);
    
  •            Intent intent = new Intent();
    
  •            intent.setComponent(componentName);
    
  •            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    
  •            mContext.startActivity(intent);
    
  •                   }catch(Exception e){
    
  •                   }
    
  •           }else{
    
  •                   LDLog("checkAppAlive.app is running... ");
    
  •           }
    
  •           LDLog("checkAppAlive.used time : " + (System.currentTimeMillis() - startTime));
    
  •   }
    
  •   public boolean isAppAlive(String packageName){
    
  •           //boolean isAlive = false;
    
  •           //String command = "ps | grep " + packageName/* + " | busybox awk '{print $2}'"*/;
    
  •           //String[] result = ExecCmd.getPackagePID(command);
    
  •           //for(String str :result){
    
  •       //  if(!"-1".equals(str)){
    
  •       //          isAlive = true;
    
  •       //  }
    
  •           //}
    
  •           //return isAlive;
    
  •    // 获取正在运行的进程
    
  •    /*ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
    
  •    List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
    
  •    for (RunningAppProcessInfo appProcess : appProcesses) {
    
  •        String[] pkgList = appProcess.pkgList;
    
  •        for (String pckName : pkgList) {
    

最后

由于题目很多整理答案的工作量太大,所以仅限于提供知识点,详细的很多问题和参考答案我都整理成了 PDF文件

tring pckName : pkgList) {

最后

由于题目很多整理答案的工作量太大,所以仅限于提供知识点,详细的很多问题和参考答案我都整理成了 PDF文件

[外链图片转存中…(img-ep5S3FlU-1726003250592)]

[外链图片转存中…(img-0QRwCegQ-1726003250593)]

[外链图片转存中…(img-V6CIyXAJ-1726003250593)]

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

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

相关文章

嵌入式产品发货后出现问题,怎么办?

目录 1、问题识别与初步诊断 2、影响评估 3、提出临时解决方案 4、根本原因分析与修复 5、修复验证与回归测试 6、修复的部署与客户沟通 7、预防未来类似问题 当嵌入式电子产品已发货且出现问题时&#xff0c;及时采取有效的补救措施是至关重要的。补救步骤应包括问题的…

javascript柯里化

return a b c d; } //通常调用方式 var sum add(1, 2, 3, 4); //柯里化的调用方式 var curryAdd Curry(add); var sum curryAdd(1)(2)(3)(4); //或者很多奇怪的方式调用 var sum curryAdd(1, 2)(3, 4); var sum curryAdd(1, 2, 3)(4); var sum curryAdd(1)(…

C语言 | Leetcode C语言题解之第398题随机数索引

题目&#xff1a; 题解&#xff1a; typedef struct {int *nums;int numsSize; } Solution;Solution* solutionCreate(int* nums, int numsSize) {Solution *obj (Solution *)malloc(sizeof(Solution));obj->nums nums;obj->numsSize numsSize;return obj; }int solu…

Maven之坑setting.xml配置

先来看遇到的问题 在运行 mvn clean package 打包命令的时候&#xff0c;IDEA控制台提示如下 Non-resolvable parent POM for com.xxxxx.xxxxx:1.0.0: The following artifacts could not be resolved: com.xxxxx:xxxxx:pom:1.0.0 (present, but unavailable): xxxxx:xxxxx…

全球热门剪辑软件大搜罗

如果你要为你的视频进行配音那肯定离不开音频剪辑软件&#xff0c;现在有不少音频剪辑软件免费版本就可以实现我们并不复杂的音频剪辑操作。这次我就给你分享几款能提高剪辑效率的音频剪辑工具。 1.福晰音频剪辑 链接直达>>https://www.foxitsoftware.cn/audio-clip/ …

Java面试篇基础部分-Java各种垃圾收集器

导语   在之前的分享中,我们知道Java堆内存被分为新生代和老年代两个部分;其中,新生代中主要存储生命周期较短的对象,了解了新生代中的对象采用的是复制算法进行垃圾回收;而老年代主要存储生命周期较长的对象以及大对象,采用的是标记整理算法进行垃圾回收。 针对不同的…

Es6解构赋值,熟练掌握作用域

5.3 数组的解构赋值 数组的解构赋值是按照前后数据的索引值一一对应的 5.4 前后数据结构也要保持一致,不然解构的可能与原数组解构嵌套不同 5.5 数组解构时的默认值 6 对象的解构赋值 对象的解构赋值是按照key一一解构 7 解构数组,如果有两个值必须写在后面,rest参数 8 解…

VMware账户授权迁移Broadcom账户-操作指南

前言: VMware被Broadcom收购后,大量的国内VMware企业用户获取技术支持的渠道改变。 特别是授权以及开Case的问题。 这篇文章保姆级教学,从你怎么拨打外国电话(并且告诉你背诵英文短语的方式从400处获取答案,不用交流),怎么获取Site ID,以及如何…

湖仓一体-Paimon篇-简介

简介 Apache Paimon 是一种数据湖的格式&#xff0c;支持使用 Flink 和 Spark 构建实时湖仓架构&#xff0c;用于流式和批处理操作。Paimon 创新性地结合了数据湖格式和LSM结构&#xff0c;将实时流式更新引入数据湖架构。 Paimon 提供以下核心功能&#xff1a; ● 实时更新&a…

游戏开发引擎___unity位置信息和unlit shader(无光照着色器)的使用,以桌子的渲染为例

unity是左手坐标系 1.位置信息 1.1 代码 using System.Collections; using System.Collections.Generic; using UnityEngine;public class positionTest : MonoBehaviour {public Camera Camera;private void OnGUI(){//世界坐标系&#xff0c;GUI里的标签GUI.Label(new Rec…

【智能流体力学】机器学习 (ML) 增强计算流体动力学 (CFD) 的最新进展

这篇综述探讨了通过机器学习 &#xff08;ML&#xff09; 增强计算流体动力学 &#xff08;CFD&#xff09; 的最新进展。文献系统地分为三个主要类别&#xff1a;数据驱动的代理、物理知情的代理和 ML 辅助数值解。随后&#xff0c;我们重点介绍了 ML for CFD 在关键科学和工程…

【开发工具】IntelliJ IDEA插件推荐:Json Helper——让JSON处理更高效

导语&#xff1a;在Java开发过程中&#xff0c;JSON作为一种轻量级的数据交换格式&#xff0c;被广泛应用于前后端数据交互。今天&#xff0c;我要为大家介绍一款IntelliJ IDEA插件——Json Helper&#xff0c;帮助开发者更高效地处理JSON数据。 一、什么是Json Helper&#x…

部署定时任务每2天清理一次表

1、创建存储过程 create or replace procedure truct authid current_user ---使用“authid Current_user”将存储过程转化为调用者权限 as begin execute immediate truncate table rep.tmp_s_st_busi_send_arc; end; / 2、创建定时任务 begin dbms_scheduler.create…

Java 内存分析及三种初始化

1&#xff0e;Java内存分析&#xff1a; &#xff08;1&#xff09;堆&#xff1a;①存放new的对象和数组&#xff1b;②可以被所有的线程共享&#xff0c;不会存放别的对象引用。 &#xff08;2&#xff09;栈&#xff1a;①存放基本变量类型&#xff08;包括这个基本类型的…

【网络安全】-xss跨站脚本攻击实战-xss-labs(1~10)

Level1: 检查页面源代码&#xff1a; function函数&#xff1a; (function(){try{let tn ;if(tn.includes(oem)){Object.defineProperty(document, referrer, {get: function(){return ;}});}else if(tn.includes(hao_pg)){if(!document.referrer.match(tn)){Object.definePro…

合宙低功耗4G模组Air780EX——硬件设计手册01

Air780EX是一款基于移芯EC618平台设计的LTECat1无线通信模组。支持FDD-LTE/TDD-LTE的4G远距离无线 传输技术。另外&#xff0c;模组提供了USB/UART/I2C等通用接口满足IoT行业的各种应用诉求。 一、主要性能 1.1 模块功能框图 1.2 模块型号列表 1.3 模块主要性能 *注: 模组…

计算机毕业设计 智能推荐旅游平台 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

Java 每日一刊(第3期):Hello World

文章目录 前言Hello World程序是如何执行的Hello World 里有什么本期小知识 阳光洒进窗台&#xff0c;花香伴着书香&#xff0c;静谧而温暖&#xff0c;仿佛时光停驻。 前言 这里是分享 Java 相关内容的专刊&#xff0c;每日一更。 本期将为大家带来以下内容&#xff1a; “…

MFC工控项目实例之十三从文件读写板卡信号名称

承接专栏《MFC工控项目实例之十二板卡测试信号输出界面》 1、在BoardTest.h文件中添加代码 class CBoardTest : public CDialog {public:CBoardTest(CWnd* pParent NULL); // standard constructor... CString NO_Combox[16]; CString strTemp[16];//数据项名称 CString st…

Sentinel 使用案例详细教程

文章目录 一、Sentinel 使用1.1 Sentinel 客户端1.2 Sentinel 控制台1.3 客户端和控制台的通信所需依赖 二、测试 Sentinel 限流规则2.1 启动配置2.2 定义限流资源2.3 配置流量控制规则2.4 运行项目 三、 测试 Sentinel 熔断降级规则3.1 定义资源3.2 配置熔断降级规则3.3 运行项…