美文网首页
一个android studio 插件开发实践

一个android studio 插件开发实践

作者: ahking17 | 来源:发表于2017-07-06 18:54 被阅读31次

    昨天花了些时间, 实现了一个android studio 插件, auto generate log, 当用户选中一个变量后, 按快捷键alt+p, 插件会在下一行自动为这个变量生成打印log的代码.
    顺便想谈谈开发人员的心理学, 关于开发的主观能动性, 这事我要是觉得有意义, 我就愿意静心的坐下来, 用几个小时把它实现了, 从0到开发出这个auto generate log插件, 总共也就花费了4,5个小时, 要是觉得没意义, 我就比较的急躁, 静不下心来, 一会儿看看微信, 一会儿看看微博的, 说到底还是"给自己打工"和"给别人打工", 在心态上有巨大的差异造成的这个结果.

    插件开发流程.
    1. 必须用Intellij Idea 开发, 只有它能建立Intellij Platform Plugin 类型的工程.
    2. 点"Run"运行调试时, 会自动打开一个新的Intellij项目, 并在项目中自动安装好被调试的插件.
    3. 项目右键Prepare Plugin Model for Deployment, 就会生成*.jar 文件, 之后在android studio中的plugin设置中, 从本地安装这个插件就可以了.
    4. SDK文档比较少, 因此使用API比较麻烦, 更多的还是得靠google.
      http://www.programcreek.com/java-api-examples/index.php?api=com.intellij.openapi.editor.Document, 这个网站还不错, 从中找到了不少有用的代码出来用.
    auto generate log插件的使用方法

    选中一个变量后, 按"Alt+p"就会自动在下面一行添加对这个变量的打印Log.
    eg.

        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            currentOffsetX = maxOffsetX * mProgress;
    JLog.i("currentOffsetX: " + currentOffsetX);
            canvas.translate(currentOffsetX, 0);
            drawBirds(canvas);
        }
    

    其中JLog是我自己封装的类,
    当然如果对外发布的话, 可以把自动生成的代码写成:

    Log.i("autolog", "currentOffsetX: " + currentOffsetX);
    

    完整的代码在:

    /home/wangxin/IdeaProjects/log
    

    refer to:
    // 用intellij开发生成的.jar插件, 在android studio安装后, 一使用就出现 NullPointerException crash, 原因是开发插件时, 没有给TestAction类创建包名, 给它添加包名后问题就解决了.
    https://github.com/roana0229/android-xml-sorter/issues/6
    //作者以开源插件ECTranslation为原型开发的一个插件, 我也是按照他的开发流程实现的quickLog插件.
    http://www.jianshu.com/p/f017097e4b26

    注册 IntelliJ IDEA 帐号:
    41676569@qq.com
    ahking17

    ------ DONE. ------

    相关文章

      网友评论

          本文标题:一个android studio 插件开发实践

          本文链接:https://www.haomeiwen.com/subject/rfhkhxtx.html