Android Overlay机制总结

Android Overlay 机制解析 android Overlay 阅读详情

参考博客,很详细,值得一看,查看点击

背景

车机整机开发有主题壁纸商店。需要满足动态切换资源。选择使用overlay机制实现。和手机上不同的是,使用主题后,指定的所有应用内的资源都需要替换。

效果

video-overlay


通过了解,overlay机制比较适合,不需要去改变目标应用本身的结构。不同主题只需要添加不同的主题apk 就行。

实现步骤
  1. 制作主题apk,overlay项目。
  2. 应为overlay项目只能配置一个目标,需要fw层作出对应修改。
  3. fw层 设置主题apk 生效和失效。
制作Overlay项目

目录结构
目录结构
里面只有资源文件,无代码。需要系统签名。当然资源文件名称,要和目标项目资源名称一致。
清单文件配置
在这里插入图片描述
添加overlay 标签,制定目标应用包名。更多标签内容介绍,可以详细百度。这样Overlay apk 就做好了。

安装好之后,可以用命令查看 adb shell dumpsys overlay
在这里插入图片描述mIsEnabled 是false ,目前还没有生效,生效和失效的adb命令:
adb shell cmd overlay enable com.example.themoverlaydemo
adb shell cmd overlay disable com.example.themoverlaydemo

启动后mIsEnabled 就会变成true。接收命令的类是OverlayManagerShellCommand,路径/homeframeworks/base/services/core/java/com/android/server/om

FW层对应的修改
  1. 配置需要生效的目标应用包名
    frameworks/base/core/res/res/values/arrays.xml 添加目标包名
    <string-array translatable="false" name="config_xxxxxtargetpackages">
        <item>com.android.systemui</item>
        <item>com.android.launcher</item>
        <item>com.xxxxx.appanel</item>
        <item>com.xxxxx.themestore</item>
        <item>com.xxxxx.media</item>
        <item>com.xxxxx.aircondition</item>
        <item>com.android.systemui.plugin</item>
    </string-array>

frameworks/base/core/res/res/values/symbols.xml 中添加array名称

  <java-symbol type="array" name="config_simbatargetpackages" />
  1. OverlayManagerService 设置目标列表
