# 开发环境搭建

本文档将指导您从零开始搭建 MT 插件开发环境,并创建第一个插件项目。

# 前置要求

在开始之前,请确保您的开发环境满足以下要求:

# Android Studio

推荐使用最新稳定版本的 Android Studio。

  • 下载地址:https://developer.android.com/studio
  • 推荐版本:Android Studio Hedgehog (2023.1.1) 或更高版本

# MT 管理器

需要在设备上安装 MT 管理器来测试插件。

# 创建项目

克隆官方 Demo 项目是最快速的入门方式,项目已配置好所有必要的依赖和设置。

git clone https://gitee.com/L-JINBIN/mt-plugin-v3-demo.git
cd mt-plugin-v3-demo

克隆完成后,使用 Android Studio 打开项目即可开始开发。

# 项目模块说明

本项目包含两个模块:demo 和 template

# demo 模块

  • 用途:学习参考、了解插件各个功能
  • 内容:包含大量演示代码,展示各种插件功能的实现方式
    • 翻译引擎(TranslationEngine、BatchTranslationEngine)
    • 文本编辑器扩展(TextEditorFunction、TextEditorFloatingMenu、TextEditorToolMenu)
    • UI 组件、对话框、弹出菜单等完整示例
  • 使用方式:可直接运行该模块来查看功能演示和测试插件

# template 模块

  • 用途:开发自己的插件
  • 内容:包含最基础的代码模版
    • 最小化的项目结构
    • 基本的设置界面示例(MyPreference.java)
    • 完整的项目配置文件
  • 使用方式:推荐基于此模块进行开发,根据需要添加功能

# 如何开始

  • 学习插件开发:运行 demo 模块,查看各种功能的实现方式
  • 开发自己的插件:基于 template 模块进行开发

# 项目配置

克隆的项目已经配置好所有必要的依赖和设置,您可以直接使用。以下是关键配置文件的说明。

# 配置文件说明

# settings.gradle

Maven 仓库配置,已添加 maven.mt2.cn 仓库用于下载 MT 插件依赖。

重要:必须在 pluginManagementdependencyResolutionManagement 两个位置都添加 maven.mt2.cn 仓库。

# gradle/libs.versions.toml

版本依赖配置,包含 MT 插件版本(如 1.0.0-alpha7)。

# build.gradle(模块级别)

每个模块的 build.gradle 文件包含以下关键配置:

应用插件:

  • android-application:Android 应用插件
  • mt-plugin:MT 插件构建插件
  • kotlin-android:Kotlin 插件(如果使用 Kotlin)

Android 配置:

  • minSdk: 21必须,MT 插件最低支持 Android 5.0

mtPlugin 配置块:

mtPlugin {
    pluginID = "com.example.myplugin"        // 插件唯一标识
    versionCode = 1                          // 插件版本号
    versionName = "v1.0"                     // 插件版本名称
    name = "{plugin_name}"                   // 插件名称(支持本地化)
    description = "{plugin_description}"     // 插件描述(支持本地化)
    mainPreference = "..."                   // 主设置界面(可选)
    interfaces = [...]                       // 插件对外接口列表
    pushTarget = "auto"                      // 推送目标
}

# proguard-rules.pro

混淆规则配置,如果开启了 minifyEnabled,需要保留插件接口实现类:

# 保留插件接口实现类
-keep class * extends bin.mt.plugin.api.** { <init>(...); }
-keep class * implements bin.mt.plugin.api.** { <init>(...); }

# 接口配置说明

mtPlugin {} 配置块中,有两个重要的配置项用于指定插件的接口。

# mainPreference

mainPreference 指定主设置界面类的完整路径(包名 + 类名)。

  • 可选配置:如果插件不需要设置界面可以不配置
  • 用户入口:用户在插件管理界面查看插件信息时,可点击设置按钮打开主设置界面
  • 完整路径:必须是实现了 PluginPreference 接口的类的完整路径

示例:

mtPlugin {
    mainPreference = "com.example.myplugin.settings.MainSettings"
}

