Android studio подключить aar

Что Такое .Aar Библиотеки?

Published Jul 15, 2015 by Andriy Druk

Уже прошло больше года с анонса Android New Build System, работа над которой кипит и по сей день: в экспериментальной области все еще находится несколько увлекательных возможностей Jack and Jill Tool Chain и NDK Integration.

Но одной из самых ожидаемых возможностей новой системы сборки стала поддержка aar бибилотек — нового бинарного формата бибилотек, который в отличии от jar бибилотек может содержать android ресурсы (res, assets, native libraries, etc). В это статье я хотел поделиться своим опытом работы с aar бибилиотеками.

1. Что такое .aar бибилотеки?

Официальная документация говорит о том что aar — это бинарный дистрибутив Android Library Project и прдеставляет собой zip файл с расширением .aar, котороый содержит:

  • /AndroidManifest.xml (mandatory)
  • /classes.jar (mandatory)
  • /res/ (mandatory)
  • /R.txt (mandatory)
  • /assets/ (optional)
  • /libs/*.jar (optional)
  • /jni/ /*.so (optional)
  • /proguard.txt (optional)
  • /lint.jar (optional)

Разберем подробней. AndroidManifest.xml это оригинальный манифест с вашей библиотеки. Файл сlasses.jar содержит скомпилированные java классы библиотеки (они будут слиты с остальными во время компиляции основного проекта). Исходя из документации R.txt это выходной файл aapt (Android Asset Packaging Tool) с флагом –output-text-symbols, тоесть это часть вашего R.java который будет слит с остальными результатами работы aapt при сборке основного проекта. Далее идут директории assets, res, libs и jni, которые содержат оригинальные файлы из каталога src вашей бибилотеки (часть содержимого каталога res может быть удаленно после выполнения обфускации). Файл proguard.txt копируется из вашей root директории библиотеки для того чтобы передать правила обфускации в основной проект. При работе с .aar стоит учитывать что если флаг minifyEnabled в build.gradle файле вашей библиотеки установлен в true, то при сборке она будет обфусцирована. Также aar бибилитека может содержать пользовательские lint правила в lint.jar, они будут распостраняться и на основной проект.

2. Как посторить .aar библиотеку?

Для того чтобы построить aar бибилотеку достаточно выполнить ./grdlew assemble в корне вашего проекта. Эта команда соберет все flavour и buildTypes. Но по причине ограничений gradle по умолчанию приложениями будет использоваться всегда defaultRelease сборка вашей aar бибилотеки. Если вы хотите поменять default конфигурацию, это можно сделать так

В первом случае в качестве default конфигурации используется debug build, во втором debug build варианта flavor1. Кроме того вы можете включить публикацию всех конфигураций:

3. Как подключить .aar бибилиотеку?

Существует 4 способа подключения aar библиотек:

  • Подключение в качестве модуля
  • Плоский репозиторий (Flat directory)
  • Локальный репозиторий (Local maven repo)
  • Удаленный репозиторий (Remote maven repo)

3.1 Подключение модуля

Это пожалуй самый простой способ и с ним знакомо большинство Android разработчиков. Вы можете импортировать библиотеку как модуль в ваш проект и установить зависимость в своем основном проекте следующим образом:

Такой подход позволяет вам легко вносить изменения в код вашей библиотеки и тут же получать aar при перекомпиляции. По большому счету вам даже не стоит задумывать о том что aar файл строится при сборке вашего проекта, в данном случае он выступает лишь в роли промежуточного звена сборки. Дальше мы расмотрим подходы подлючения собраных aar файлов.

3.1 Плоский репозиторий

Самый простой способ подключения aar бибилотек в собраном виде это простое копирование в директорию проекта. Для того чтобы установить зависимость на такой файл нужно включить директорию в список своих репозиториев в build.gradle

После этого можно подключать библиотеку:

Версия бибилиотеки и namespace в данном случая ни на что не влияют, так как flatDir репозитории их просто игнорируют.

3.2 Локальный репозиторий

Для использования такого подхода вам нужен maven репозиторий разположений локально на вашем компьютере. Существует множество готовых gradle плагинов для публикации aar бибилиотек, но мы воспользуемся консольной устилитой mvn. Для начала следует проверить наличие установленого maven в вашей системе.

Если он отсутвует, его следует установить. Для публикации артефакта (в нашем случае .aar библиотеки) в репозиторий используйте команду:

На самом деле команда mvn install выполнит копирование вашего aar файла в директорию локального репозитория и сгенерирует соотвествующий pom.xml файл. Перейдем в

/.m2/repository директорию на вашем компьютере. После выполнения команды install в этой директории должны появится поддиректории вашего домена, в случае моего приемера это

Читайте также:  Android native development kit ndk

В это каталоге располгаются все версии вашего aar артефакта (под этим термином подразумевается любой бинарный файл помещеный в maven репозиторий). В моем случае это директория 1.0.0 в которой содержится 3 файла: _remote.repositories, mDNSShared-1.0.1.aar, mDNSShared-1.0.1.pom. Теперь подключим бибилотеку из локального репозитория. Прежде всего нужно добавить локальный maven репозиторий в список доступных:

После этого можно устанавливать зависимости с помощью ключего слова compile также как мы это делает с flatDir

Именно такой подход распотсранения aar использован в Android Support Libraries. Все локальные maven репозитории разпаковуются и обновляются вместе с sdk. Можете заглянуть в директории ANDROID_HOME/extras/android/m2repository или ANDROID_HOME/extras/google/m2repository.

3.3 Удаленный репозиторий

Подход с использвованием удаленного репозитория ничем не отличается от локального за исключением необходимости указания ссылки на репозиторий. Gradle соддержит ссылки на Maven Central и JCenter репозитории. Кроме этого gradle позволяет указывать прямой url на сервер maven репозитория:

Установка зависимостей аналогична предыдущим способам:

Источник

Как импортировать файл .aar в Android Studio 1.1.0 и использовать его в моем коде

Я прочитал много ответов, связанных с этой темой, но ни один из них не работал для решения моей проблемы, поэтому вам нужна помощь в этом:

Мне нужно импортировать файл .aar в проект, созданный с помощью Android Studio 1.1.0 , я импортировал его с помощью опции «Новый модуль», и на самом деле я не получаю никаких ошибок, я могу создать приложение и запустить его, но Когда я пытаюсь использовать класс из этого .aar-файла, Android Studio не находит ссылку на него, допустим, он не может распознать пакет, который я хочу включить в свой код.

Возможно, вы думаете, что я должен добавить зависимость, я уже это сделал, кажется, не работает.

Итак, кто-то может сказать мне, какой правильный способ импортировать и использовать файл .aar в Android Studio 1.1.0

Чтобы импортировать библиотеку .aar:

  1. Перейдите в меню «Файл»> «Создать»> «Новый модуль»
  2. Выберите «Импортировать пакет .JAR / .AAR» и нажмите «Далее».
  3. Введите путь к файлу .aar и нажмите «Готово».
  4. Перейдите в раздел «Файл»> «Структура проекта» (Ctrl + Shift + Alt + S).
  5. В разделе «Модули» в меню слева выберите «приложение».
  6. Перейдите на вкладку «Зависимости».
  7. Нажмите зеленый «+» в верхнем правом углу.
  8. Выберите «Dependency Module»
  9. Выберите новый модуль из списка.

Прочитав много ответов на Stackoverflow, я нашел решение для своей проблемы, я хочу, чтобы вы знали, какие шаги я выполнил, чтобы воспроизвести его:

  1. Добавьте файл .aar в папку lib.
  2. Используйте опцию «Новый модуль» в меню «Файл».
  3. Импортируйте файл .aar.
  4. Постройте град и скомпилируйте проект.

Когда я попытался использовать новый модуль в своем приложении, он не распознал класс внутри нового модуля.

Проблема связана с версией Gradle, я использовал 1.1.0, и в этой версии есть ошибка, поэтому мое предложение – изменить версию до 1.0.1 , есть проблема, уже открытая, чтобы исправить эту проблему https://code.google.com/p/android/issues/detail?id=162634

Вы должны изменить версию в файле build.gradle, расположенном в корне вашего проекта.

Дополнительную информацию об этой проблеме вы можете найти здесь: https://groups.google.com/forum/#!topic/adt-dev/1Ho_c8dALQQ

Думаю, в версии 1.2.0 эта проблема будет решена.

Источник

Generate an Android Archive( AAR) Using Android Studio and Add to an Android Project

This article provides Information for creating AAR for an Android Library module and use It with another android Project.

I have posted an article for creating an Android Library module in an Android Project and use that with the UI app module.

Please see the article if you need to know about creating the Library module in Android Project.

Create an Android Library and use in your Android Project

This blog is providing information that why modular code structure is important and how the android library can play an…

In this article, I will explain how we can generate the Android Archive( AAR) file for an Android Library module and Use that in different Android projects so that we can understand the Library creation can really save our redevelopment time cost by using the same module in different projects.

I will use Android Studio 4.0.2 and the same Project mention in the above-attached article.

I have created a project and a Library module It is shown below.

It is mentioned that I have created a Library Module named as currentTimeLib and I am using that module successfully within the project, now I will generate the AAR file and I will Import the AAR file into a different Android Project.

If you already know about creating the Library module then you can follow the steps directly.

If you want to Implement it then either complete the previous article (Click here) or pull the code from Git and try on that(Click here).

Please follow the steps>>

Step1: Start the Android Studio and open the project where you want to generate the AAR file.

Step2: Click the Gradle option in right most corner of android studio.

Step3: You will see the App name in the window, please unfold the options in the sequence shown below.

Читайте также:  Красивый фон для клавиатуры андроид

Источник

Reference a local .aar in your Android project

If you create an Android library project and you don’t want to upload it to Maven central or run a local repository, it’s a little tricky to add your .aar to an Android project.

According to the release notes for Android Studio 0.4.4 support for .aar files was added there. To quote the note:

Newly created projects are initialized with the right build.gradle setup such that you can simply put .jar and .aar files into the libs/ directory and they will automatically be used (similar to how the libs/ folder worked in Eclipse ADT.)

Now, I might be doing something completely wrong, but for me this simply does not work. I have tried to add a library project using things like compile files(‘libs/library.aar’) and compile fileTree(dir: ‘libs’, include: ‘*.aar’) , but all of them failed.

So I gave up on that and instead started to use a different way. With Gradle it is possible to create a repository from a basic directory using flatDir

In this example, we’ll put the .aar file in the libs folder, but you could use any folder you like. If you prefer to store your library projects in a separate folder like aars instead of libs , that is a possibility.

The next step is of course to reference the actual library. There are two ways of doing this.

The @aar is necessary to specify the type of the dependency. The namespace though seems to be completely useless. This is definitely a lot easier then setting up your own Maven repository. The annoying thing about this is that you still need to update the version on every update. In recent versions of Android Studio it is also possible to add the dependency in a different way.

This makes it a lot easier to maintain the dependency itself. Now when you update the file, you don’t need to update the version number in the Gradle build file.

Although this is a good workaround, it seems like there is no official solution yet. I hope Google will address this problem in the near future. You can star/follow an issue on this on the Android issue tracker that was reported a year ago and is still open.

Источник

Привязка AAR-файла

В настоящее время рассматривается возможность использования настраиваемых привязок на платформе Xamarin. Примите участие в этом опросе, чтобы помочь определить дальнейшие направления разработки.

Это пошаговое руководство содержит инструкции по созданию библиотеки привязок Java для Xamarin.Android из AAR-файла на платформе Android.

Обзор

Формат файлов архива Android (.AAR) используется для библиотек Android. AAR-файл представляет собой ZIP-архив со следующим содержимым:

  • скомпилированный код Java;
  • идентификаторы ресурсов;
  • Ресурсы
  • метаданные (например, объявления действий, разрешения).

В этом пошаговом руководстве мы рассмотрим основные концепции создания библиотеки привязок из одного AAR-файла. Общие сведения (с простым примером кода) о создании библиотек привязок для Java см. в разделе Привязка библиотеки Java.

Проект привязки может включать только один AAR-файл. Если AAR-файл имеет зависимости от другого AAR-файла, такие зависимости должны содержаться в отдельном проекте привязки, на который будет указана ссылка. См. статью об ошибке 44573.

Пошаговое руководство

Мы создадим библиотеку привязок для примера файла с архивом Android textanalyzer.aar, который мы создали в Android Studio. Этот AAR-файл содержит класс TextCounter со статическими методами, которые подсчитывают число гласных и согласных в строке. Кроме того, textanalyzer.aar содержит ресурс изображения, чтобы наглядно отображать результаты подсчета.

Чтобы создать библиотеку привязок из AAR-файла, мы выполним следующую процедуру.

Создайте проект библиотеки привязок Java.

Добавьте в этот проект один AAR-файл. Проект привязки может содержать только один AAR-файл.

Задайте нужное действие сборки для этого AAR-файла.

Выберите целевую платформу, которую поддерживает AAR-файл.

Выполните сборку библиотеки привязок.

После создания библиотеки привязок мы разработаем небольшое приложение Android, которое предлагает пользователю ввести текстовую строку, вызывает из AAR-файла методы анализа текста, извлекает из AAR-файла изображение и отображает его вместе с результатами.

Пример приложения будет обращаться к TextCounter классу класса TextCounter :

Кроме того, этот пример приложения будет получать и отображать ресурс изображения, упакованный в файле textanalyzer.aar:

Этот ресурс изображения сохранен по адресу res/drawable/monkey.png в файле textanalyzer.aar.

Создание библиотеки привязок

Прежде чем переходить к следующим шагам, скачайте файл архива Android с примером textanalyzer.aar.

Создайте новый проект библиотеки привязок на основе шаблона библиотеки привязок Android. Вы можете использовать Visual Studio для Mac или Visual Studio (на снимках экрана ниже показан интерфейс Visual Studio, но Visual Studio для Mac мало чем отличается). Присвойте решению имя AarBinding.

Шаблон включает папку Jars, в которую вы добавите AAR-файл для проекта библиотеки привязок. Щелкните правой кнопкой мыши папку JAR и выберите команду Добавить существующий элемент:

Перейдите к файлу текстанализер. AAR , скачанному ранее, выберите его и нажмите кнопку Добавить:

Убедитесь, что файл текстанализер. AAR был успешно добавлен в проект:

Читайте также:  Разработка тем для android

Задайте для действия сборки текстанализер. AAR значение . В Visual Studio для Mac щелкните textanalyzer.aar правой кнопкой мыши, чтобы задать действие сборки. В Visual Studio действие сборки выбирается на панели Свойства.

В разделе «Свойства» для проекта задайте значение для параметра Целевая платформа. Если AAR-файл использует API-интерфейсы Android, для целевой платформы нужно указать тот уровень API который ожидает этот AAR-файл. (Дополнительную информацию о настройке целевой платформы и уровней API Android см. в этой статье.)

Настройте целевой уровень API для библиотеки привязок. В этом примере мы можем свободно выбрать последнюю версию API для платформы (уровень API 23), так как наш файл textanalyzer не имеет зависимостей от интерфейсов API Android:

Выполните сборку библиотеки привязок. Проект библиотеки привязок должен успешно создать готовый DLL-файл по следующему адресу: AarBinding/bin/Debug/AarBinding.dll

Использование библиотеки привязок

Чтобы использовать этот DLL-файл в приложении Xamarin.Android, необходимо сначала добавить ссылку на библиотеку привязок. Выполните указанные ниже действия.

Чтобы упростить это пошаговое руководство, мы создаем приложение в том же решении, что и библиотеку привязок. (Приложение, использующее библиотеку привязок, также может находиться в другом решении.) Создайте новое приложение Xamarin. Android. Щелкните решение правой кнопкой мыши и выберите Добавить новый Project. Присвойте проекту имя BindingTest.

Щелкните правой кнопкой мыши узел Ссылки для проекта BindingTest и выберите команду Добавить ссылку. .

Выберите ранее созданный проект AarBinding и щелкните ОК.

Откройте узел References проекта биндингтест , чтобы убедиться в наличии ссылки аарбиндинг :

Если вы хотите просмотреть содержимое проекта библиотеки привязки, можно дважды щелкнуть ссылку, чтобы открыть ее в обозревателе объектов. Здесь вы увидите содержимое пространства имен Com.Xamarin.Textcounter , сопоставленное с пакетом Java com.xamarin.textanalyzezr , и сможете просмотреть элементы класса TextCounter :

На приведенном выше снимке экрана выделены два метода TextAnalyzer , которые будут вызываться из примера приложения: NumConsonants (оболочка для базового метода Java numConsonants ) и NumVowels (оболочка для базового метода Java numVowels ).

Доступ к типам из AAR-файла

Добавив в приложение ссылку, которая указывает на библиотеку привязки, вы сможете использовать типы Java из AAR-файла так же, как обычные типы C# (благодаря оболочкам C#). Код приложения C# может вызывать методы TextAnalyzer , как показано в следующем примере:

В приведенном выше примере мы вызываем статические методы из класса TextCounter . Но вы также можете создать экземпляры классов и вызвать методы экземпляра. Например, если AAR-файл является оболочкой для класса с именем Employee , в котором есть метод экземпляра buildFullName , вы можете создать экземпляр MyClass и использовать его, как показано ниже:

В следующих шагах описано, как добавить в приложение код, который запрашивает у пользователя текст, применяет TextCounter для анализа этого текста и выводит результаты.

Замените макет BindingTest (Main.axml) следующим XML-кодом. Этот макет содержит EditText для ввода текста и две кнопки для запуска подсчета гласных и согласных:

Замените все содержимое файла MainActivity.cs приведенным ниже кодом. Как показано в этом примере, обработчики событий кнопки вызывают упакованные методы TextCounter , которые находятся в AAR-файле и используют всплывающие уведомления для вывода результатов. Обратите внимание на оператор using в пространстве имен привязанной библиотеки (в нашем примере это Com.Xamarin.Textcounter ):

Скомпилируйте и запустите проект BindingTest. Приложение запустится и отобразит страницу, как на снимке экрана слева (элемент EditText содержит некоторый текст, но вы можете коснуться его, чтобы изменить). Если нажать кнопку COUNT VOWELS, появится всплывающее уведомление с количеством гласных, как показано справа:

Попробуйте нажать кнопку COUNT CONSONANTS. Кроме того, вы можете изменить строку текста и снова нажать любую из этих кнопок, чтобы получить новое значение количества гласных и согласных.

Доступ к ресурсам из AAR-файла

Средства Xamarin включают данные R из AAR-файла в класс Resourse вашего приложения. Это позволяет обращаться к ресурсам AAR-файла из макета (или кода программной части) так же, как к любым ресурсам в пути Resources этого проекта.

Для доступа к ресурсу изображения укажите имя Resource.Drawable, по которому это изображение размещается в упакованном AAR-файле. Например, можно ссылаться на image.png в. AAR файл с помощью :

Вы также можете использовать макеты ресурсов, размещенные в AAR-файле. Для этого укажите имя Resource.Layout для макета, упакованного в AAR-файле. Пример:

Пример textanalyzer.aar содержит ресурс изображения, который сохранен по адресу res/drawable/monkey.png. Давайте обратимся к этому ресурсу изображения и используем его в нашем примере приложения:

Измените макет биндингтест (Main. axml) и добавьте в конец контейнера. ImageView Отобразится изображение, найденное по адресу ImageView . Этот образ будет загружен из раздела ресурсов текстанализер. AAR:

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

Поздравляем! Итак, вы успешно создали библиотеку привязки Java на основе AAR-файла.

Сводка

В этом пошаговом руководстве мы создали библиотеку привязок для AAR-файла, добавили эту библиотеку привязок в простейшее тестовое приложение и запустили это приложение для проверки того, как наш код C# вызывает код Java из AAR-файла. Кроме того, мы дополнили это приложение кодом доступа к ресурсу изображения, который размещен в AAR-файле.

Источник

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