欢迎大家来到IT世界,在知识的湖畔探索吧!
在使用Android Studio开发的时候,大部分人都会使用一些插件来提高开发效率,例如我们所熟知的butternife,selector,,GsonFormat等,这些分别从不同的原理来帮助我们提高开发效率,也美化了我们的代码结构。
既然插件有这么多好处,我们就来自己实现一个简单的吧,这里为了方便讲解我们,我们就以Android tintBar作为例子来讲解。Android Studio是基于Intellij IDEA,网上查找后发现好像可以在Intellij IDEA中进行插件开发,Android Studio中new project是没有plugin选项的。
软件环境:Java 8+intellij Idea(没有的请到Intellij IDEA下载),https://www.jetbrains.com/idea/#chooseYourEdition
1,新建一个项目,File->New Project,如果你是第一次创建的时候,需要为项目制定 sdk,点击右边的new按钮就好了,它会自己为你找到sdk的索引。
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图1 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图3 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
项目建好后如下:
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图5 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
说明:其中plugin.xml为项目的配置说明文件,相当于Android项目中的AndroidManifest.xml。
[html] view plain copy print?
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图7 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
-
<idea-pluginversion=”2″>
-
<id>com.your.company.unique.plugin.id</id>
-
<name>Plugin display name here</name>
-
<version>1.0</version>
-
<vendoremail=”support@yourcompany.com”url=”http://www.yourcompany.com”>YourCompany</vendor>
-
<description><![CDATA[
-
Enter short description for your plugin here.<br>
-
<em>most HTML tags may be used</em>
-
]]></description>
-
<change-notes><![CDATA[
-
Add change notes here.<br>
-
<em>most HTML tags may be used</em>
-
]]>
-
</change-notes>
-
<!– please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description –>
-
<idea-versionsince-build=”145.0″/>
-
<!– please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
-
on how to target different products –>
-
<!– uncomment to enable plugin in all products
-
<depends>com.intellij.modules.lang</depends>
-
–>
-
<extensionsdefaultExtensionNs=”com.intellij”>
-
<!– Add your extensions here –>
-
</extensions>
-
<actions>
-
<!– Add your actions here –>
-
</actions>
-
</idea-plugin>
到此,我们的环境就 搭建完成了。接下来我们新建编写插件代码。
2,编写插件
在新建的包下建一个Action类。
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图9 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图11 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
说明:Action ID:标识ID,就像Android中xml的组件@+id
Class Name:生成的类名
Name、Description:菜单选项的名字和描述
Groups:定义这个菜单选项出现的位置,比如我图中设置的当点击菜单栏Edit时,第一项会出现test的选项,右边的Anchor是选择该选项出现的位置,默认First即最顶部。
系统为我们生成的Action代码:
[html] view plain copy print?
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图7 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
-
public class PluginAction extends AnAction {
-
@Override
-
public void actionPerformed(AnActionEvent e) {
-
// TODO: insert action logic here
-
}
-
}
而在plugin.xml中也多了一段代码:
[html] view plain copy print?
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图7 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
-
<actionid=”PluginID”class=”PluginAction”text=”PluginAction”description=”PluginTest”>
-
<add-to-groupgroup-id=”CodeMenu”anchor=”first”/>
-
<keyboard-shortcutkeymap=”$default”first-keystroke=”alt Q”/>
-
</action>
这样就是实现当用户点击PluginAction菜单或者按快捷键alt +Q后的就能实现功能了。
3,创建Dialog
和Action的创建一样,Dialog也可以直接在在src或者包名下右键->new ->Dialog,新建好后是这样的。
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图13 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
然后我们点开图形化界面。
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图15 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
然后我们为当点击ok按钮的时候绑定事件。
[html] view plain copy print?
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图7 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
-
PluginDialog dialog = new PluginDialog();
-
dialog.setVisible(true);
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图17 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
4,编写一个Configurable功能
当你的插件需要或允许用户自定义一些配置时,比如我的插件允许用户定义自己想要生成的代码风格,只需用户打开Settings->other settings就会看到一个配置界面。
由于版本差异,我也没找到,这个后面补上。
5,插件部署
打开项目中的plugin.xml文件,填写相关的信息,这些信息会展示在插件库中,如下图所示。
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图19 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
点击Bulid菜单下的Prepare Plugin按钮会在项目的根目录生成jar插件,如下图所示
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图21 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
6,安装插件
打开Android sutdion,File -> Settings -> Plugins -> Install plugin from disk。
![自己实现炫酷的Android Studio插件开发[通俗易懂]插图23 自己实现炫酷的Android Studio插件开发[通俗易懂]](https://itzsg.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
7,发布插件
如果你想把你的插件提供给大家使用,还可以把插件发布到仓库,进入JetBrains官网,填写发布的相关信息,提交插件jar包,等待审核就可以了。
沟通和互动以及更多干货,欢迎关注新浪微博:@阿里云云栖社区
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/22808.html