MAC上开发android studio插件基础教程

来源:互联网 发布:php 调用setcookie 编辑:程序博客网 时间:2024/05/16 16:18

 android studio上的插件有很多,使用这些插件能大大提高我们的开发效率。说下怎么开发简单的AS插件。因为我用的是mac,就说说mac,win的类似(只需要再装下java sdk)。

这里就举个简单的例子,做一个创建activity和fragment生命周期所有方法的插件。

首先先下载IntelliJ IDEA这款IDE,android studio插件的开发不能使用android studio,而是要用InteillJ,下载链接 https://www.jetbrains.com/idea/download/#section=mac。选择下载免费的community版本就可以。然后安装,安装后启动创建新项目,创建新项目选择IntelliJ Platform Plugin




java sdk Mac系统默认是有的,不需要下载,如果是win系统先下载在指定下路径就行。然后这样一步步默认创建下去。


1. 修改plugin.xml



创建完以后大概就这样,主要看下plugin.xml这个文件,这个是配置文件,相当于android stuido里面的Androidminfest.xml。具体看下几个参数的意思:

id  这个插件的唯一识别码,跟别的插件做区分,如果你做的插件只是自己用,不发布到仓库,那可以不用改默认就可以。如果要发布,这个就需要改下。

name 插件的名字,是会显示在IDE上的

version 插件版本号

vendor email 邮箱,不发布到仓库可以不用管。

除了version,其他都做了修改,具体见图。

2.创建action

在src上右键,创建action




Groups选择的是要在哪个菜单下显示插件

创建完action后,会自动生成类下src下,也会在plugn.xml里面出现action的相关信息。


3. 实现action

创建完action,就下来就是实现action。实现action,主要就是实现actionPerformed方法,代码直接贴出来。

这个是生成activity生命周期

public class ActivityLifeCycle extends AnAction {    @Override    public void actionPerformed(AnActionEvent e) {        //获取Editor和Project对象        Editor editor = e.getData(PlatformDataKeys.EDITOR);        Project project = e.getData(PlatformDataKeys.PROJECT);        Document document = editor.getDocument();        Runnable runnable = new Runnable() {            @Override            public void run() {                document.insertString(0, getContent());            }        };        //加入任务,由IDEA调度执行这个任务        WriteCommandAction.runWriteCommandAction(project, runnable);    }    private String getContent(){        return "\n"+"    @Override\n" +                "    protected void onCreate(Bundle savedInstanceState) {\n" +                "        super.onCreate(savedInstanceState);\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    protected void onStart() {\n" +                "        super.onStart();\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    protected void onRestart() {\n" +                "        super.onRestart();\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    protected void onResume() {\n" +                "        super.onResume();\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    protected void onPause() {\n" +                "        super.onPause();\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    protected void onStop() {\n" +                "        super.onStop();\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    protected void onDestroy() {\n" +                "        super.onDestroy();\n" +                "    }"+ "\n";    }}
下面这个是生成fragment生命周期
public class FragmentLifeCycle extends AnAction {    @Override    public void actionPerformed(AnActionEvent e) {        //获取Editor和Project对象        Editor editor = e.getData(PlatformDataKeys.EDITOR);        Project project = e.getData(PlatformDataKeys.PROJECT);        Document document = editor.getDocument();        Runnable runnable = new Runnable() {            @Override            public void run() {                document.insertString(0, getContent());            }        };        //加入任务,由IDEA调度执行这个任务        WriteCommandAction.runWriteCommandAction(project, runnable);    }    private String getContent(){        return "\n"+"    @Override\n" +                "    public void onAttach(Context context) {\n" +                "        super.onAttach(context);\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    public void onCreate(@Nullable Bundle savedInstanceState) {\n" +                "        super.onCreate(savedInstanceState);\n" +                "    }\n" +                "\n" +                "    @Nullable\n" +                "    @Override\n" +                "    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {\n" +                "        return super.onCreateView(inflater, container, savedInstanceState);\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    public void onActivityCreated(@Nullable Bundle savedInstanceState) {\n" +                "        super.onActivityCreated(savedInstanceState);\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    public void onStart() {\n" +                "        super.onStart();\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    public void onResume() {\n" +                "        super.onResume();\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    public void onPause() {\n" +                "        super.onPause();\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    public void onStop() {\n" +                "        super.onStop();\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    public void onDestroyView() {\n" +                "        super.onDestroyView();\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    public void onDestroy() {\n" +                "        super.onDestroy();\n" +                "    }\n" +                "\n" +                "    @Override\n" +                "    public void onDetach() {\n" +                "        super.onDetach();\n" +                "    }"+ "\n";    }}
4.看运行效果
直接运行看效果
因为不是android studio的环境所以会有报错。这用我们的插件就完成了。
5.在android studio上的使用和发布
生成jar或者更新jar需要运行Build下的Prepare Plugin Module,我们使用这个jar就可以在android studio上使用插件
提交到仓库前需要把plugn.xml文件里的<depends>com.intellij.modules.lang</depends>注释打开,否则无法发布到android studio的仓库。然后到https://plugins.jetbrains.com/plugin/add/idea这个地址去发布就行啦,先注册个账号,提交jar,填写信息,然后等待审核。
over!

原创粉丝点击