App中如何获取gradle的配置信息

前言

在Android开发中我们一般需要在app里获取gradle里的配置信息:

1.在程序里使用gradle里的配置项,

2.在resouce里使用gradle里的配置项?

方法一:

一,为什么使用gradle.properties?

1,对于项目而言,有时候需要配置某些敏感信息。比如密码,帐号等。而这些信息需要被很多类共同使用,所以必须有一个全局的配置

2,当需要把项目push到git上时,我们不希望别人看到我们项目的key,token等。我们可以将这些信息设置在gradle.properties中。(这一点后续需要详解)

二,如何使用gradle.properties?

1,在gradle.properties文件中进行变量初始化。

2,在build.gradle(module app)中进行变量的重定义,即将配置内容转化成java能够使用的形式

其中,buildConfigField定义的方式是buildConfigField 类型,变量名,值resValue定义的方式是resValue XML中的类型,变量名,值

3,在java中使用。

使用BuildConfig可以直接读取配置信息

注:在项目中直接使用“BuildConfig.APPNAME”,是因为系统根据build.gradle文件自动生成了BuildConfig类,该类里是一些配置常量:

4,在布局文件中使用

通过build.gradle中的配置,可以直接使用@string 访问

方法二:(不常用,推荐使用方法一)

项目中有登录页面,但平时调试的时候每次都输入用户名密码来登录太麻烦,写成固定值发布的时候又要重新替换和注释。所以就想从不同版本获得信息然后代码中控制。

在Android项目文件中的build.gradle中,在android标签下的defaultConfig标签下,可以添加manifestPlaceholders,里面可以存一些app的配置信息值,比如是否是发布版本。如下图:

这样平时编译调试的时候使用的是debug版本默认的false,发布的时候使用的是release版本为true,即只需要在代码中获取这个isRelease值就可控制登录时候是否填写用户名密码或者直接赋值固定值。那怎么获取build.gradle文件中的值呢,整个app项目中有个配置文件AndroidManifest.xml,在application标签下,可新写meta-data标签,其中的value值用${value}来表示,花括号中的value为gradle文件中的变量名。如下图:

然后代码中就可以写个工具类来获取manifest文件的meta-data的值。代码:

