插件开发官方网站:http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started.html
下载smalidea源码 (需要从分支才能下载到)
git clone https://bitbucket.org/JesusFreke/smali.git -b smalidea
或者
git clone https://github.com/JesusFreke/smali.git -b smalidea
下载完成后,在执行git clone命令的目录下新增加一个smali目录,目录内容如图:
导入idea
打开Terminal,准备创建idea配置文件
cd smali 进入目录
gradle idea 下载所需依赖并创建idea项目文件,如果没有安装gradle,则将gradle 换成 ./gradlew,这个脚本会自动下载gradle
完成后用idea打开项目:
->打开idea
->Open
->选择smali目录
成功后如图:
smalidea显示的是插件的图标
修改SDK为intelij SDK
选中项目,右键Open Module Settings -> Modules -> smalidea -> Module SDK -> New... 按钮选择InteliJ Platform Plugin SDK,选择idea所在目录,确定后如图:
根据idea版本的不同,sdk显示的内容也不同。
添加jdi支持(蓝色高亮部分是关键)
将tools.jar添加到intelij sdk的classpath中。
添加idea源码目录
为了增强调试,可以添加idea的源码目录
转换源码
调用antlr和jflex将smaliParser.g smaliTreeWalker.g smaliLexer.jflex expectedTokensTestGrammer.g smalideaParser.g转为java源码
在之前打开的Terminal中依次输入:
gradle generateTestGrammarSource
gradle generateGrammarSource
gradle generateJFlexSource
gradle generateParserAntlrSource
指令完成后将smali模块中生成的java目录设置为源码目录:
将build->generated-src->antlr和jflex->main和test目录 右键Mark Directory As -> Sources Root
配置完成后开始编译
在Project中选中smalidea项,在Build菜单中选择Prepare Plugin Module 'smalidea' For Deployment开始编译,成功后如图: