
gradle
文章平均质量分 72
JabamiLight
这个作者很懒,什么都没留下…
展开
-
Android自定义Gradle插件来处理注解
熟悉Java注解处理器的朋友,肯定会了解如butterknife,dagger之类的框架,这类框架都是在编译阶段处理注解来生成辅助类,从而不需要再写很多机械的代码。这里我们换一种思路,不使用Java的注解处理器,直接使用Gradle来处理注解并生成类。注意:这篇文章仅提供一种注解处理的思路,不会考虑太多程序的健壮性。话不多说,直接开始吧。在Android Studio中创建Gradle插件...原创 2018-05-07 15:30:09 · 3346 阅读 · 6 评论 -
Android Studio上传aar到JCenter简单教程
这篇文字主要讲解如何上传到JCenter中央仓库,如果想要看如何上传到私服Maven,可以参考我的上一篇文章https://blog.youkuaiyun.com/a568478312/article/details/80166281。百度的很多资料都异常繁琐,其实很多东西都不用管,这篇我将尽量写最简单的过程,适用于有一定经验的Android Studio开发者。注册JCenter账号https://...原创 2018-05-02 18:08:27 · 737 阅读 · 0 评论 -
Android Studio上传aar到私有maven仓库
自从使用Android Studio来进行项目开发后,gradle就成了新的项目管理工具,对于第三方库或者插件的管理都十分方便,而我们想要自己的库也能像这样使用: implementation 'xxxx:xxxx:1.0.0'我们就需要将自己的库上传到jcenter()或者自己搭建的maven服务器。Win10上传aar到私有maven服务器首先我们下载对应版本的...原创 2018-05-02 15:30:34 · 5622 阅读 · 2 评论 -
Android Gradle Task使用详解
Gradle作为一个构建工具,除了插件给我们带来的task,我们也可以自定义很多变量,task,或者继承某些task来重新指定输入输出文件等。首先我们要明确一下Gradle的周期,简单来说,一个Gradle任务执行的时候会有三个步骤。Gradle会分析构建脚本,通过setting.gradle配置的项目对应生成settings与project类的实例。初始化配置,通过执行各个项目build...原创 2018-04-27 17:58:16 · 8442 阅读 · 0 评论 -
Android Gradle 3.1常用属性
对于gradle的属性,大家可以自行查看文档,我主要从文档中总结一些常用的。 文档:http://google.github.io/android-gradle-dsl/ 现在的Android Studio 3.0版本以上已经使用了3.0以上的gradle插件,所以直接看最新的文档。注意:本文的属性不管是application还是library都是android{}下的。只有极少数的属性是只在...原创 2018-04-27 10:53:40 · 1652 阅读 · 1 评论 -
Android Gradle DSL 参考配置文档
构建脚本有很多,比如maven,或者ant之类的,但是用xml写的话就略显繁琐,很多繁琐的符号在工程太大的时候不利于维护和管理,而gradle的dsl则未我们带来了更加直观的配置体验。 DSL (Domain Specific Language)领域专用语言。使用DSL,可以扩展Gradle的语义,使用者可以通过DSL完成需要的配置,而不用关心具体的实现。 其实看了官方解释也不是太明白是什么东...原创 2018-04-23 17:53:00 · 1211 阅读 · 0 评论 -
Groovy语法学习(十)AST的使用
在开发Android项目中,经常会用到AbstractProcessor来构建注解处理器。在编译的时候生成代码,从而减少工作量。使用非常广泛的butterknife就是如此,但是最新版的github貌似是使用gradle插件来尽心生成,不过原理应该都类似,编译的时候通过对应的注解生成一些辅助类,或者主动注入一些方法。Groovy的AST就是类似的用法,由于Groovy的动态性,在AST中能做的事情...原创 2018-04-20 18:05:28 · 3460 阅读 · 0 评论 -
Groovy语法学习(六)JSON、XML使用
groovy对于json和xml的生成和解析不需要额外导入库了,直接调用api使用。一、JSON(一) JSON字符串创建1.使用JsonBuilder类JsonBuilder有call()方法传入closure,所以可以接像下面这样写,相当于调用call方法。def builder = new JsonBuilder()builder{ name'j...原创 2018-04-20 10:33:43 · 1471 阅读 · 0 评论 -
Groovy语法学习(九)MOP探索之方法合成与委托
groovy不仅能方法注入,也可以方法合成,利用之前说的methodMissing方法。我们知道在找不到方法的时候会回调这个方法,然后我通过错误回调的时候进行方法注入。方法合成class Manager { def methodMissing(String name, def args) { println 'missing method' ...原创 2018-04-18 17:57:38 · 408 阅读 · 0 评论 -
Groovy语法学习(八)MOP探索之动态类与方法注入
groovy作为一门动态语言,使用非常灵活。MOP中提供了动态类与运行时的方法注入,整理了一下使用方法。一、动态类def expando =new Expando(name:"hello",fun1:{println "fun1"})println expando.name//这里这样使用依然会报错,相信也是只生成了方法//println expando.@namee...原创 2018-04-18 17:56:50 · 554 阅读 · 0 评论 -
Groovy语法学习(七)MOP探索之方法调用流程
groovy是一门具有元对象协议(Meta Object Protocol)或称 MOP的语言。在运行时向一个对象传递方法,或者消息时,这个协议使对象可以作出影响它自己的状态或者行为的特定选择。简单的说我们可以在运行时改变、增减类或者对象的方法、属性等,让其行为在运行时进行改变。这个在java里看起来四虎有些不可思议,但在groovy里可以简单的实现。 我们先看一张图,然后通过例子来理解一下。 ...原创 2018-04-12 15:56:37 · 1105 阅读 · 0 评论 -
Groovy语法学习(五)运算符重载
groovy同样具有运算符重载的功能,其实运算符也是调用类中的具体方法,使用运算符看起来更加简洁,容易理解。 简单重载一个减法class Money{ def number def minus(o){ if(o instanceof Money){ number-=o.number }else if(o inst...原创 2018-04-12 11:21:40 · 831 阅读 · 0 评论 -
Groovy语法学习(四) 闭包总结
groovy中的闭包,也就是Closure。接触过lambda或者kotlin的同学肯定知道,在java中如果有类似于setxxxListener之类的方法,直接传入一个接口(如果接口只有一个方法,就叫做函数式接口)。然后接口里方法外包装的一层完全没有作用,然后lambda表达式出现解决了这个问题,在java8中就可以使用。Closure就类似于这种形式,不过闭包中有更多的实现,下面来总结一下。...原创 2018-04-11 16:56:33 · 829 阅读 · 0 评论 -
Groovy语法学习(三) 扩展方法
groovy为jdk增加了很多扩展方法,让我们更加方便的使用,这里我们就来实现一下自己的扩展方法。首先我们先看一下groovy的扩展方法是如何实现的。groovy中我们可以这样使用Thread.start { println "start"}public static Thread start(Thread self, Closure closure) { ...原创 2018-04-11 11:59:09 · 2200 阅读 · 0 评论 -
Groovy语法学习(二) 集合的使用
Groovy的集合主要总结list以及map一、List直接使用[]来新建def list1=[1,2,3,4]def list2=[5,6] as LinkedListprintln list1.classprintln list2.class结果:class java.util.ArrayListclass java.util.LinkedList使...原创 2018-04-10 17:58:45 · 443 阅读 · 0 评论 -
Groovy语法学习(一) 基本语法
Groovy很像java,甚至可以直接在groovy文件中直接写java代码,这点Kotlin就做不到了,本章基本语法主要说一下变量定义,循环,字符串、类以及一些和java语法的区别。这篇文章是鉴于对java比较熟悉的基础上来阅读的,如果没不了解编程语言可能读起来会稍微困难。一、基本语法(一) 变量首先注意几个点groovy默认的权限是public,似乎没有了类似java...原创 2018-04-09 18:22:39 · 1623 阅读 · 0 评论