public OverlayManagerService(@NonNull final Context context,
            @NonNull final Installer installer) {
   
   
        super(context);
        mSettingsFile =
            new AtomicFile(new File(Environment.getDataSystemDirectory(), "overlays.xml"), "overlays");
        mPackageManager = new PackageManagerHelper();
        mUserManager = UserManagerService.getInstance();
        //获取配置的目标列表
        mSimbaOverlayTarget = new ArrayList
Android平台Overlay机制 Android overlay 机制允许在不修改packages中apk的情况下,来自定义 framework和package中的资源文件,实现资源的定制。来达到显示不同的UI得目的(如MIUI)。 以下几类能够通过该机制定义: (1),Configurations (string, bool, bool-array) (2),Localization (string, string-arr... 阅读详情

相关推荐

Android Vendor Overlay机制

Vendor Overlay(供应商覆盖)是一种用于自定义和定制Android系统UI和行为的机制。通过这个机制允许设备厂商(如手机制造商或芯片供应商)在不修改AOSP的源代码的情况下,通过覆盖Android系统的默认资源和配置文件来实现定制化的功能和外观。Vendor Overlay是Android系统中的一种机制,允许供应商(通常是设备厂商)在系统中覆盖或修改特定的资源和配置文件。

hongyeying的专栏 1341

Android源代码定制:Overlay目录定制|调试Overlay资源是否生效

在本文中介绍了Android源代码定制的一些机制和工具,包括: -介绍了overlay的概念和目录结构,以及如何自定义overlay目录和资源。 介绍了`aapt`工具的用法,以及如何查看系统镜像中的资源信息。

我其实什么都不会 1809

Android View Overlay的点击事件处理

在Android开发中,我们经常会使用视图叠加层(Overlay)来创建半透明的遮罩或遮挡效果,以突出显示某些信息或提示用户。然而,有时我们会发现尽管视图叠加层看起来覆盖了下方的控件,但用户仍然可以点击到这些被遮挡的控件。这篇博客将详细探讨如何解决这个问题。

m0_62153576的博客 172

(超详细)Qt入门和配置Visual Studio的Qt环境

内容写了Qt入门,创建并编写第一个Qt程序,以及配置VS编写Qt程序的环境。(超级详细)

LY549826LY549264的博客 7679

避坑指南:OpenWRT改AP模式必做的5个关键设置(DHCP/防火墙/WAN口处理)

本文详细解析了将OpenWRT设备从路由模式切换为AP模式时,必须完成的五个关键设置步骤。核心在于理解AP模式本质是带无线的智能交换机,需彻底关闭DHCP服务、调整防火墙策略、正确桥接所有物理接口(包括WAN口处理),并集成无线网络,以确保设备能透明接入主路由网络,避免出现设备隔离或无法互访等常见问题。

t1u2v的博客 736

【宠物识别系统】设计框架

能跑通的 Demo。收集 10,000 张同品种但不同个体的图片。训练ArcFace模型,验证准确率能否达到 99% 以上。搭建Milvus向量数据库。开发移动端 App/小程序。加入“图像质量检测”和“用户反馈纠错”功能。你是更偏向于做软件服务(如寻宠App、保险API),还是做软硬结合的产品(如智能喂食器)?这决定了我们下一步是深挖云端高并发架构,还是边缘端模型压缩。更偏向于软件,应用更广泛些,继续既然专注于纯软件/SaaS (Software as a Service) 方向。

百态·数智思维 | 聚焦大数据、量化与未来AI 1414

CS 188 Project3(RL) Q10:Approximate Q-Learning

实现一个近似的Q-learning学习代理,它学习状态特征的权重,其中许多状态可能共享相同的特征。在qlearningAgents.py中的ApproximateQAgent类中编写实现,它是PacmanQAgent的子类。 注:近似Q-learning学习假设在状态和动作对上存在一个特征函数f(s,a),它产生一个向量f1(s,a) .. fi(s,a) .. fn(s,a)特征值。我们在fe...

大模型与Agent智能体 2655

【华为OD技术面试真题 - 技术面】- python面试题(1)

华为OD面试技术面准备指南 华为OD面试技术面常见问题解答 华为OD面试技术面经验分享 华为OD面试技术面注意事项 华为OD面试技术面攻略 华为OD面试技术面模拟题目与解析 华为OD面试技术面知识点梳理 华为OD面试技术面常考

算法大师! 5534

从你的全世界路过---陌陌X-SIGN还原

我们上期介绍了hook 接口方式,今天我分析so 层。学习是为了复杂的事情简单化。不用如此繁琐。跟进native_sdbyecbu37x这个函数,我们f5看伪代码 v13 = sign(v9, v10, v11, a6); 跟进这个函数 代码如下(示例): 2.代码贴入 SHA消息摘要java代码如下: java 代码如下(示例): 总结 算法,结合动态调试!

任雪飘的博客 2302

MongoDB分布式事务实现:两阶段提交、日志复制与冲突解决

MongoDB分布式事务机制解析 本文深入剖析了MongoDB 4.0+版本的分布式事务实现原理,重点分析了其在跨文档/跨集合/跨分片场景下的数据一致性解决方案。核心内容包括: 底层机制:采用改进的两阶段提交协议,通过oplog日志复制实现无中心协调器的事务管理,结合WiredTiger存储引擎和锁机制保障ACID特性。 创新设计:将传统2PC的中心协调功能分散到Primary节点,利用oplog作为事务状态记录,实现自动故障恢复和60秒超时回滚机制。 性能优化:针对大事务、写冲突等常见问题,提出拆分微事务

数据知道的博客 1261

Qt代码-军用仿真系统基础框架

ui->mapClickLabel->setText(QString("地图点击:(%.1f, %.1f)米").arg(worldPos.x()).arg(worldPos.y()));emit simulationEvent(QString("添加实体: %1 (ID: %2)").arg(attr.name).arg(entity.id()));// 像素坐标→世界坐标(米)

寒寒豆豆软件公司的博客 169

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: Android 可滑动ViewGroup
下一篇: Perfetto 使用 笔记
彼天
博客等级 码龄11年 37粉丝 85原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值