推广 热搜:   公司  中国  行业  快速  企业  设备  上海  未来  技术 

Anroid 主题实现方案--Runtime Resource Overlay怎么制作手机主题「Anroid 主题实现方案--Runtime Resource Overlay」

   日期:2025-01-12     移动:http://www78564.xrbh.cn/mobile/quote/30399.html

简单资源替换生效流程可以进行以下几步

预制方式

  1. 生成overlay apk

  2. 将overlay apk push 到vendor/overlay目录下

  3. 重启手机

  4. 主题切换

  5. 此时若目标应用正在显示,Activity 会重新走生命周期,显示新的资源信息。

安装方式

  1. 生成overlay apk

  2. 安装apk

  3. 重启手机

  4. 主题切换

  5. 此时若目标应用正在显示,Activity 会重新走生命周期,显示新的资源信息。

生成overlay apk(Android studio

假如手机预制 默认和theme1, theme2 3个主题

制作theme1主题流程如下

a. AS内新建项目,仅保留AndroidManifest.xml 和res目录下要替换的资源文件。

b. 用系统签名对overlay app 进行签名,保持签名一致。

以空调为例,车机空调包名为com.android.car.hvac,demo overlay app包名为com.abc.theme1.hvac(theme1主题 overlay apk 包名必须满足带”theme1“, 同理theme2主题overlay apk 包名必须带“theme2”

代码结构图

AndroidManifest.xml

仅包含以下信息即可,其中targetPackage为要替换资源的app包名

 

res目录下仅保留需要替换的资源信息(values下的colors.xml , strings.xml , dimens.xml themes.xml等 和 drawables/xml目录下的资源, 不支持替换布局文件)

如colors.xml 中

 

常用adb命令

  1. 命令可以查看系统里面的overlay包以及包的状态。

adb shell dumpsys overlay

  1. 设置每个资源包的状态,设置成enable就会立即生效(具体命令可以到代码里面查到shellcommand

adb exec-out cmd overlay enable com.abc.theme1.hvac

主要控制实现代码逻辑

控制模块Androidmanifest.xml 需要权限

 
 
 

设置时序图

备注

  1. 可以替换values下的colors.xml , strings.xml , dimens.xml themes.xml等 和 drawables/xml目录下的资源, 不支持替换布局文件

  2. 2s内完成替换

  3. 替换过程中添加窗口覆盖之前页面,以保证之前页面重新绘制屏幕不闪烁,当前demo 用窗口为只包含图片的View

  4. 预制主题apk 需放在目录 vendor/overlay下

  5. 主题生效逻辑为Activity 会重新启动,因此应用需关注后台应用Activity重新启动后相关信息是否和切换前相同(输入框信息默认仍然存在, 同时需要监听setting 数据库的变化更新虚浮窗口 等非Activity ;

  6. 待替换app 使用资源 路径位于 frameworks/support/car/ 的资源尚不支持替换 ==>使用frameworks/base/core/res下的资源或者应用本身内置资源

参考链接

https://blog.csdn.net/kongbaidepao/article/details/80801366

https://blog.csdn.net/ieearth/article/details/87374289

https://blog.csdn.net/shanshan_blog/article/details/53587053

本文地址:http://www78564.xrbh.cn/quote/30399.html    迅博思语 http://www78564.xrbh.cn/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关最新动态
推荐最新动态
点击排行
网站首页  |  二维码  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号