Gradle 动态编译-利用配置文件指定不同软件版本对应的服务器地址
2016-09-06 14:24
435 查看
1.需求:
2.改进:
3.实现方式:
修改 build.gradle , 配置buildTypes 下的 buildConfigField字段
注意上面带下划线字体的部分。
这个方法需要三个参数,分别是字段变量类型,变量名,和值。比如这里的
“String”, “API_HOST”, “\”http://192.168.1.245\”” // 一定注意 右斜杠后面跟着转义字符分号
就会生成:
public static finalString API_HOST = “http://192.168.1.245“;
2.. 修改 build.gradle , 配置 defaultConfig 下的 buildConfigField字段 ,这是为了代码编译的方便,使得在各个环境下都有 API_HOST 这个字段。
buildConfigField(“String”,”API_HOST”, “\”http://192.168.1.232\”“)
3.. 配置完成后,先build工程,生成BuildConfig类,然后可以在代码中使用:
String str =BuildConfig.API_HOST;
下面是完整的配置文件:
4.利用applicationVariants.all{*}为不同版本的apk命名不同的名称。
5.生成不同版本的APK
在AndroidStudio右上侧打开Gradle窗口,双击assemble,即可同时生成各个版本的APK.如下图:
6.下面是代码演示:
1.能够在配置文件中指定不同软件版本对应的服务器地址,免除开发人员多次修改服务器地址的工作,避免错误。 2.同时生成不同版本的apk,避免重复无意义的工作。
2.改进:
思路: 引入 Jenkins 服务自动打包,在gradle脚本中,使用 buildConfigField 声明一个字段,编译成功后,会为这个字段生成静态常量,我们可以在代码中使用这个常量。然后在gradle 的 buildTypes中配置不同的编译类型(比如测试,开发,上线三种类型),每个类型指定不同的字段的值。而在成功build后,gradle会为不同的类型环境生成不同的apk包,一次性就生成了测试,开发,上线三个apk包。
3.实现方式:
修改 build.gradle , 配置buildTypes 下的 buildConfigField字段
buildTypes { release { minifyEnabled false buildConfigField("String","API_HOST","\"http://www.jinlinbao.com\"") } debug{ debuggable true minifyEnabled false buildConfigField("String","API_HOST", "\"http://192.168.1.245\"") } }
注意上面带下划线字体的部分。
这个方法需要三个参数,分别是字段变量类型,变量名,和值。比如这里的
“String”, “API_HOST”, “\”http://192.168.1.245\”” // 一定注意 右斜杠后面跟着转义字符分号
就会生成:
public static finalString API_HOST = “http://192.168.1.245“;
2.. 修改 build.gradle , 配置 defaultConfig 下的 buildConfigField字段 ,这是为了代码编译的方便,使得在各个环境下都有 API_HOST 这个字段。
buildConfigField(“String”,”API_HOST”, “\”http://192.168.1.232\”“)
3.. 配置完成后,先build工程,生成BuildConfig类,然后可以在代码中使用:
String str =BuildConfig.API_HOST;
下面是完整的配置文件:
android { signingConfigs { //签名配置 debug { keyAlias 'androiddebugkey' keyPassword 'android' storeFile file('./keystore/debug.keystore') storePassword 'android' } release { keyAlias 'china317' keyPassword 'china317' storeFile file('./keystore/express-release.jks') storePassword 'china317' } } compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.china317.zhzg.driver.application" minSdkVersion 16 targetSdkVersion 23 versionCode 2 versionName "2.0.1" } buildTypes { debug { debuggable true minifyEnabled false buildConfigField("String","API_HOST", "\"测试服务器地址\"") buildConfigField("String", "VER_ENV","\"dev\"")//自动更新版本参数 signingConfig signingConfigs.debug //签名 } release { minifyEnabled false buildConfigField("String","API_HOST", "\"正式服务器地址\"") buildConfigField("String", "VER_ENV","\"prod\"") signingConfig signingConfigs.release//签名 applicationVariants.all { variant -> variant.outputs.each {output -> def outputFile =output.outputFile def fileName; if (outputFile != null &&outputFile.name.endsWith('.apk')) { if(variant.buildType.name.equals('release')) { fileName = "应用名_${variant.buildType.name}.apk" } else if(variant.buildType.name.equals('debug')) { fileName = "应用名_${variant.buildType.name}.apk" } output.outputFile = newFile(outputFile.parent, fileName) } } } } } } repositories { flatDir { dirs 'libs' } } dependencies { compile * }
4.利用applicationVariants.all{*}为不同版本的apk命名不同的名称。
5.生成不同版本的APK
在AndroidStudio右上侧打开Gradle窗口,双击assemble,即可同时生成各个版本的APK.如下图:
6.下面是代码演示:
public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String str = BuildConfig.API_HOST; TextView txt1 = (TextView) findViewById(R.id.txt1); txt1.setText(str); } }
相关文章推荐
- 在 Android studio 中 配置Gradle 进行 “动态编译期间,指定 远程服务器地址 ,生成多个安装包”
- 在 Android studio 中 配置Gradle 进行 “动态编译期间,指定 远程服务器地址 ,生成多个安装包”
- 在AndroidStudio中配置Gradle进行 “动态编译期间,根据远程服务器地址 ,生成多类安装包”
- Gradle编译生成不同的版本,动态设定应用标题 / 应用图标 / 替换常量
- as通过gradle实现多渠道打包+使用配置文件进行版本管理+指定apk输出路径和apk文件名
- as通过gradle实现多渠道打包+使用配置文件进行版本管理+指定apk输出路径和apk文件名
- 【转】分享silverlight修改配置文件WEB.CONFIG指定服务器地址访问WCF
- 【Andrioid】在Gradle编译时生成一个不同的版本号,动态设置应用程序标题,应用程序图标,更换常数
- 【Andrioid】在Gradle中编译一次生成不同的版本,动态设定应用标题,应用图标,替换常量
- 在Gradle中编译一次生成不同的版本,动态设定应用标题,应用图标,替换常量,andrioid gradle
- 用flask开发个人博客(26)—— 利用config.py配置文件动态的创建不同的Flask对象
- Android Studio中的Gradle配置不同服务器地址以生成不同安装包”
- WCF随客户端软件一起发布,客户端自动识别WCF服务地址,不通过配置文件绑定WCF服务,客户端动态获取版本号
- 配置maven下载jar包源码文件、拷贝依赖jar到lib包、设置编译时jdk版本、根据不同环境采用不同配置
- as通过gradle实现多渠道打包+使用配置文件进行版本管理+指定apk输出路径和apk文件名
- Silverlight实用窍门系列:2.Silverlight动态加载外部XML指定地址的WebService---(动态加载外部XML文件中指定的WebService地址)
- Sqlserver 2005 配置 数据库镜像:指定服务器网络地址:该死的完全限定域名(fully qualified domain name:FQDN)问题
- Fetion分析之二:服务器地址从何而来——变态的配置文件
- 利用Jakarta Commons Digester匹配xml配置文件信息与其对应的xml规则文件形成Java Object
- 利用Jakarta Commons Digester匹配xml配置文件信息与其对应的xml规则文件形成Java Object