Android Maven打包批量替换资源文件(overlay换皮肤)&AAR打包依赖模块覆盖策略

1.AAR打包覆盖

主module(APK)会将AAR中同名资源覆盖:

策略如下:

资源文件例如图片,layout是采用覆盖方式。

values文件例如strings.xml是采用合并方式。

有依赖的模块只能采用aar进行打包,例如ui库等二方库。

建议将所有模块共同的resource资源放到通用module中,并且建立相应的命名机制,防重复。

以后如有业务独立的模块可以打成bundle,bundle可以看成一个独立的apk,拥有独立的资源文件

2. maven支持编译时指定res目录,(和Android overlay类似)。具体如下:

                 <artifactId>android-maven-plugin</artifactId>

                 <configuration>
+                    <resourceOverlayDirectories>
+                        <dir>res-overlay</dir>
+                    </resourceOverlayDirectories>

在android maven-plugin的configuration节点添加resourceOverlaytDirectioies节点,设置overlay目录。

打包时res-overlay会替换res下的同名资源文件。

可以用来换皮肤,替换不同版本资源文件等。

参考:

https://code.google.com/p/maven-android-plugin/wiki/ApkSourcesDependency

https://code.google.com/p/maven-android-plugin/wiki/Changelog

Android Overlay:

http://my.oschina.net/kingguary/blog/160190

时间: 2024-08-29 13:35:45

Android Maven打包批量替换资源文件(overlay换皮肤)&AAR打包依赖模块覆盖策略的相关文章

Linux命令行批量替换多文件中的字符串【转】

Linux命令行批量替换多文件中的字符串[转自百度文库] 一种是Mahuinan法,一种是Sumly法,一种是30T法分别如下: 一.Mahuinan法: 用sed命令可以批量替换多个文件中的字符串.sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录` 例如:我要把mahuinan替换为huinanma, 执行命令:sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www' 这是目

控件注册 - 利用资源文件将dll、ocx打包进exe文件(C#版)

原文:控件注册 - 利用资源文件将dll.ocx打包进exe文件(C#版) 很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到的只是一个exe,点击直接运行呢?就像很多安全控件,如支付宝的aliedit.exe那样. 现在介绍一种使用资源文件,将dll.ocx打包进exe,点击直接注册的例子: 首先,新建一个工程RegisterFile.  新建文件夹Resource,里面添加需要注册的ocx或dll.这里我添加的是dsoframer

maven打包额外的资源文件

在用Maven打包的时候发现,有一些资源文件打包不到jar包中,于是了解了一下Maven的打包配置,最后得到了解决问题的办法. Maven资源文件的默认约定 构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构,去查找和处理各种类型的文件,这就是Maven遵循的约定优于配置原则. Maven项目的标准目录结构 src — — main — — java 源文件 — — — — resources 资源文件 — — — — filters 资源过滤文件 — — — —

Android导入工程,R 资源文件无法生成

在Android中使用开源代码或者自己开发项目的时候,经常会遇到R.java文件丢失的情况,如何重新生成呢?网上一般给出这样的两种方法: 方法 1:右击你的工程(项目)——>Android Tools——>Fix Project Properties 即可.方法 2:右击你的工程(项目)——>Properties——>Android ——> 选择相应的target 然后 点击 apply 即可.但是,我今天在调试一个开源项目的时候,发现这两种方法都不可行.后来发现如果资源文件

android自学之旅——layout资源文件

本文只是我在看官方帮助文档的翻译和理解,以方便自己日后查看. 什么是layout资源文件?layout一个定义了Activity或者组件的布局的xml文件. 它一般长这样: <?xml version="1.0" encoding="utf-8"?> <ViewGroup xmlns:android="http://schemas.android.com/apk/res/android" android:id="@[+

linux 批量替换所有文件中包含的字符串

sed -i "s/原来字符串/新字符串/g" `grep 原来字符串 -rl .` 格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 转: linux下批量替换文件内容 1.网络上现成的资料 格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` linux sed 批量替换多个文件中的字符串 sed -i "s/oldstring/newstring/g&

Python-工具-批量替换EXCLE文件中某列的值

由于工作的原因,经常需要查询统计各地数据,有时结果收集上来后发现需要对其中某些列的数据进行转换,例如将代码值转成中文含义. 重新统计需要花费时间和运维精力,所以自己写了一个简单的替换脚本.当然,理想状态还是在查询统计前就把要求确认. 下面的代码复制到.py文件中,安装完成Python后,安装必要的包(xlrd.xlutils)就可以使用了.注意的是,需要替换的所有文件需和脚本文件同一目录. (脚本只能处理xls扩展名的文件,因为对xlsx处理可用的Python包没找到,但是xlsx的可以批量替换

Maven,如何筛选资源文件

如何筛选资源文件: <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> 启用筛选,默认false </resource> </resources> </build> 在src/main/resources里,新增一个application.

DedeCMS批量替换栏目文件保存目录的方法

学点sql还是很有必要的. 有时候由于栏目太多,但是要修改一下栏目的保存目录.一个一个修改真的有点费事和慢.所以想了一个方法来批量修改栏目的保存目录.就是批量替换: update dede_arctype set typedir =  replace(typedir,"{cmspath}/a/",'{cmspath}/html/') 将html替换为你指定的目录,后台SQL命令行工具运行即可 如果要批量去掉文章保存路径中的年月日,就运行这个: update dede_arctype s