用IntelliJ IDEA开发Android Studio中生成MVP框架的插件

在开发过程中有很多重复的代码没有必要每次详细的编写,下面以一键生成MVP相关代码以及对应的Fragment或者Activity
首先去intellij idea官网下在开发环境,可以免费使用三十天;
1、创建插件项目,File->New ->Project 打开窗口后选择Intellij Platform Plugin,选择对应的Project SDK版本,点击Next选择位置,示意图如下:

创建插件项目.png


2、在src中创建Action帮助,New->Plugin Devkit -> Action,输入相关的信息,选择Action的分组、位置以及快捷键等想信息,选择group分组最好根据你具体的插件的功能决定,比如生成代码的功能可以在CodeMenu中也可以在NewGroup更方便,创建完成后可以在resources->plugin.xml中看到注册的Action信息,可以修改发布插件的其他相关信息;

创建Action.png


  com.hpaopao.mvp
  MvpGenerater
  1.0
  杭州×××××有限公司

  
      most HTML tags may be used
    ]]>

  most HTML tags may be used
    ]]>
  

  
  

  
  

  
    
  

  
    
    
      
      
    

    
      
    
  

3、在创建的Action类中,覆盖actionPerformed方法,加入相关的业务逻辑代码,举例:

@Override
    public void actionPerformed(AnActionEvent e) {
        // TODO: insert action logic here```
        mProject = e.getData(PlatformDataKeys.PROJECT);
        mPackageName = getPackageName();

        DataContext dataContext = e.getDataContext();
        VirtualFile file = DataKeys.VIRTUAL_FILE.getData(dataContext);
        if (file != null && file.exists()){
            mMenuRelativePath = file.getPath();
            handleMenuPackagePath();
        }else{
            throw new RuntimeException("未获取到文件夹路径!");
        }
}

4、创建生成代码的模板文件,我这里直接写到txt文件中创建时直接替换掉相关的信息,比如创建Activity的模板文件的内容:

package $packagename.activity;

import android.os.Bundle;
import $basemvppackage.mvp.BaseActivity;
import $packagename.mvp.$nameContract;
import $packagename.mvp.$nameModel;
import $packagename.mvp.$namePresenter;
import $basepackagename.R;

/**
 * @author $author
 * @Package $packagename
 * @Description: $description
 * @date $date
 **/
public class $nameActivity extends BaseActivity<$namePresenter,$nameModel> implements $nameContract.View{


    @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
     }

     @Override
     protected int getLayoutId() {
        return 0;
     }

     @Override
     protected void initPresenter() {
         mPresenter.setVM(this,mModel);
     }

     @Override
     protected void initView(){

     }

     @Override
     public void showLoading(String content) {
     }

     @Override
     public void stopLoading() {
     }

     @Override
     public void showErrorTip(String msg) {
     }

     @Override
     protected void onDestroy() {
         super.onDestroy();
     }

}

5、创建Dialog输入相关的信息,替换模板中的相关字段,比如authorName和ModuleName,运行效果如下,项目地址

Screenshot from 2017-10-19 14:26:55.png

你可能感兴趣的:(用IntelliJ IDEA开发Android Studio中生成MVP框架的插件)