Android studio свой плагин

Пишем плагины для Android

Введение

Итак, к примеру Вы хотите сделать скачиваемые отдельно игровые уровни или же отдельные темы для своего приложения. Сделать это можно тремя способами:

  • Организовав скачивание файлов со своего сервера во внешнее хранилище (SD card)
  • Создав отдельное приложение, которое содержит все необходимые дополнительные ресурсы
  • Здесь на хабре описывалось создание модульного приложения, но это немного не то (к слову там же автор упомянул о методе, о котором я Вам расскажу)

Со скачиванием дополнительных файлов из интернета вроде бы все понятно, главное обеспечить хороший канал для популярного приложения. Отдельное же приложение требует меньше материальных издержек, но чуть больше интеллектуальных.

Реализация

В основном приложении реализуется вся необходимая логика, в приложение-plugin’e — дополнительные ресурсы, а кроме них можно немного переделать главную Activity, которая сообщит пользователю о том, что это всего лишь плагин и направит его в основное приложение. Сделать это можно так:

Проще всего именовать packages плагинов с помощью добавления одного домена в родительский пакет. Тогда для того, чтобы из главного приложения получить список плагинов мы делаем запрос на все установленные приложения, содержащие имя текущего пакета.

Возможно немного избыточный кусок кода. Кроме простой проверки на соответствие имени пакета нашему имени здесь отметаются 2 приложения: FREE & DONATE версии моего приложения. Зная имена пакетов мы можем получить доступ к ресурсам приложений:

Подводный камень номер раз

Когда я реализовывал это в первый раз, то было попытался просто получить доступ к нужному ресурсу через R.string, R.id, etc. Но естественно (теперь уже — естественно) нумерация в R файле других apk — другая, и для начала мы должны получить id нужного нам ресурса с помощью:

В примере выше мы получили id, а дальше прочитали полученный ресурс из уже имеющегося у нас объекта типа Resources. Считывание strings применяется у меня если есть необходимость предоставить пользователю листинг имеющихся плагинов. В таком случае мы должны предоставить ему локализованные названия, добавив их в R.strings (см. любой экзампл «Пишем первое приложение..»).
При этом если мы хотим считывать layout’ы, то мы так же можем называть их фиксированными именами, после чего аналогичным образом получить из ресурсов, но тут мы натыкаемся на…

Подводный камень номер два

После того как мы сделаем inflate нашему layout’у, везде, где в xml используются ссылки на ресурсы, будут использоваться ресурсы из нашего главного приложения. Т.е. если в layout’e из плагина на кнопке стоял некий background=»@drawable/best_bg», то после прочтения layout’a на фон элементу пойдет вовсе не то, что лежит в ресурсах плагина, а нечто из основного проекта с таким же id, если оно вообще будет найдено, иначе — креш. Избегаем этого так:

Итого: мы получаем ресурсы ручками из ресурсов плагина и назначаем их на полученные (так же ручками) вьюшки. При этом для того, чтобы получить экземпляры элементов, лежащих в этом layout’e я использую конструкцию:

Источник

Android Studio Plugin Development

Introduction

Android Studio plugins extend or add functionality to the Android Studio IDE. Plugins can be written in Kotlin or Java, or a mix of both, and are created using IntelliJ IDEA and the IntelliJ Platform. It’s also helpful to be familiar with Java Swing. Once completed, plugins can be packaged and distributed at JetBrains Plugin Repository.

Читайте также:  С андроида можно управлять телевизора

Android Studio plugins are not Android modules or apps to run in the Android operating system, such as smartphones or tablets.

Configuring IntelliJ Platform Projects for Android Studio Plugin Development

To create a new Android Studio plugin project, follow the tutorial on the Getting Started with Gradle page. The tutorial produces a skeleton project suitable to use as a starting point for an Android Studio plugin. On the New Project Configuration Screen of the New Project Wizard tutorial, choose Gradle from the product category pane as described in the tutorial, not Android. Some minor modifications to the skeleton project are needed, as discussed below.

