gradle的使用7

1.动态添加自定义的资源
使用的是resValue方法,有3个参数,type:定义的资源类型,name:定义的资源名称,value:定义的资源的值。
注意定义类型首字母不能大写,要和value文件内容的格式相一致。

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        resValue("string","app_token","123")
        resValue 'string','build_type','release'
        resValue("bool","rel","true")
        resValue("integer","num","4")
    }
    debug{
        resValue("string","app_token","456")
        resValue 'string','build_type','debug'
        resValue("bool","rel","false")
        resValue("integer","num","5")
    }
}
 productFlavors{
    baidu{
        resValue("string","channel_name","baidu")
    }

    google{
        resValue("string","channel_name","google")
    }
}

在java代码中使用,使用方法和定义在values文件夹下的资源用法是一致的。

 String appToken = getResources().getString(R.string.app_token);
 String buildType = getResources().getString(R.string.build_type);
 getResources().getBoolean(R.bool.rel);
 getResources().getInteger(R.integer.num);
 String channelName=getResources().getString(R.string.channel_name);

android会将我们定义的资源生成在build文件中
在这里插入图片描述
打开后发现动态的生成的文件和我们自己定义的values文件下的格式是一样的
在这里插入图片描述

2.设置java的编译版本

compileOptions {
    encoding = 'utf-8'
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

设置adb选项

adbOptions{
//超时时间
    timeOutInMs=5*1000
//-l:锁定程序  -r:替换程序  -t:允许测试包 -s:把程序安装到sd卡上  -d:允许进行降级安装  -g:为应用授予所有运行权限
    installOptions '-r','-s'
}

设置dex选项

dexOptions{
//        配置dx命令时为其分配的最大的内存
    javaMaxHeapSize '4g'
//        有时代码太多,需要开启这个模式才能构建成功
    jumboMode true
//      默认true,用来配置是否执行dex libraries工程  ,如果分包可能要设置false
    preDexLibraries true
//        用来配置运行dx命令时的线程数量
    threadCount 2
}

3.删除无用的资源

设置shrinkResources true

但是必须配合下面混淆使用

minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

但是这样的清除无用资源,对于清除图片是有用的,但是对于清除布局文件是没有作用的。
当我们在代码中使用反射等方式引用资源文件的时候,使用shrinkResources就不能区分这些文件是否正被使用。需要我们使用keep方法来配置那些不想被清除的资源。

新增res/raw/keep.xml文件,在里面把需要保留的资源文件列举出来

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@drawable/aaa"/>

如果是多个的话,就用逗号, 隔开,例如:

tools:keep="@drawable/a,@layout/b,@layout/c"

keep.xml还有一个属性,是tools:shrinkMode,用于配置自动清理资源的模式,默认是safe。还有strict模式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值