昨天花了些时间, 实现了一个android studio 插件, auto generate log, 当用户选中一个变量后, 按快捷键alt+p, 插件会在下一行自动为这个变量生成打印log的代码.
顺便想谈谈开发人员的心理学, 关于开发的主观能动性, 这事我要是觉得有意义, 我就愿意静心的坐下来, 用几个小时把它实现了, 从0到开发出这个auto generate log插件, 总共也就花费了4,5个小时, 要是觉得没意义, 我就比较的急躁, 静不下心来, 一会儿看看微信, 一会儿看看微博的, 说到底还是"给自己打工"和"给别人打工", 在心态上有巨大的差异造成的这个结果.
插件开发流程.
- 必须用Intellij Idea 开发, 只有它能建立Intellij Platform Plugin 类型的工程.
- 点"Run"运行调试时, 会自动打开一个新的Intellij项目, 并在项目中自动安装好被调试的插件.
- 项目右键Prepare Plugin Model for Deployment, 就会生成*.jar 文件, 之后在android studio中的plugin设置中, 从本地安装这个插件就可以了.
- 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. ------
网友评论