Matching Versions of the IntelliJ Platform with the Android Studio Version

For API compatibility, it is essential to match the version of the IntelliJ Platform APIs used for plugin development with the target version of Android Studio. The version number of Android Studio contains the version of the underlying IntelliJ Platform APIs that were used to build it.

To find the version of the IntelliJ Platform used to build Android Studio, use the Android Studio About dialog screen. An example is shown below. In this case, the (BRANCH.BUILD.FIX) version of the IntelliJ Platform is 191.8026.42 , which corresponds to the IntelliJ IDEA version 2019.1.4. The build.gradle configuration steps section below explains how to set the IntelliJ Platform version to match the target version of Android Studio.

Configuring the Plugin build.gradle File

The use-case of developing for a non-IntelliJ IDEA IDE is reviewed in the Plugins Targeting Alternate IntelliJ Platform-Based IDEs section of the Configuring Gradle for IntelliJ Platform Plugins page. The particular example in that section discusses configuring a plugin project for PhpStorm, so the details for an Android Studio plugin project are reviewed here.

Here are the steps to configure the build.gradle file for developing a plugin to target Android Studio:

The Gradle plugin attributes describing the configuration of the IntelliJ Platform used to build the plugin project must be explicitly set. Continuing with the example above, set the intellij.version value to 191.8026.42 . Alternatively, specify intellij.localPath to refer to a local installation of Android Studio.

Android Studio plugin projects that use APIs from the android plugin must declare a dependency on that plugin. Declare the dependency in build.gradle using the Gradle plugin intellij.plugins attribute, which in this case lists the directory name of the plugin.

The best practice is to use the target version of Android Studio as the IDE Development Instance. Set the Development Instance to the (user-specific) absolute path to the target Android Studio application.

The snippet below is an example of configuring the Setup and Running DSLs in a build.gradle specific to developing a plugin targeted at Android Studio.

Configuring the Plugin plugin.xml File

When using APIs from the android plugin, declare a dependency:

As discussed in the Plugin Dependencies section of this guide, a plugin’s dependency on Modules Specific to Functionality must be declared in plugin.xml . When using Android Studio-specific features (APIs), a dependency on com.intellij.modules.androidstudio must be declared as shown in the code snippet below. Otherwise, if only general IntelliJ Platform features (APIs) are used, then a dependency on com.intellij.modules.platform must be declared as discussed in Plugin Compatibility with IntelliJ Platform Products.

Android Specific Extension Points

See Android Plugin section in Extension Point List.

Additional Articles and Resources

Open Source Plugins for Android Studio

When learning new development configurations, it is helpful to have some representative projects for reference:

ADB Idea plugin for Android Studio and Intellij IDEA that speeds up Android development.

Читайте также:  Драг рейсинг для андроид взлом

Источник

Топ-17 плагинов для Android Studio

Существуют сотни плагинов для Android Studio, и их число растёт с каждым днём. Это в основном происходит по двум причинам. Во-первых, Android Studio — это официальная интегрированная среда разработки для создания Android-приложений. Во-вторых — Intellij IDEA, платформа, на которой основана Android Studio, позволяет разрабатывать и легко устанавливать полезные плагины, совместимые с обеими IDE. Какие плагины устанавливаете вы?

Конечно, вы можете программировать в «голой» Android Studio, просто установив необходимые библиотеки и не добавив ни одного плагина. Но зачем? Плагины для Android Studio могут сделать вашу работу более эффективной и увлекательной. Сейчас мы расскажем вам про топ плагинов Android Studio, которые смогут утроить (как минимум) вашу производительность.

В список лучших плагинов для Android Studio мы включили некоторые базовые инструменты, проверенные временем, а также ряд малоизвестных жемчужин, рекомендованных опытными разработчиками Android-приложений. Итак, вот наши любимые плагины Android Studio:

1. String Manipulation

