# mvvmAsPlugin **Repository Path**: seven-os/mvvm_as_plugin ## Basic Information - **Project Name**: mvvmAsPlugin - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-16 - **Last Updated**: 2022-10-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### Android Studio 4.1中的模板插件基本说明 # 1.使用JetBrains IntelliJ 插件模板 打开 [intellij-platform-plugin-template](https://github.com/JetBrains/intellij-platform-plugin-template) 点击那个绿色按钮 Use this template 把这个项目copy到自己的Git下,然后下载下来进行相应的修改,如下图 ![](https://raw.githubusercontent.com/sionsxie/arms-template-plugin/main/imgs/1.png) # 2.修改相应位置 gradle.properties //这个是插件的Group 和包名相同就行 pluginGroup = com.android.doubleseven //这个是插件名字 pluginName = mvvm-helper-plugin //这个是插件版本 随意改 pluginVersion = 0.0.3 //如果不想调试各种版本兼容的话可以把 build.gradle.kts里的intellij里的updateSinceUntilBuild设置为false //这个是最小支持版本,就是Android Studio关于里的那个 #AI-201.8743.12. 这个AI后面的第一个数字 201 pluginSinceBuild = 201 //这个是最大支持版本,一般不用改 pluginUntilBuild = 203.* //![版本来源说明] //(https://plugins.jetbrains.com/docs/intellij/android-studio.html?from=jetbrains.org#matching-versions-of-the-intellij-platform-with-the-android-studio-version) platformVersion = 201.8743.12 //是否下载ide源码 platformDownloadSources = true //这个是平台插件复制过去就ok了 platformPlugins = java, com.intellij.java, org.jetbrains.android, android, org.jetbrains.kotlin build.gradle.kts dependencies { detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.16.0") //增加 wizard-template.jar 来源在 Android Studio\plugins\android\lib\wizard-template.jar compileOnly(files("libs/wizard-template.jar")) } src\main\resources\META-INF\plugin.xml //添加三个插件依赖 org.jetbrains.android org.jetbrains.kotlin com.intellij.modules.java # 3.添加自己的模板代码 修改src->main->resources->META-INF->plugin 参考other里的代码 # 4.生成插件Jar 如下图,运行那个都行 ![](https://raw.githubusercontent.com/sionsxie/arms-template-plugin/main/imgs/2.png) ![](https://raw.githubusercontent.com/sionsxie/arms-template-plugin/main/imgs/3.png) tip: - 入口必须为WizardTemplateProvider的派生类 - widgets里的widgets控件必须有default 属性,不然菜单里看不到模板 - wizard-template.jar这个jar和JetBrains里的wizardTemplate.plugin-xx.x.x.jar里面api可能有点不一样,已本地的为准 - 如果出现中文乱码在 build.gradle.kts tasks里的withType 加 options.encoding = "UTF-8" --- --- - **自定义文件说明** | 关键字 | 示例 | 说明 | | --- | --- | --- | | **{baseActivityPath}** |com.android.base.activity.BaseDataBindingActivity | 当前的BaseActivity地址 | |**{activityPackageName}**| com.xxx.xxx.activity |当前创建的Activity的包名 | | **{activityDataBindingPath}** | com.xxx.xxx.databinding.ActivityMainBinding | 当前的activityBinding地址 | |**{baseFragmentPath}** | com.android.base.fragment.BaseDataBindFragment |BaseFragment地址| |**{fragmentPackageName}**| com.xxx.xxx.fragment |当前创建的Fragment的包名 | | **{fragmentDataBindingPath}** | com.xxx.xxx.databinding.FragmentMainBinding| 当前fragmentDatabinding | **{viewModelPath}** | com.xxx.xxx.viewmodel.MainViewModel | 当前的viewModel地址 | | **{appRPath}** |com.xxx.xxx.R | R文件的地址 | |**{pageName}**| Main |当前面页面的名称 | |**{layoutId}**| R.layout.activity_main or R.layout.fragment_test |当前layoutId地址 |