# interfaces

interfaces 列出所有对外接口类的完整路径。

  • 必须配置:所有实现的插件接口都必须在此列表中注册
  • 自动识别:接口类型会自动识别,无需手动指定类型
  • 完整路径:每个接口类必须使用完整路径(包名 + 类名)

支持的接口类型:

接口类型 说明
TranslationEngine 翻译引擎
BatchTranslationEngine 批量翻译引擎
TextEditorFunction 文本编辑器功能
TextEditorFloatingMenu 文本编辑器浮动菜单
TextEditorToolMenu 文本编辑器工具菜单

示例:

mtPlugin {
    interfaces = [
        "com.example.myplugin.GoogleTranslator",      // TranslationEngine
        "com.example.myplugin.BatchTranslator",       // BatchTranslationEngine
        "com.example.myplugin.FormatCode",            // TextEditorFunction
        "com.example.myplugin.QuickActions",          // TextEditorFloatingMenu
    ]
}

注意:如果接口未在此配置,MT 管理器将无法识别该接口,插件功能将不会生效。

# 运行和调试

# 安装插件到设备

# 通过 Android Studio 运行

  1. 确保测试设备已连接并启用 USB 调试
  2. 确保设备上已安装 MT 管理器
  3. 在 Android Studio 中选择要运行的模块(demo 或 template)
  4. 点击 Run 按钮(或选择 Run → Run 'demo'Run → Run 'template'
  5. 等待 APK 安装完成,会有一个名为 MT Plugin Pusher 的应用程序被安装到设备上并自动启动
  6. MT Plugin Pusher 启动后会打开 MT 管理器的插件安装界面
  7. 点击 安装 按钮完成插件安装

注意:该方式仅供自己测试使用,生成的 mtp 文件被标记为 testOnly,无法复制到其它设备安装。

# 仅打包插件

如果需要打包可分享的插件安装包:

  1. 打开 Gradle 面板(一般在 Android Studio 右上角的侧栏)
  2. 展开对应模块 demo(或 template) → Tasks → mt-plugin
  3. 双击运行 packageReleaseMtp 任务
  4. 任务运行成功后可以在模块的 build/outputs/mt-plugin 目录找到打包好的 mtp 插件安装包

通过命令行打包:

# 打包 demo 模块
./gradlew demo:packageReleaseMtp

# 打包 template 模块
./gradlew template:packageReleaseMtp

# 快速体验

# 运行 demo 模块

demo 模块包含了完整的功能演示,运行后可以查看各种插件功能的实际效果:

  1. 在 Android Studio 中运行 demo 模块
  2. 安装插件后,进入 MT 管理器侧边栏工具插件管理MT演示插件
  3. 点击 设置 查看 UI 组件、对话框、弹出菜单的演示
  4. 文本编辑器 中测试快捷功能、浮动菜单、工具菜单等扩展
  5. 翻译模式 中查看翻译引擎的使用

# 基于 template 模块开发

template 模块提供了最基础的代码模版,适合快速开始自己的插件开发:

  1. 查看现有代码:打开 template/src/main/java/com/example/myplugin/MyPreference.java,这是一个简单的设置界面示例
  2. 修改配置:编辑 template/build.gradle 中的 mtPlugin {} 配置块,设置您的插件信息
  3. 运行测试:运行 template 模块,验证插件安装成功
  4. 添加功能:根据需要实现翻译引擎或文本编辑器扩展等功能

# template 模块说明

template 模块已包含:

  • 基本的项目结构和配置文件
  • 简单的设置界面示例 MyPreference.java
  • 语言包文件 assets/strings.mtlassets/strings-zh-CN.mtl

您可以直接在此基础上添加自己的功能,或参考 demo 模块中的示例代码。

# 下一步

环境搭建完成后,建议您按以下顺序学习:

  1. 核心概念

  2. UI 系统

  3. 设置界面接口

  4. 翻译引擎接口

  5. 文本编辑器接口

  6. 工具类

# 相关资源

如有问题,欢迎在官方论坛讨论交流。