合理利用gradle的占位符功能
1.gradle中可以声明字符串或者其他变量,然后再buildType中使用buildConfigField 来往BuildConfig文件中插入一个字符类型的常量,如下
先声明
def umengDebugKey = 'xxxxxxxxxxxxxx'
然后是使用
android {
.....
buildTypes {
debug {
applicationIdSuffix '.dev'
buildConfigField "String", "UMENG_KEY", "\"${umengDebugKey}\""
}
release {
minifyEnabled true
shrinkResources true
}
}
....
} 编译之后你就会发现在buildConfig文件中多出来一行,
public static final String UMENG_KEY = "559a2ffa67e58e516a001d36"; 而buildConfig文件是个java文件,可以在任何一个类中访问的。
另外,这个地方可以插入的除了string 还可以是其他基本数据类型,int等都是可以的哦! 2.除了可以在buildconfig文件中插入字段外,我们还可以在res文件中插入内容,方式和上面的基本类似
debug {
applicationIdSuffix ".debug"
buildConfigField "String", "API_URL","\"http://test.example.com/api\""
buildConfigField "boolean", "LOG_HTTP_CALLS", "true"
resValue "string", "app_name", "Example DEBUG"
}
然后就可以直接通过R.string.app_name访问该字段了。
另外,通过试验发现,如果在主工程和lib工程中同时定义该字段的话,lib中访问到的也是主工程的该字段。
这样可以实现,从主工程传递字符串到lib工程中。 3.
build.gradle文件中有applicationid、version、versioncode等的属性,而这些都是可以在manifest文件中直接访问的,访问的方式就是
<uses-permission android:name="${applicationId}.permission.MIPUSH_RECEIVE"/>
这种方式可以非常方便的实现有些第三方库必须绑定包名的情况,然后你可以将第三方库封装到lib中,然后在lib的manifest文件中,通过这种方式定义好包名,最终生成的包的manifest中
这个字段就是主工程的applicationid了。
合理利用gradle的占位符功能的更多相关文章
- Android Gradle manifestPlaceholders 占位符详解
Android Gradle manifestPlaceholders 占位符详解 在实际项目中,AndroidManifest里十几个地方的值是需要动态的改变(生成apk文件的时候).如果每次去改也 ...
- Adaptive Placeholder – 自适应的占位符效果
在早期,我们都是通过使用 JavaScript 来实现占位符功能.而现在,HTML5 原生提供的 placeholder 属性让我们在现代浏览器轻松就能实现这样的功能.这里向大家分享一个自适应的占位符 ...
- python基础学习之简化占位符和格式化的概念
简化版占位符有哪些? %s 字符串占位符,代表该位置有一个字符串待替换(万能) %d 数字占位符,代表该位置有一个数字待替换 %f 同上,这里是浮点数,float[默认保留6位小数] % ...
- C# 利用占位符替换word中的字符串和添加图片
利用占位符替换word中的字符串和添加图片 ///<summary> /// 替换word模板文件内容,包括表格中内容 /// 调用如下:WordStr ...
- 利用js实现placeholder占位符,甩开ie不兼容
正常的写法 <input type="text" placeholder="占位符"> 这种写法ie低版本的支持不友好,为了满足某些测试或者产品的变 ...
- Spring 利用PropertyPlaceholderConfigurer占位符
Hey Girl 博客园 首页 博问 闪存 新随笔 订阅 管理 posts - 42, comments - 3, trackbacks - 0 Sp ...
- Android 图片加载库Glide 实战(二),占位符,缓存,转换自签名高级实战
http://blog.csdn.net/sk719887916/article/details/40073747 请尊重原创 : skay <Android 图片加载库Glide 实战(一), ...
- 深入Spring Boot:那些注入不了的Spring占位符(${}表达式)
Spring里的占位符 spring里的占位符通常表现的形式是: <bean id="dataSource" destroy-method="close" ...
- Spring实战(八)bean装配的运行时值注入——属性占位符和SpEL
前面涉及到依赖注入,我们一般哦都是将一个bean引用注入到另一个bean 的属性or构造器参数or Setter参数,即将为一个对象与另一个对象进行关联. bean装配的另一个方面是指将一个值注入到b ...
随机推荐
- iOS中文网址路径转换URLEncode
如果返回的URL中有中文可以用此方法转换 今天发现一个蛋疼的问题,服务端返回的urlString里面有时含有中文,使用 [NSURL URLWithString:urlString]生成URL对象时, ...
- 2014 NOIP 赛前自我整理提醒。
空谈WA,实干AC. 所以作为一个就要上战场的OIer ,实干当然是最重要,但刷题不在多,要点牢记是关键,虽然本渣没记住多少,但还是列几点值得注意的小点. 1.战场上容不得失误. 对于每日都要敲键盘的 ...
- AOP基础—代理模式
代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会存在关联关系,一个代 ...
- CSS3入门--线条动画特效实例
HTML: <div></div> CSS: div{ width: 200px; height: 200px; margin: 200px auto; background: ...
- Hollister Outlet Store
(link to hollisterco site), It's a major try. After a photographer's viewpoint, Which roughly splend ...
- 跨域资源共享(CORS)问题解决方案
CORS:Cross-Origin Resource Sharing(跨域资源共享) CORS被浏览器支持的版本情况如下:Chrome 3+.IE 8+.Firefox 3.5+.Opera 12+. ...
- iOS 8 TabBar 图片显示真实颜色
“展信颜开” 我怎么想到这个词了呢……因为这个足以表达我现在的心情,有解决了一个问题,有了一个收获. 早上小伙伴问我“用自带的tab改图的颜色他会不显示?改tabitem.”我记得是可以显示的,但是他 ...
- Djanog结合jquery实现ajax
最近想在使用django的基础上通过jquery实现页面局部刷新的功能,研究了两天,终于是解决了这个问题,下面把方法步骤记录下来,以备以后重用. 在项目中通过两种形式实现了ajax: 第一种方法:we ...
- Maven 导出依赖Jar,生成source.jar,javadoc.jar
下载最新版的Maven http://maven.apache.org/download.cgi 解压到本地文件夹 新建环境变量 MAVEN_HOME maven解压目录 在path加 ...
- MYSQL 处理批量更新数据的一些经验。
首先,我们需要了解下MYSQL CASE EXPRESSION 语法. 手册传送门:http://dev.mysql.com/doc/refman/5.7/en/control-flow-functi ...