如何使用Android Studio 开发Gradle插件

作者&投稿:漆肿 (若有异议请与网页底部的电邮联系)
如何使用Android Studio开发Gradle插件~

工具
Android Studio;
gradle插件;
sample测试插件;
步骤
在目录plugin下新建插件类MyCustomPlugin.groovy;

在目录plugin下创建文件com.micky.mycustom.properties用来指定插件实现类;


一般情况下,还需要指定插件项目名称,在plugin目录下新建settings.gradle;

编译需要在plugin目录下新建build.gradle;

创建一个插件jar文件并且存储在本地maven库里;

使用插件,在sample目录下,新建build.gradle;

执行命令;

执行gradle customTask,结果如下:

使用Android Studio开发Gradle插件的步骤:
1 创建Gradle Module
AndroidStudio中是没有新建类似Gradle Plugin这样的选项的,那我们如何在AndroidStudio中编写Gradle插件,并打包出来呢?
(1) 首先,你得新建一个Android Project
(2) 然后再新建一个Module,这个Module用于开发Gradle插件,同样,Module里面没有gradle plugin给你选,但是我们只是需要一个“容器”来容纳我们写的插件,因此,你可以随便选择一个Module类型(如Phone&Tablet Module或Android Librarty),因为接下来一步我们是将里面的大部分内容删除,所以选择哪个类型的Module不重要。
(3) 将Module里面的内容删除,只保留build.gradle文件和src/main目录。
由于gradle是基于groovy,因此,我们开发的gradle插件相当于一个groovy项目。所以需要在main目录下新建groovy目录
(4) groovy又是基于Java,因此,接下来创建groovy的过程跟创建java很类似。在groovy新建包名,如:com.hc.plugin,然后在该包下新建groovy文件,通过new->file->MyPlugin.groovy来新建名为MyPlugin的groovy文件。
(5) 为了让我们的groovy类申明为gradle的插件,新建的groovy需要实现org.gradle.api.Plugin接口。如下所示:
package com.hc.plugin

import org.gradle.api.Plugin
import org.gradle.api.Project

public class MyPlugin implements Plugin {

void apply(Project project) {
System.out.println("========================");
System.out.println("hello gradle plugin!");
System.out.println("========================");
}
}

因为我本人对groovy也不是特别熟悉,所以我尽可能的用Java语言,使用System.out.println而不是用groovy的pintln "",我们的代码里面啥也没做,就打印信息。
(6) 现在,我们已经定义好了自己的gradle插件类,接下来就是告诉gradle,哪一个是我们自定义的插件类,因此,需要在main目录下新建resources目录,然后在resources目录里面再新建META-INF目录,再在META-INF里面新建gradle-plugins目录。最后在gradle-plugins目录里面新建properties文件,注意这个文件的命名,你可以随意取名,但是后面使用这个插件的时候,会用到这个名字。比如,你取名为com.hc.gradle.properties,而在其他build.gradle文件中使用自定义的插件时候则需写成:
apply plugin: 'com.hc.gradle'

然后在com.hc.gradle.properties文件里面指明你自定义的类
implementation-class=com.hc.plugin.MyPlugin

现在,你的目录应该如下:

(7) 因为我们要用到groovy以及后面打包要用到maven,所以在我们自定义的Module下的build.gradle需要添加如下代码:
apply plugin: 'groovy'
apply plugin: 'maven'

dependencies {

compile gradleApi()

compile localGroovy()
}

repositories {
mavenCentral()
}

2 打包到本地Maven
前面我们已经自定义好了插件,接下来就是要打包到Maven库里面去了,你可以选择打包到本地,或者是远程服务器中。在我们自定义Module目录下的build.gradle添加如下代码:
group='com.hc.plugin'
version='1.0.0'
uploadArchives {
repositories {
mavenDeployer {
repository(url: uri('D:/repos'))
}
}
}

其中,group和version后面会用到,我们后面再讲。虽然我们已经定义好了打包地址以及打包相关配置,但是还需要我们让这个打包task执行。点击AndroidStudio右侧的gradle工具,如下图所示:

可以看到有uploadArchives这个Task,双击uploadArchives就会执行打包上传啦!执行完成后,去我们的Maven本地仓库查看一下:

其中,com/hc/plugin这几层目录是由我们的group指定,myplugin是模块的名称,1.0.0是版本号(version指定)。

Gradle插件开发

Gradle插件是使用Groovy进行开发的,而Groovy其实是可以兼容Java的。Android Studio其实除了开发Android App外,完全可以胜任开发Gradle插件这一工作,下面来讲讲具体如何开发。

首先,新建一个Android项目。

之后,新建一个Android Module项目,类型选择Android Library。

将新建的Module中除了build.gradle文件外的其余文件全都删除,然后删除build.gradle文件中的所有内容。