Как следует из названия, этот плагин поможет сэкономить часы утомительной ручной работы со строками. Он позволяет изменять стиль текста (camelCase, kebab-lowercase, KEBAB-UPPERCASE, snake_case, SCREAMING_SNAKE_CASE, dot.case, нижний регистр, Заглавные Буквы, PascalCase), кодировать / декодировать, увеличивать / уменьшать, сортировать, фильтровать и выравнивать.

2. Codota

Вы только посмотрите, на что способен следующий плагин. Плагин Codota использует машинное обучение для автодополнения вашего кода. Плагин учится на примерах кода из миллионов Java-программ вместе с вашим собственным уникальным контекстом. Используемый как начинающими, так и опытными Java-разработчиками, Codota ускоряет разработку и помогает устранить те раздражающие ошибки, которые появляются в вашем коде.

В дополнение к плагину, Codota также предлагает обширную библиотеку часто используемых фрагментов Java-кода для копирования и вставки в нужное место.

3. Индикатор использования CPU

Этот простой плагин намного полезнее, чем можно подумать на первый взгляд. Поскольку ваш код и приложение становятся более сложными для компиляции и запуска, это будет сказываться на вашем процессоре. Одна из наиболее полезных функций индикатора использования процессора — это возможность генерировать дамп потока, чтобы показать, что засоряет процессор в фоновом потоке.

4. Rainbow Brackets

Скобки всегда были источником головной боли для программистов. Сколько часов было потрачено на поиск этой недостающей скобки? Хватит это терпеть!

Вместо того, чтобы сидеть и пытаться понять, какую скобку вы уже закрыли, а какую ещё нет, разукрасьте скобки с помощью плагина Rainbow Brackets.

Он поддерживает Java, Scala, Clojure, Kotlin, Python, Haskell, Agda, Rust, JavaScript, TypeScript, Erlang, Go, Groovy, Ruby, Elixir, ObjectiveC, PHP, HTML, XML, SQL, Apex, C #, Dart и другие языки.

5. Project Lombok

Сложный Java-код для Android-приложений часто может содержать много шаблонного кода (конструкторы, геттеры, сеттеры). Это может быть утомительно и трудно с точки зрения читабельности и поддержки кода. Project Lombok — это Java-библиотека, которая подключается к вашей IDE и генерирует этот шаблонный код за вас, сохраняя ваш код лаконичным и читабельным. Разница кода до и после может быть довольно ошеломляющей.

Стоит отметить, что Lombok, будучи библиотекой времени компиляции, не сделает ваше приложение более тяжеловесным. Кроме того, разработчики плагина на своём сайте предлагают много полезных ресурсов для пользователей и разработчиков плагинов.

6. Android Drawable Importer

Если вы собираетесь работать с drawable при разработке Android-приложения, то это именно тот плагин, о существовании которого вам следует знать.

Чтобы адаптировать ресурсы ко всем размерам и разрешениям экрана Android-устройств, в каждом Android-проекте есть папка drawable. Если вы были благословлены дизайнером из Рая, который предоставляет ресурсы, уже находящиеся в нужных папках с правильными именами, мы искренне завидуем вам. Но скорее всего, вам вряд ли так повезло, и вы сами переименовываете и перемещаете PNG-файлы в нужные папки.

Android Drawable Importer — это плагин, который сэкономит вам массу времени. Он позволяет импортировать отдельные ресурсы для регулирования под необходимые размеры и разрешения, целые zip-файлы для автоматического размещения в необходимые папки.

7. Vector Drawable Thumbnails

Для предварительного просмотра векторного XML-файла нужно запускать приложение. Vector Drawable Thumbnails поможет вам избавиться от этого и отобразит векторные рисунки по одному щелчку мыши.

Читайте также:  Wondershare dr fone для андроид

8. Android Drawable Preview Plugin

