Funui-overlay 如何添加theme 的 overlay
昨天更改theme主题的时候,发现所有仓库下的theme都是共用的。也就是说,如果你更改了52平台下的theme,那么你提交了代码以后,82下也会发生相应的更改。但是,昨天修改的theme属性,只在32下添加了。所以到了82下开始报错。避免的方法就是在32下打个overlay,这里解释下overlay的作用,它跟theme相似,就是根据一定的原则,对原有的代码或者资源进行替换。例如
如果你overlay中有一个xml文件,而某个应用下也有一个相同名称的xml文件,那么在编译的时候,就会用这个xml替换掉那一个进行编译。所以,你也大概能看出来它跟那个theme机制的异同点了。
相同点:资源替换覆盖
不同点:一个发生在编译期间,一个发生在运行期间
另外,它跟patch不同点就是
它是完全覆盖,patch是打入差异
具体的实现步骤
1.在相应的theme完成适配 /vendor/themes/Grass,代码如下
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="FileManager.Theme" parent="@android:style/Theme.Funui">
<item name="*android:searchViewTextColor">@color/search_color</item>
<item name="*android:searchViewTextColorHint">@color/search_hint_color</item>
<item name="*android:searchViewSearchIcon">@drawable/com_mediatek_filemanager_search_image</item>
</style> <style name="FileManager.Theme.NoActionBar" parent="@android:style/Theme.Funui.NoActionBar">
</style>
</resources>
2.到overlay目录下 /vendor/vanzo_custom/overlay_projects/vendor/themes
这个必须跟你打overlay的项目有着相同的目录
3.在这个目录下,创建相对应的应用目录mkdir Grass;cd Grass;
4.对需要替换的文件目录规则命名 res.overlay.mt6752_h560_x9pro-fhd_ousheng_cc_5m-cs_tphone
命名规则 目录(res)+overlay+项目(有固定的命名规则)
overlay:昨天弄了好久都没有效果,问题就出在这里,因为忘了增加它了
项目命名规则:这个如果你不知道,可以执行下面的指令,来找
~/PROJECT/PROJECT_V5/mt6752_h560_x9pro-fhd_ousheng_cc_kk_lte_5m-cs_mul_tphone.xml_eng_201502032103$ list_po mt6752_h560_x9pro-fhd_ousheng_cc_kk_lte_5m-cs_mul_tphone
然后你会发现如下的文件名称
--------------------------------------------------------------------------------
overlay
--------------------------------------------------------------------------------
overlay_projects/bootable/bootloader/lk/dev/logo/cmcc_lte_fhd/cmcc_lte_fhd_uboot.bmp.overlay.mt6752_h560_x9pro-fhd_ousheng_cc_5m-cs_tphone
huangfengqi 2014-12-12 14:19:29 +0800
overlay_projects/build/target/product/vanzo6752_lwt_kk.mk.custom.overlay.mt6752_h560_x9pro-fhd_ousheng_cc_5m-cs_tphone
wuhonghai 2015-01-06 19:00:43 +0800
overlay_projects/frameworks/base/core/res/res/drawable-xxhdpi/default_wallpaper.jpg.overlay.mt6752_h560_x9pro-fhd_ousheng_cc_5m-cs_tphone
cuixiaojun 2014-12-03 11:05:03 +0800
overlay_projects/frameworks/base/data/sounds/custom.overlay.mt6752_h560_x9pro-fhd_ousheng_cc_5m-cs_tphone
wuhonghai 2014-12-18 21:13:13 +0800
overlay_projects/mediatek/config/vanzo6752_lwt_kk/ProjectConfig.mk.bsp.overlay.all_mt6752_h560_projects
dingge 2014-12-16 22:39:05 +0800
overlay_projects/mediatek/config/vanzo6752_lwt_kk/ProjectConfig.mk.custom.overlay.mt6752_h560_x9pro-fhd_ousheng_cc_5m-cs
wuhonghai 2015-01-04 17:43:33 +0800
overlay_projects/mediatek/config/vanzo6752_lwt_kk/ProjectConfig.mk.lang.overlay.mt6752_h560_x9pro-fhd_ousheng_cc_5m-cs_tphone
cuixiaojun 2014-12-03 15:47:04 +0800
overlay_projects/vendor/themes/Stars/res.overlay.mt6752_h560_x9pro-fhd_ousheng_cc_5m-cs_tphone
找到自己overlay目录跟自己项目名相似的文件就行了,依照它来命名 如overlay_projects/vendor/themes/Stars/res.overlay.mt6752_h560_x9pro-fhd_ousheng_cc_5m-cs_tphone
5.把自己需要覆盖的文件目录跟文件夹拷贝 cd overlay_projects/vendor/themes/Stars/res.overlay.mt6752_h560_x9pro-fhd_ousheng_cc_5m-cs_tphone; mkdir drawable;cp vendor/themes/Grass/res/drawable-xxhdpi/ vendor/vanzo_custom/overlay_projects/vendor/themes/Grass/res.overlay.mt6752_h560_x9pro-fhd_ousheng_cc_5m-cs_tphone/drawable-xxhdpi/
6.验证自己是不是更改正确 rc;cp update_overlay_files.py build/tools/;./update_overlay_files.py ;如果你进入到相应的应用下,发现相应文件被替换掉了,说明成功了
Funui-overlay 如何添加theme 的 overlay的更多相关文章
- (转)V4L2 Video overlay, Video output, Video output overlay的区别
原文地址:http://blog.csdn.net/kickxxx/article/details/7755127 三者都是V4L2定义的接口,英文原文参见 http://v4l2spec.bytes ...
- android 在Fragment里添加Theme主题
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanc ...
- js创建弹框(提示框,待确认框)
;;} html,body{text-size-adjust:none;-webkit-text-size-adjust:none;-webkit-user-select:none;} a{color ...
- UIImagePickerController获取照片的实现,添加overlay方法 (相机取景框)
DEVELOPER.XIAOYAOLI 技术笔记 简单的利用UIImagePickerController调用iPhone摄像头获取照片的方法,同时介绍了怎么添加overlay,用于自定义预览界面 ...
- jQuery生成全页面的悬浮覆盖层效果(overlay)
可能在大家开发的过程中,往往需要自己生成一个全页面的覆盖层,以便让用户能够把注意力专注于开发者指定的某一个区域,在这里开发小技巧里,我们使用非常简单的代码生成类似的效果,如下: $("#ov ...
- SharePoint 2013/2010 中的日历重合 (Calendars Overlay)
本文介绍 SharePoint 2013/2010 中的日历重合 (Calendars Overlay). 日历重合 (Calendars Overlay)的用途就是将 不多于10个日历或日历视图聚集 ...
- 跨主机网络overlay和macvlan模型
overlay网络模型 无论是openstack还是docker都是先创建一个网络然后再创建虚机或者容器 并把创建的虚机或者容器运行在此网络中 Docker 提供了 overlay driver,使 ...
- 053、overlay是如何隔离的?(2019-03-20周三)
参考https://www.cnblogs.com/CloudMan6/p/7341487.html 不同的overlay网络是相互隔离的,我们创建第二个overlay网络 ov_net2 并运行 ...
- overlay实现容器跨主机通信
本节内容: Docker容器跨主机通信方案 环境信息 升级内核 安装docker 防火墙设置和开启内核转发 安装启动consul 启动Docker 创建overlay network 创建容器 测试容 ...
随机推荐
- div和css:行内元素和块元素的水平和垂直居中
行内元素: 水平居中:text-align:center ul水平居中:加 display:table; margin:0 auto; 此元素会作为块级表格来显示(类似 <table>), ...
- Java 中的事件监听机制
看项目代码时遇到了好多事件监听机制相关的代码.现学习一下: java事件机制包含三个部分:事件.事件监听器.事件源. 1.事件:继承自java.util.EventObject类,开发人员自己定义. ...
- 一些牛人的IOS博客,mark下慢慢学习
http://blog.devtang.com/ 唐巧的个人blog http://gracelancy.com/ Lancy's blog http://b ...
- cocos2d-x 2.2.0 怎样在lua中注冊回调函数给C++
cocos2d-x内部使用tolua进行lua绑定.可是引擎并没有提供一个通用的接口让我们能够把一个lua函数注冊给C++层面的回调事件. 翻看引擎的lua绑定代码,我们能够仿照引擎中的方法来做. 值 ...
- spring配置 quartz-config.xml
<!-- 配置调度程序quartz ,其中配置JobDetail有两种方式--> <!-- 使用MethodInvokingJobDetailFactoryBean,任务类可以不实现 ...
- 版本控制Git(1)——理解暂存区
一.svn和Git的比较 我们都知道传统的源代码管理都是以服务器为中心的,每个开发者都直接连在中间服务器上, 本地修改,然后commit到svn服务器上.这种做法看似完美,但是有致命的缺陷. 1. 开 ...
- Android 勤用RXJava compose操作符消除重复代码
相信小伙伴在使用RXJava与Retrofit请求网络时,都有遇到过这样的场景,在IO线程请求网络解析数据,接着返回主线程setData.更新View试图,那么也肯定熟悉下面这几句代码: .subsc ...
- Linux 下实现虚拟光驱功能,查看iso文件内容
1,创建挂载点(也可以不创建,直接用现有的目录) openSUSE:~ # mkdir /mnt/iso 2,挂载ISO文件至创建的挂载点 openSUSE:~ # mount -t iso9660 ...
- 手把手教你在VMware虚拟机中安装Ubuntu14.04系统
在VMware中创建完虚拟机之后,一般需要给虚拟机安装系统,比较受青睐的系统有Ubuntu和Centos,关于Centos系统的安装之前已经写过了,感兴趣的小伙伴可以戳这篇文章:靠谱的centos7. ...
- scp---远程拷贝文件
scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器硬盘变为只读read onl ...