-
Android Studio 플러그인 개발 입문 — 환경 설정부터 배포까지카테고리 없음 2026. 4. 9. 14:46

Android Studio 플러그인이란?
Android Studio 플러그인은 IntelliJ Platform SDK를 기반으로 동작하는 확장 모듈이다.
개발자는 플러그인을 통해 에디터 기능을 확장하거나, 반복 작업을 자동화하거나, 팀 전용 도구를 IDE에 통합할 수 있다.
JetBrains Marketplace에 수천 개의 플러그인이 존재하지만, 팀 내부 워크플로에 딱 맞는 플러그인은 직접 만드는 것이 가장 효율적이다.개발 환경 준비
Android Studio 플러그인을 개발하려면 별도의 IntelliJ IDEA(Community 또는 Ultimate)가 필요하다.
Android Studio 자체는 플러그인 개발 SDK를 포함하지 않기 때문에, IntelliJ IDEA에서 플러그인 프로젝트를 생성하고 대상 IDE로 Android Studio를 지정하는 방식으로 진행한다.
JDK 17 이상과 Gradle이 설치되어 있어야 하며, IntelliJ IDEA에서 "Plugin DevKit" 플러그인이 활성화되어 있는지 확인한다.준비 체크리스트:
- IntelliJ IDEA Community 또는 Ultimate 설치
- JDK 17 이상 설치 및 JAVA_HOME 설정
- Gradle 8.x 이상 (IntelliJ IDEA 번들 Gradle 사용 가능)
- IntelliJ IDEA에서 Plugin DevKit 플러그인 활성화
플러그인 프로젝트 생성
IntelliJ IDEA를 열고 File → New → Project를 선택한 뒤 IDE Plugin 템플릿을 고른다.
프로젝트 이름과 패키지명을 입력하고, Plugin SDK는 설치된 Android Studio 경로를 지정한다.
최근에는 Gradle 기반 플러그인 템플릿인 intellij-platform-plugin-template을 GitHub에서 클론하는 방법이 더 권장된다.git clone https://github.com/JetBrains/intellij-platform-plugin-template.git my-plugin cd my-plugin클론 후
gradle.properties파일에서 플러그인 정보를 수정한다.# gradle.properties pluginName = MyAwesomePlugin pluginVersion = 1.0.0 pluginGroup = com.example.myplugin # 대상 IDE 및 버전 지정 platformType = AI # Android Studio = AI platformVersion = 2024.1.1platformType = AI로 설정하면 Gradle이 Android Studio를 대상 IDE로 사용한다.plugin.xml 설정
플러그인의 메타데이터와 확장 포인트는
src/main/resources/META-INF/plugin.xml에 정의한다.
이 파일은 플러그인의 이름, 설명, 버전, 의존성, 그리고 메뉴 액션 등록을 담당한다.
잘못 설정하면 플러그인이 로드되지 않거나 다른 IDE와 충돌할 수 있으므로 정확하게 작성해야 한다.<idea-plugin> <id>com.example.myplugin</id> <name>My Awesome Plugin</name> <version>1.0.0</version> <vendor email="dev@example.com" url="https://example.com">Example</vendor> <description><![CDATA[ Android Studio를 위한 커스텀 플러그인입니다. ]]></description> <!-- Android Studio가 의존하는 플랫폼 모듈 --> <depends>com.intellij.modules.platform</depends> <depends>org.jetbrains.android</depends> <extensions defaultExtensionNs="com.intellij"> <!-- 확장 포인트 등록 --> </extensions> <actions> <!-- 메뉴 액션 등록 --> <action id="MyPlugin.HelloAction" class="com.example.myplugin.HelloAction" text="Hello Plugin" description="플러그인 테스트 액션"> <add-to-group group-id="ToolsMenu" anchor="last"/> </action> </actions> </idea-plugin>액션(Action) 구현
플러그인에서 가장 기본적인 기능 단위는
AnAction이다.
사용자가 메뉴 항목이나 단축키를 실행하면actionPerformed메서드가 호출된다.AnActionEvent를 통해 현재 프로젝트, 에디터, 선택 영역 등 다양한 컨텍스트 정보에 접근할 수 있다.// HelloAction.kt package com.example.myplugin import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.ui.Messages class HelloAction : AnAction() { override fun actionPerformed(e: AnActionEvent) { val project = e.project ?: return Messages.showInfoMessage( project, "플러그인이 정상 작동 중입니다!", "Hello Plugin" ) } override fun update(e: AnActionEvent) { // 액션 활성화 조건 설정 e.presentation.isEnabled = e.project != null } }현재 열린 파일의 텍스트를 읽거나 수정하려면
WriteCommandAction을 사용해야 한다.import com.intellij.openapi.command.WriteCommandAction WriteCommandAction.runWriteCommandAction(project) { val document = editor.document document.insertString(0, "// Auto-generated by MyPlugin\n") }툴 윈도우(Tool Window) 추가
툴 윈도우는 Android Studio 하단이나 측면에 패널 형태로 표시되는 UI 컴포넌트다.
Logcat, Build 창과 같은 형태를 직접 구현할 수 있으며, Swing 또는 Kotlin UI DSL로 내부 컨텐츠를 구성한다.plugin.xml에 툴 윈도우 확장을 등록하고ToolWindowFactory를 구현하면 된다.<!-- plugin.xml에 추가 --> <extensions defaultExtensionNs="com.intellij"> <toolWindow id="MyToolWindow" secondary="true" anchor="bottom" factoryClass="com.example.myplugin.MyToolWindowFactory"/> </extensions>// MyToolWindowFactory.kt import com.intellij.openapi.project.Project import com.intellij.openapi.wm.ToolWindow import com.intellij.openapi.wm.ToolWindowFactory import com.intellij.ui.content.ContentFactory import javax.swing.JLabel import javax.swing.JPanel class MyToolWindowFactory : ToolWindowFactory { override fun createToolWindowContent(project: Project, toolWindow: ToolWindow) { val panel = JPanel() panel.add(JLabel("My Plugin Tool Window")) val contentFactory = ContentFactory.getInstance() val content = contentFactory.createContent(panel, "", false) toolWindow.contentManager.addContent(content) } }로컬 테스트 및 배포
플러그인을 테스트하려면 Gradle 태스크
runIde를 실행한다.
이 태스크는 샌드박스 환경에서 Android Studio를 별도로 실행하며, 개발 중인 플러그인이 자동으로 로드된다.
코드를 수정한 뒤에는Build → Reload Kotlin Script나 재실행으로 변경 사항을 반영한다../gradlew runIde배포용 플러그인 패키지를 생성하려면
buildPlugin태스크를 사용한다../gradlew buildPluginbuild/distributions/폴더에.zip파일이 생성된다.
이 파일을 Android Studio에서 Settings → Plugins → Install Plugin from Disk로 설치하거나, JetBrains Marketplace에 업로드해 공개 배포할 수 있다.마무리 및 다음 단계
Android Studio 플러그인 개발은 IntelliJ Platform이라는 강력한 기반 위에서 이루어진다.
처음에는 간단한 액션 하나부터 시작해 점차 툴 윈도우, 설정 페이지, 코드 검사 기능으로 확장해 나가는 것이 효과적이다.
공식 문서인 IntelliJ Platform Plugin SDK와 JetBrains 공식 GitHub 샘플 저장소를 참고하면 더 다양한 확장 포인트와 API 사용법을 익힐 수 있다.
팀 내부 생산성 도구를 플러그인으로 만들어두면, 온보딩 시간 단축과 코드 품질 향상에 직접적으로 기여할 수 있다.