在新建的module中新建文件夹src,接着在src文件目录下新建main文件夹,在main目录下新建groovy目录,这时候groovy文件夹会被Android识别为groovy源码目录。除了在main目录下新建groovy目录外,你还要在main目录下新建resources目录,同理resources目录会被自动识别为资源文件夹。在groovy目录下新建项目包名,就像Java包名那样。resources目录下新建文件夹META-INF,META-INF文件夹下新建gradle-plugins文件夹。这样,就完成了gradle 插件的项目的整体搭建,之后就是小细节了。目前,项目的结构是这样的。

打开Module下的build.gradle文件,输入

apply plugin: 'groovy'
apply plugin: 'maven'

dependencies {
compile gradleApi()
compile localGroovy()
}

repositories {
mavenCentral()
}12345678910111234567891011

下面我们在包名下新建一个文件,命名为PluginImpl.groovy,注意有groovy后缀,然后在里面输入,注意包名替换为你自己的包名。

package cn.edu.zafu.gradle

import org.gradle.api.Plugin
import org.gradle.api.Project

public class PluginImpl implements Plugin<Project> {
void apply(Project project) {
project.task('testTask') << {
println "Hello gradle plugin"
}
}
}123456789101112123456789101112

然后在resources/META-INF/gradle-plugins目录下新建一个properties文件,注意该文件的命名就是你只有使用插件的名字,这里命名为plugin.test.properties,在里面输入

implementation-class=cn.edu.zafu.gradle.PluginImpl11

注意包名需要替换为你自己的包名。

这样就完成了最简单的一个gradle插件,里面有一个叫testTask的Task,执行该task后会输出一段文字,就像当初我们输出HelloWorld一样。



首先,新建一个Android项目。
之后,新建一个Android Module项目,类型选择Android Library。
将新建的Module中除了build.gradle文件外的其余文件全都删除,然后删除build.gradle文件中的所有内容。
在新建的module中新建文件夹src,接着在src文件目录下新建main文件夹,在main目录下新建groovy目录,这时候groovy文件夹会被Android识别为groovy源码目录。除了在main目录下新建groovy目录外,你还要在main目录下新建resources目录,同理resources目录会被自动识别为资源文件夹。在groovy目录下新建项目包名,就像Java包名那样。resources目录下新建文件夹META-INF,META-INF文件夹下新建gradle-plugins文件夹。这样,就完成了gradle 插件的项目的整体搭建,之后就是小细节了。目前,项目的结构是这样的。


安卓系统是哪个国家发明的
Android操作系统最初由美国人Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。

华为荣耀7能用北斗2.0定位吗?
1、请您登陆华为官网界面搜索对应机型介绍页面,查看规格参数中“定位”项中描述确认手机所支持的导航系统类型。目前华为手机支持的导航系统类型主要有GPS\/AGPS\/Glonass\/北斗\/伽利略等。2、如果您想确认手机实际是否可以搜到北斗导航卫星,您可以在应用市场搜索名为“androiTS GPS Test”的测试软件,安装到...

现在的手机一般是用北斗还是GPS
从麒麟930开始,集成的Hi1101四合一芯片可以同时接收GPS、北斗和GLonass三种信号。也就是说,除了任性的苹果,采用这些SOC的华为、O&V、小米、一加、魅族、HTC、努比亚等品牌的大部分型号手机都支持北斗定位!不信的话可以给你的手机装个测试软件试试,比如“GPS状态”、“北斗伴”、“AndroiTS GPS Test...

如何知道自己手机支不支持北斗?
百度搜索自己的手机型号要用百度搜索自己的手机型号,会出现这样一个界面,点击参数,就能查看到自己的手机详细参数设置,手机内存和电池容量应有尽有!先要下载一个软件,在应用商城里搜索 Androits Gps Test 点击下载安装 安装完成后打开软件 页面会有提示。点击,好的 在软件中很多以国标记的图标,这就...

怎么知道自己的手机能不能用北斗?
想要知道自己的手机到底有没有北斗系统,在手机的浏览器里搜索自己的手机型号,就可以找出手机的所有功能,自然也能查到有没有北斗了。 还有一种方法就是在手机应用商店搜索“AndroiTS GPS Test Pro”,打开手机的定位功能,安装好此软件然后运行在搜星界面可以看到红旗标识的就是北斗了。可以测试有没...

荣耀的手机会用国产导航系统吗?就是北斗导航
华为荣耀v10,华为荣耀10,华为p20,华为p20pro,华为mate10,和华为mate10pro等都支持北斗导航。要使用北斗导航是不需要有任何动作的,只要你的手机处理器芯片支持即可,接收北斗信号的芯片是一个单独的单元,它既可以是集成到处理器,也可以单独外挂。对于现在来说,大部分手机芯片都会支持北斗信号的接收...

为什么国产手机不用北斗导航?
所以,在支持北斗的手机,使用需要位置服务的软件就是使用北斗,这些需要位置服务的软件也就是客户端。当然也有些软件可以直接显示手机搜到的星,比如下面的截图,就是用AndroiTS GPS Test搜星的。美俄中仨国旗对应GPS、GLONASS、BDS三家卫星导航服务的卫星 大家可以去网上搜索一个软件AndroiTS GPS test这...