代码中再根据返回的值进行判断和控制即可。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • Android中使用Gradle来构建App项目的入门指南

    gradle是Android开发中引入的全新的构建系统,因为全新的构建系统主要是出于下面的目的: 1. 方便复用代码和资源 2. 构建多种版本的apk更见简单,不论是为多渠道构建不同的apk还是构建不同环境的apk(debug,release) 3. 方便配置,扩展,自定义构建过程 4. 良好的IDE集成 为什么选择Gradle? Gradle主要有以下几个有点: 1. 使用领域驱动语言(DSL)来描述构建逻辑 2. 构建脚本使用Groovy,可以方便的定制构建逻辑 3. 内建的依赖管理系统,使

  • Android实现APP环境分离(利用Gradle)

    一.环境分离简介 每个App项目,至少都会有两个环境:测试环境和生产环境.多的甚至有四个环境:开发环境.测试环境.预生产环境和生产环境.开发人员经常需要在环境之间切换,测试人员也同样.经常出现测试人员今天需要测试环境的最新版本,叫App开发人员打包一个给她,明天需要切换到生产版本,再叫App开发人员打包一个生产环境的给她.我们知道,一个App,在一台手机上要么只能是测试环境的,要么只能是生产环境的.测试人员要测试两个环境,只能不断替换不同环境的同个App,这实在太麻烦了.为了解决此问题,最好的方

  • Android App开发中Gradle构建过程的配置方法

    在build文件中使用了Android或者Java插件之后就会自动创建一系列可以运行的任务. Gradle中有如下一下默认约定的任务: 1. assemble 该任务包含了项目中的所有打包相关的任务,比如java项目中打的jar包,Android项目中打的apk 2. check 该任务包含了项目中所有验证相关的任务,比如运行测试的任务 3. build 该任务包含了assemble和check 4. clean 该任务会清空项目的所有的输出,删除所有在assemble任务中打的包 assemb

  • App中如何获取gradle的配置信息

    前言 在Android开发中我们一般需要在app里获取gradle里的配置信息: 1.在程序里使用gradle里的配置项, 2.在resouce里使用gradle里的配置项? 方法一: 一,为什么使用gradle.properties? 1,对于项目而言,有时候需要配置某些敏感信息.比如密码,帐号等.而这些信息需要被很多类共同使用,所以必须有一个全局的配置 2,当需要把项目push到git上时,我们不希望别人看到我们项目的key,token等.我们可以将这些信息设置在gradle.propert

  • C++使用MFC获取PC硬件配置信息

    本文实例为大家分享了C++使用MFC获取PC硬件配置信息的具体代码,供大家参考,具体内容如下 函数如下, 使用VS2010编译通过,在XP和Win7电脑上运行过,被注释的loop 循环用于测试此方法是否稳定: //包含的头文件: #include "afxdialogex.h" #include <windows.h> #include <sstream> #include <fstream> void Cget_systemDlg::OnBnCli

  • 浅谈Gradle 常用配置总结

    这里分享下我在日常开发中对 Gradle 的常用配置规则 一.版本号配置 当项目逐渐演进的过程中,主工程依赖的 Module 可能会越来越多,此时就需要统一配置各个 Module 的编译参数了 在工程的根目录下新建一个 gradle 文件,命名为 config.gradle ,在此文件中统一声明工程的编译属性和依赖库的版本号 ext { compileSdkVersion = 28 minSdkVersion = 15 targetSdkVersion = 28 versionCode = 1

  • Python脚本读取Consul配置信息的方法示例

    先来说一下背景,为什么要写脚本去读Consul的配置信息呢?Consul是啥呢?consul是google开源的一个使用go语言开发的服务发现.配置管理中心服务.目前公司用的是这个东西去管理项目上的一些配置信息.公司的环境是通过docker镜像的方式去部署的,镜像是通过rancher去进行管理的.这一套东西面临的一个问题是:服务每次更新之后,服务对应的ip地址是动态变化的.每次需要使用swagger去测接口的时候,都要去rancher上去重新找新的ip地址,比较麻烦.正好呢,最近部门在考虑准备做

  • 绝!不登录编辑其他用户配置信息

    注册表中的根键[HKEY_CURRENT_USER]中保存了当前登录用户的用户信息,一般在此键下修改与当前用户相关的配置信息.如果想在注册表中修改其他用户的配置信息,就必须先要用相应用户账户登录,然后再到注册表根键[HKEY_CURRENT_USER]下修改.如果要修改多个用户的配置信息,每修改一个,就要登录一次,这就显得很繁琐.那有没有在当前用户下修改多个其他用户配置信息的办法呢?有!下面我就给大家介绍一下具体的修改方法.详细步骤如下: 第一步:首先,以具有管理员权限的用户账户登录,然后打开注

  • 解决laravel5中auth用户登录其他页面获取不到登录信息的问题

    首先创建user表,里面有:id, name, password,remember_token等字段. 然后再Models添加表模型User.php <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use DB; class User extends Model

  • .NetCore获取Json和Xml格式的配置信息

    本篇将和大家分享的是:如何获取Json和Xml格式的配置信息,主要介绍的是Configuration扩展方法的使用,因为netcore的web应用在Startup中已经默认嵌入appsettings.json文件的配置信息,故而我把测试点放在在了netcore的控制台应用上:控制台上使用配置文件也是常用的事情,并且官网实例主要讲解的是json格式,对xml格式直接带过了,因此有了本篇的分享,希望能给你好的帮助: 获取Json配置信息 获取Xml配置信息 获取xml节点属性值 配置文件能否不和应用

  • django框架实现模板中获取request 的各种信息示例

    本文实例讲述了django框架实现模板中获取request 的各种信息.分享给大家供大家参考,具体如下: 在做网页程序时,request,response 是少不了的,这是最基本的东西.但 django有自己的框架,在展示层,很少用到直接去取request的内容的.我以前做过java j2ee应用,有时候,经常在jsp页面用request 直接取得想要的内容.即使是用struts,也还是可以用request 去取内容的. 现在在重新用 django 重写一套程序,数据库还是用原来的,有些东西如果

  • ASP.Net Core MVC基础系列之获取配置信息

    这一节, 我们来讲解.Net Core 是怎么获取配置信息的. .Net Core配置信息来源主要有以下几种 1.appsettings.json文件 2. User Secrets 3. 环境变量 4. 命令行参数 5. 自定义XML等等 在我们上一节新建的项目中, 已经默认有appsettings.json文件了, 并且appsettings.json默认会加载到项目中来, 至于为什么会默认加载, 我们可以通过源码进行分析, VS2017反编译不好用, F12看不到完整的代码, 这里我使用I

  • 使用MybatisPlus自定义模版中能获取到的信息

    目录 使用MybatisPlus的AutoGenerator生成代码 模版中能获取到哪些信息 MybatisPlus遇到的坑 1.导入依赖 2.配置分页配置文件和数据源 使用MybatisPlus的AutoGenerator生成代码 这个可自行官网查看,或者搜索引擎查一下一大堆可以参考的,这里就不过多叙述. 模版中能获取到哪些信息 官方没有给出在自定义模版中你能获取到哪些信息来生成你想要的代码,所以本人就看了一下源码,能获取到的信息都在com.baomidou.mybatisplus.gener

随机推荐