如果你或者你的成员是Android开发工程师或者JAVA开发工程师,
并且你或者你的成员使用Android Studio(本文简称AS)或者IntelliJ IDEA(本文简称IDEA)作为开发工具,
那么可以考虑继续看下,此外可以至此为止,读后面的内容无疑只是浪费时间.
我们工程师使用AS 或者IDEA时,为什么会考虑到用插件?
各有各的理由,归纳起来无外乎就是人性的贪,我们想要得更多,而IDE本身无法满足我们的需要.
如果我们更贪一点,口味更特别一点,
IDE + 现有的插件也满足不了我们全部的需要,这时大概你就会像我这样,
看看能不能自己写一个,好好满足自己.
总而言之,要不要用插件,要不要写插件,
全看自己的需要是否已经可以被源生IDE本身满足,利用现有的插件满足,自己写插件来满足.
此处插播文艺细菌:
《晚睛集》:世界是个回音谷,念念不忘必有回响,你大声喊唱,山谷雷鸣,音传千里,一叠一叠,一浪一浪,彼岸世界都收到了。凡事念念不忘,必有回响。因它在传递你心间的声音,绵绵不绝,遂相印于心。 ~ 李叔同
去年开始,甚至更早,我尤其渴望让机器越来越多地帮助我们开发应用APP.插件是可以帮助实现这个愿景的一条可选路径.
昨天WL跟我说想要很方便地生成一组Model-View-Presenter的框架代码,然后在上面填业务,刚开始我们想到远古的代码模板方式,然后想到独立的shell脚本,都不甚理想,最终我们还是回到离我们最近,陪我们时间最长的IDE, AS和IDEA上~插件开发.当一个新的问题域出现时,一个快捷键调出界面,输入关键字如"Doctor",点确定,啪一下生成了目录doctor,然后里边DoctorContracts文件(内含了View和Presenter,Interactor三个接口类)和空的实现类,想想还是蛮激动的.往后还可以直接让插件直接读api接口文档,发起api请求,验证api返回什么的...
于是先理解下要给AS/IDEA开发插件,都要用到些什么东西.
选了一个开源的英译汉插件: ECTranslation
结合这篇介绍文章,学会编写Android Studio插件,来实现一个简化版的英汉翻译插件,这样一个插件,安装运行的步骤大致是
1. 安装插件
2. 选择单词
3. 使用菜单或者快捷键触发插件事件
4. 插件通过IDEA框架提供的接口,访问当前编辑文件所选择的单词
5. 插件代码调用云端词典提供的开放api,查询单词
6. 插件代码使用JSON解析器,获得云端词典的条目
7. 插件代码弹出界面显示查询结果
插件开发-练习1
目标:开发一个空插件, 选中字符串后,触发运行插件,在对话框中显示选中的字符串"Hello World!".
步骤:
A. 下载,安装IDEA,将用它来开发插件: https://www.jetbrains.com/idea/
B. 创建plugin工程:运行IDEA > "create New Project" > "IntelliJ Platform Plugin" > 需要的话创建一个SDK
C. 右键单击 > New > Action.然后输入类名和触发入口放在"编辑"菜单第一位,设定快捷键
Messages.showMessageDialog("Hello World !","Information", Messages.getInformationIcon());
练习2: 完成学会编写Android Studio插件的剩余功能
A. 添加gson到工程: File > Project Structure...... > Global Libraries > + > From Maven... 搜索gson,选2.0以上
B. 从github工程ECTranslation拷贝类: Logger, RequestRunnable, Translation
C. 修改actionPerformed函数
D. 编译plugin: build->Prepare Plugin Module …,然后工程目录会生成zip文件,如TranslateAction.zip
E. 安装到AS或者IDEA里: Preferences -> Plugins -> Install plugin from disk,然后选择该zip文件,重启IDE, 即可.