...和听音乐吗?可以的话要怎么设置啊?我的是Androi...
1;首先你的平板电脑要有蓝牙功能 2:蓝牙耳机可以打电话,前提是你的网络是通的 3:现在有针对平板电脑用的蓝牙键盘,你的平板打网格电话是OK的 4:听音乐要你的蓝牙耳机不是很菜的那种,不然还是不行的

...根本使用不了。每2秒弹一次:抱歉,进程androi
嗨!请您备份数据,进入recovery(关机,按住音量上+开机键进入recovery)清除缓存,清除用户数据,清除所有数据,使用线刷重刷一次,您先在官网下载个您需要的MIUI 最新版的线刷包。电脑装好驱动,下载个miflash刷机工具,使用线刷就可以了。下面是详细的官方刷机教程和刷机包下载链接,推荐您用第6种线刷。...

怎样才能知道自己手机是否支持北斗定位呢?
三是北斗系统创新融合了导航与通信能力,具有实时导航、快速定位、精确授时、位置报告和短报文通信服务五大功能。目前的国产品牌手机一般都是GPS、BDS、GLONASS同时结合使用。如果想亲眼看一下上述各个卫星信号的接收和使用情况,可以安装个ANDROITS GPS TEST软件,打开测试一下,就会一目了然。手机是否具备...

海林市19393129993: Android Studio怎么用 -
闾饰速效: 新建工程 安装完成后,选择默认选项点击OK即可:进入Android Studio,开始界面和Xcode有点类似,点击New project新建一个工程,新建过程和在Eclipse上差不多,这里就不赘述了.下图是开始界面:新建工程完毕后就进入了Android ...

海林市19393129993: 如何用android studio 编写一个app -
闾饰速效: Android studio作为面市不久的安卓开发工具,越来越受到大家的喜爱,这里我将介绍如何在Android studio中创建一个APP项目,并在以后经验中介绍其他有关Android studio的操作和编程方法.工具/原料 Android studio 方法/步骤1 打开软件,...

海林市19393129993: 如何使用Android Studio开发/调试Android源码 -
闾饰速效: 一、修改Android Studio(以下简称AS)的内存配置因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的机器修改studio.vmopt...

海林市19393129993: linux怎么安装android studio -
闾饰速效: 三条命令:sudo apt-add-repository ppa:paolorotolo/android-studio sudo apt-get update sudo apt-get install android-studi

海林市19393129993: androidstudio怎么逐步调试
闾饰速效: 1.在android studio中新建默认的android应用app. 2.点击菜单栏的“Run”->“Attach debugger to Android process”. 3.然后会打开“Choose Process”窗口.选中要调试的进程,然后点击ok. 4.console中会输出:Connected to the target VM, address: 'localhost:8601'. 5.transport: 'socket'.说明已经可以进行调试. 6.在MainActivity的第14行打断点,然后运行程序,可以看到程序停在断点上.

海林市19393129993: 如何从Eclipse中导入第三方库到Android Studi -
闾饰速效: 如何从Eclipse中导入第三方库(并且是带有JNI的)到Android Studio开发工具中?这里提供一种解决途径:一.直接导入源项目 二.带有JNI的第三方Library可能会报错1.报NDK的路径找不到的错误 解决:在整个项目的local_properties中填写...

海林市19393129993: android studio linux 怎么安装 -
闾饰速效: 1、下载JDK ,我下载的是jdk-7u51-linux-i586.tar.gz我这里有jvm文件夹,直接cd过去:$ cd /usr/lib/jvm/ 拷贝下载的jdk-7u51-linux-i586.tar.gz到jvm文件夹:$ sudo cp ~/下载/jdk-7u51-linux-i586.tar.gz /usr/lib/jvm 解压:$ sudo tar -zxvf jdk-7u51-linux-i...

海林市19393129993: android studio 怎么使用genymotion模拟器 -
闾饰速效: 1、注册(Genymotion是要注册才能使用的)2、下载免费版本,选择左边那个有virtualBox的,下载好就可以2、下载好后就点击安装(会安装两个软件,一个是Genymotion,另一个是VirtualBox虚拟机),一定的记住Genymotion的安装路径 ,...

海林市19393129993: 用惯了 ADT 的人怎么快速适应 Android Studio -
闾饰速效: AS和ADT差别还是很大的,但是AS有很多方便的设置来是你快速的学习和适应新的开发工具,个人建议赶学习AS并使用它作为日常的开发工具.首先你肯定要心态上确定以后要使用AS开发,那么首先了解一下AS的好处. AS的优势: 1、...

海林市19393129993: 用惯了ADT的人怎么快速适应Android Studio -
闾饰速效: 先忘掉快捷键,找个快速入门教程,写几个小程序找下感觉,用个两三天就会觉得还可以,然后慢慢熟悉下菜单和快捷键,我eclipse用了3年多了,现在用android studio几个月了,整体感觉还是相当不错的,值得花精力. 从另一个角度说,android studio是大趋势,估计迟早是要转过来的,现在studio的完成度已经相当高了,大功能上的缺陷也就还不支持ndk,一般的应用开发我觉得已经可以尝试用studio了.

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网