试一试 keep.xml

Android Studio 真是太好用了,比如有个下面的选项,可以自动删减一些无用的资源文件。

shrinkResources true

注:在 [ minifyEnabled true ] 的情况下有效

一般情况下,手动懒得删除的资源文件,在编译的过程中都会被删掉。一般情况下很好用,当然也有但是。

如果一些代码里通过反射的方式使用了资源,这个选项有可能造成一些资源被误删掉,导致 app 运行时异常。

这时就该 keep.xml 出场了。

一个 keep.xml 是如下所示格式

<?xmlversion="1.0"encoding="utf-8"?>
<resourcesxmlns:tools="http://schemas.android.com/tools"
    tools:keep="@drawable/mobvista_*,@values/mobvista_*,@layout/mobvista_*,@drawable/dm_mv_*,@drawable/tao_phone_*,@color/white,@color/app_wall_tab,@color/main_color,"
/>

这个文件可以放在 res/xml/ 中或其他文件夹下,这个文件本身不会添加到 apk 中。只是指示哪些资源文件是要保留的。

参考 https://developer.android.com/tools/help/proguard.html

时间: 2024-10-14 05:34:57

试一试 keep.xml的相关文章

浅试txt文件与xml文件互相转换

最近遇到了txt文件和xml文件互相转换的问题,于是自己写了写,不算深,只是简单的互相转换,下面把代码共享一下,欢迎大家指点. 先看结果: 这是数据表里面查询出来的  select * from 表名 将数据表导出到txt文件中: 将上述的txt文件转换成xml文件: 由于屏幕截图问题,一个屏没截完整,最后没问题的. 又将xml文件转换成txt文件 : 第一步:获得txt文件数据源,首先找一个数据表把里面的数据导出到txt文件中,以逗号隔开.如下: 配置文件和读取数据类就不多说了,默认的 . 从

[歪谈]物质激励如果不管用了,不妨试一试精神管理

[申明]本文是“歪谈”风格,仅用于和大家探讨观点,提高大家的思维性.错误之处在所难免,欢迎大家的批评指正. 今天我们简单探讨一个话题:团队的精神管理. 前几天和一些创业者在一起聚会,大家讨论的话题无外乎生意难做.钱难收.创新难.用户口味太难捉摸外,不过类似这些问题似乎都比较容易找到答案或者你和我互相借鉴的方案.譬如: 1.A创业者说钱难收,B创业者说正好认识该客户,他去说道说道,A创业者当即表示只要把尾款结了立马给B创业者提成. B创业者捂着嘴说:不要.不要,太客气了. 接着又问:提成多少捏?!

myeclipse激活法,可以试一试

我的myeclipse2014也是这样激活: 第一步:输入任意用户名 第二步:点击Systemid... 按钮,自动生成本机器的systemid. 第三步: 点菜单Tools->RebuildKey 第四步:点击active按钮.会在显示区域生成 LICENSE_KEY ACTIVATION_CODE ACTIVATION_KEY(这三个值现在先不用急着去myeclipse中激活,接着下面的步骤就行) 第五步:打开菜单Tools->ReplaceJarFile,弹出文件选择对话框,到MyEcl

C#实现Dll(OCX)控件自动注册的两种方法 网上找的 然后 自己试了试 还是可以用的

尽管MS为我们提供了丰富的.net framework库,我们的程序C#开发带来了极大的便利,但是有时候,一些特定功能的控件库还是需要由第三方提供或是自己编写.当需要用到Dll引用的时候,我们通常会通过“添加引用”的方式将它们纳入到项目中,然后就可以像使用自己的类一样方便的使用它们了.但是,有些Dll库(OCX)文件是需要注册到Windows注册表后才能正常添加和使用的.本文介绍两种为Dll库(OCX)自动注册的方法,为大家提供参考. 首先,大家都知道在Windows的“运行”中,输入“Regs

c/c++(疑5) 说了那么多,来试一试最简单的

以最简单的一维数组说明: #include <stdio.h> #include <stdlib.h> void main() { int arr[] = {1,3,5}; //一般数组赋值 int arr1[3]; for (int i =0; i < 3; i++) { arr1[i] = arr[i];//这个没什么好说的了 printf("arr1[i] =%d\n", arr1[i]); } //指针数组赋值 int *arr2[3];//指针数

关于w3school的html5部分output 元素实例代码(点亲自试一试进去)的问题纠正

修复: 将原来的 =  号修改成 <input type="button" onclick="resCalc()" value ="=" />,否则没有事件去激活JS计算方法: 原文网址:http://www.w3school.com.cn/tiy/t.asp?f=html5_form_output <!DOCTYPE HTML><html><head><script type="t

抡着斧头打算试一试

http://v.qq.com/page/g/a/z/d0414wta5q5.html http://v.qq.com/page/g/a/z/d0414ww8735.html http://v.qq.com/page/g/a/z/d0414wx4sw1.html http://v.qq.com/page/g/a/z/d0414wx4sw1.html http://v.qq.com/page/g/a/z/d0414xdis9n.html http://v.qq.com/page/g/a/z/d04

除了FTP备份之外 你该试一试多备份

FTP(FileTransferProtocol)作为一种文件传输协议,是一种常见的备份方式,好处表现在其操作简单,但是,FTP同样拥有一些无法克服的缺点,比如无备份版本管理,上传存在进制选择问题.在云计算发展的当下,基于数据备份的SaaS应用逐渐被主流备份服务所接受,今天,我们通过FTP备份与多备份的对比,带你领略一下SaaS应用的闪光点.

列表:动手试一试

1.for循环打印1-20(含) for i in range(1,21): print(i) 2.创建列表,包含1-1000000,for循环打印 a=list(range(1,1000001)) for i in a: print(i) 3.计算1-1000000的最大最小值以及和 a=list(range(1,1000001)) print(min(a)) print(max(a)) print(sum(a)) 4.通过函数range创建 列表包括 1-20的奇数,在使用for循环打印 f