Когда в вашем проекте много drawable-компонентов, ориентироваться в них бывает очень сложно. Было бы неплохо, если бы в IDE был быстрый предварительный просмотр изображений, да? С Android Drawable Preview Plugin это возможно.

Этот плагин для Android Studio заменяет иконки по умолчанию в дереве файлов проекта предварительными просмотрами элементов. Но не забывайте использовать адекватные имена для drawable, это всё равно важно.

9. Name That Color

Позвольте мне начать с разрушения мифа. Не все женщины могут отличить бирюзу от цвета морской волны или цвет баклажана от цвета сливы. И для этого не обязательно быть дальтоником.

Наличие и популярность этого плагина говорит о том, что большинство разработчиков также не имеют этого волшебного навыка распознавания цветов.

Плагин Name That Color назовёт цвет, который у вас есть в буфере обмена, прямо в файле ресурсов в Android Studio, и даст название наиболее близкого соответствующего цвета. Эпоха «lighter_light_pink» в ваших xml-файлах подходит к концу.

10. bundletool

bundletool — это базовый инструмент, который Gradle, Android Studio и Google Play используют для создания Android App Bundle или преобразования app bundle в различные APK, развёртываемые на устройствах. Этот инструмент от Google необходим для более эффективной работы с APK-пакетами.

11. Butterknife Zelezny

Android ButterKnife — это библиотека для внедрения зависимостей. Как правило, это улучшает читабельность кода, позволяя сосредоточиться на логике, а не смешивать в кучу код для поиска View-компонентов или добавления слушателей.

Android ButterKnife Zelezny — плагин для Android Studio для создания инъекций ButterKnife из выбранных XML-макетов в Activity, фрагментах или адаптерах. Большинство руководств по ButterKnife, которые вы найдёте, будут рекомендовать вам установить Zelezny.

12. Android Input

Android Input — это довольно простой, но полезный плагин для Android Studio, который позволяет легко вводить текст прямо на ваше Android-устройство или эмулятор. Он запоминает последнее использованное устройство и последний введённый текст.

13. ADB Idea

Этот плагин как для Intellij IDEA, так и для Android Studio добавляет ряд полезных сочетаний клавиш для различных команд ADB-инструментов прямо в вашей IDE. Хотя это кажется излишним дополнением, разработчики говорят, что ADB Idea действительно может ускорить разработку и отладку Android-приложений.

14. adb-enhanced

Называя себя «швейцарским ножом для тестирования и разработки под Android», adb-extended — интерфейс командной строки для запуска различных сценариев. Это позволяет вам протестировать многие потенциально ошибочные поведения приложений, такие как поворот экрана, режим экономии заряда аккумулятора, режим сохранения данных, режим ожидания и предоставление или отзыв разрешений.

15. ADB WIFI

Этот плагин упрощает подключение устройства к ADB через WiFi для отладки. Как и многие другие небольшие, но удобные плагины, этот — это просто обёртка для серии команд, которые вы можете выполнить в командной строке. Но почему бы не сделать этот процесс комфортнее?

16. Here there be dragons

Here there be dragons — это плагин Intellij и Android Studio, который позволяет аннотировать ваши «нечистые» Java-методы аннотацией @SideEffect. При вызове такого метода плагин отображает маленький значок дракона.

Да и к тому же этот плагин слишком симпатичный, чтобы не включать его в наш список. Это же драконы!

17. Power Mode 2

Вы знаете, ваш код просто эпичен. Когда вы ночи напролёт кодите, а в вашей крови высокое содержание кофеина, то можно почувствовать, как ваши пальцы изрыгают огонь и сотрясают мир. Вы — Бог. И вы заслуживаете того, чтобы программировать, как Бог.

И напоследок

Прежде чем приступить к установке всех плагинов из списка, вы должны помнить, что большое количество плагинов обычно замедляет работу IDE. Подумайте о своих привычках во время написания кода и посмотрите, какие плагины будут экономить ваше время, не добавляя лишнего веса в Android Studio.

Источник

Оцените статью