Сборка android-приложения. задачка со звёздочкой

Часть 2: Создаём учётную запись Sonatype для Maven Central

Примечание: если вы не собираетесь размещать библиотеку в Maven Central, то можно пропустить части 2 и 3. Однако, советую не делать этого, потому что многие разработчики всё ещё используют этот репозиторий.

Аналогично JCenter, если вы хотите распространять свою библиотеку через Maven Central, предварительно необходимо создать аккаунт на сайте Sonatype. Для этого переходим на страницу Sonatype Dashboard и регистрируемся

Важно понимать, что аккаунт, который вы создадите — это учетная запись JIRA Issue Tracker на сайте Sonatype

После этого нужно запросить разрешение на публикацию библиотеки в Maven Central. Процедура бессмысленная (по крайней мере на мой взгляд), ведь нужно создать тикет в JIRA, чтобы вам разрешили загрузить библиотеку, GROUP_ID которой совпадает с заданным в Maven Central.

Чтобы создать такой тикет, заходим на страницу Sonatype Dashboard и авторизуемся под созданным аккаунтом. Затем в верхнем меню нажимаем Create.

Заполняем следующую информацию:

Project: Community Support — Open Source Project Repository Hosting

Issue Type: New Project

Summary: Сокращённое название вашей библиотеки, например, The Cheese Library

Group Id: Указываем корневой GROUP_ID, например, com.inthecheeselibrary. После того, как запрос одобрят, можно начать добавлять в репозиторий библиотеки, GROUP_ID которых начинается с com.inthecheeselibrary , например, com.inthecheeselibrary.somelib.

Project URL: Указываем URL библиотеки, которую планируем публиковать, например: https://github.com/nuuneoi/FBLikeAndroid

SCM URL: URL системы контроля версий, например: https://github.com/nuuneoi/FBLikeAndroid.git

Остальное не трогаем и нажимаем Create. На этом всё. Теперь переходим к самому сложному. Нужно дождаться, когда нам предоставят доступ для размещению библиотеки в Maven Central. В среднем это занимает порядка недели или чуть больше.

Последнее, что необходимо сделать — это указать имя пользователя Sonatype OSS на вкладке Accounts раздела Bintray Profile:

Нажимаем Update и на этом настройка завершена.

Maven Central

Maven Central — это Maven-репозиторий, размещённый на сайте Sonatype.org. Сам репозиторий расположен по этой ссылке.
Чтобы использовать Maven Central в проекте, нужно прописать репозиторий в файле build.gradle, как показано ниже:

12345 allprojects {
repositories {
mavenCentral()}}

Обратите внимание, хотя и JCenter, и Maven Central являются типовыми репозиториями библиотек для Android, они расположены на совершенно разных площадках от разных провайдеров и никак не связаны друг с другом. То, что доступно в JCenter, может отсутствовать в Maven Central, и наоборот

Помимо этих двух стандартных серверов, мы можем указывать произвольные сервера Maven-репозиториев, если, например, используем библиотеку, размещённую на собственном сервере. Например, сервис Fabric.io использует свой репозиторий, расположенный по адресу https://maven.fabric.io/public. Если хотите использовать какую-нибудь из библиотек Fabric.io, то придётся самостоятельно указать URL репозитория следующим образом:

123 repositories {
maven { url ‘https://maven.fabric.io/public’ }}

После этого вы сможете подключить к проекту любые библиотеки Fabric.io:

123 dependencies {
compile ‘com.crashlytics.sdk.android:crashlytics:2.2.4@aar’}

Что лучше: разместить свою библиотеку на стандартном сервере или поддерживать собственный? Лучше первое — это позволит сделать библиотеку доступной широкой публике. Другому разработчику потребуется лишь дописать строчку кода с названием зависимости. Поэтому в этой статье мы сосредоточимся на JCenter и Maven Central, использовать которые гораздо удобнее.

Кстати, помимо Maven есть ещё один тип репозиториев, который работает с gradle в Android Studio. Это репозиторий Ivy, однако за свою практику я никогда не видел, чтобы кто-то его использовал (включая меня), поэтому в этой статье просто не буду его рассматривать.

Установка плагинов

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

Если у вас уже есть конкретный плагин который вы хотите установить, то установка не составит особого труда. Все что нужно сделать, это определить идентификатор плагина. Как правило, это имя репозитория GitHub или имя пакета на сайте npm.

Идентификатор плагина камеры cordova-plugin-camera. Для установки выполните команду cordova plugin add с нужным идентификатором:

Для установки плагина соц.сетей, просто поменяйте идентификатор:

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

Доступные панели

Панели Chrome

В инструментах разработчика Google Chrome доступны следующие панели:

  • Elements– просмотр и изменение DOM и CSS.
  • Console– просмотр сообщений и запуск JavaScript из консоли.
  • Sources– отладка JavaScript, сохранение изменений, внесенных с помощью инструментов разработчика, и запуск фрагментов JavaScript.
  • Network – просмотр и отладка сетевой активности.
  • Performance– улучшение производительность загрузки и времени выполнения.
  • Memory– использование памяти и отслеживание утечек.

Панели Firefox

Доступные панели в Firefox расположены в верхней части инструментов разработчика.

Это:

Инспектор– позволяет проверить и изменить HTML и CSS веб-страницы.

Консоль– просмотр сообщений и запуск JavaScript из консоли.

Отладчик– позволяет пройтись по JavaScript-коду чтобы изучить или изменить его.

Сеть– отображает все сетевые запросы, которые выполняет Firefox

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

Профайлер – дает представление об общей производительности JavaScript и сайта.

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

Установка компонентов

3. Java

Следующим этапом будет установка Java. Java необходима для того, чтобы развернуть наше приложение Hello World на Android устройстве. Нативные приложения для Android пишутся на языке Java, поэтому мы должны установить её.

4. Android SDK

Для Windows, есть готовый инсталлятор, который можно использовать для выбора и установки необходимых пакетов. Для OS X и Linux, вы должны распаковать архив, после этого, откройте файл .bashrc и добавьте путь к Android SDK и SDK tools:

Замените /media/wern/Files/downloads/ на путь к Android SDK в вашем компьютере. Вы можете использовать команду source для загрузки файла .bashrc:

Это позволяет выполнить android команду из командной строки, для запуска Android SDK Manager. При помощи Android SDK Manager, вы сможете выбрать необходимые для вас пакеты и установить их на своем компьютере. Для работы с Cordova нужны следующие пакеты:

  • Android SDK Tools
  • Android SDK Platform-tools
  • SDK Platform of the latest Android API
  • Android SDK Build-tools for the latest Android API (Android 6.0 at the time of writing)

Как это будет выглядеть на вашем компьютере:

Нажмите кнопку Install (Установить), чтобы начать процесс установки. Далее появится окно, в котором вас попросят подтвердить установку выбранных пакетов. Выберите Accept License (принимаю условия лицензионного соглашения) и нажмите на кнопку Install. Установка может занять некоторое время в зависимости от вашего интернет-соединения.

5. Cordova

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

Опция -g говорит npm установить Cordova глобально, это означает, что вы можете использовать инструменты командной строки Cordova из любого места.

Что такое формат aar

Погодите… Я упомянул, что есть два типа файлов, которые размещают в репозитории: jar и aar. С jar файлами, думаю, всё понятно, но что именно представляет собой aar?

Формат aar разработан на основе jar. Доработка потребовалась потому, что в библиотеках для Android должны присутствовать особые файлы, такие как AndroidManifest.xml, Resources, Assets и JNI, которых нет в обычных jar-файлах. Поэтому был изобретён формат aar, решающий все эти проблемы. По сути, это обычный zip-архив, как и jar, только с другой файловой структурой. Файл jar расположен внутри файла aar под именем classes.jar. Остальное перечислено ниже:

  • /AndroidManifest.xml (обязательно)
  • /classes.jar (обязательно)
  • /res/ (обязательно)
  • /R.txt (обязательно)
  • /assets/ (необязательно)
  • /libs/*.jar (необязательно)
  • /jni//*.so (необязательно)
  • /proguard.txt (необязательно)
  • /lint.jar (необязательно)

Как видите, формат файла aar специально разработан для Android. А эта статья научит вас создавать и публиковать библиотеки в формате aar.

Как загрузить библиотеку в JCenter

Теперь, когда мы ознакомились с основными принципами работы репозиториев, приступим к самому важному — процессу загрузки. Его суть проста: разместить файлы библиотеки по адресу https://jcenter.bintray.com

Как только мы это сделали — библиотека опубликована. Есть две задачи с которыми необходимо разобраться: как создать aar-файл и как разместить собранные файлы в репозитории.

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

Из-за большого количества деталей я разобью процесс на 7 частей, чтобы описать все действия по шагам.

Как gradle получает библиотеку из репозитория

Прежде чем мы рассмотрим, как публиковать библиотеки в JCenter, разберемся с тем, как gradle получает библиотеки из репозитория. К примеру, когда мы пишем такую строчку в build.grade, как именно файлы библиотеки попадают в проект?

1 compile ‘com.inthecheesefactory.thecheeselibrary:fb-like:0.9.3’

Сначала нам нужно знать формат строки библиотеки. Она состоит из 3 частей:

1 GROUP_IDARTIFACT_IDVERSION

В нашем случае GROUP_ID это com.inthecheesefactory.thecheeselibrary, ARTIFACT_ID имеет значение fb-like, а VERSION равен 0.9.3.

Для большей ясности, GROUP_ID задаёт название группы библиотек. Бывает такое, что имеет смысл сгруппировать в одном контексте несколько библиотек, выполняющих различные задачи. Если библиотеки входят в одну группу, то их GROUP_ID будет совпадать. Обычно GROUP_ID – это название разработчика пакета, после которого идёт название группы библиотек, например, com.squareup.picasso. Затем задаётся настоящее название библиотеки в ARTIFACT_ID. Что касается VERSION, то здесь хранится только номер версии. Несмотря на то, что в это поле можно ввести произвольный текст, лучше задавать его в формате x.y.z с -beta на конце, если нужно.

Ниже приведён реальный пример библиотеки, взятый из Square. В каждой строке легко обнаружить и название библиотеки, и название разработчика.

123456 dependencies {
compile ‘com.squareup:otto:1.3.8’
compile ‘com.squareup.picasso:picasso:2.5.2’
compile ‘com.squareup.okhttp:okhttp:3.9.1’
compile ‘com.squareup.retrofit:retrofit:2.3.0’}

Что произойдет, когда мы добавим зависимость как в примере выше? Всё просто. Gradle спросит сервер Maven-репозитория, существует ли такая библиотека, и если да, то получит путь к запрашиваемой библиотеке. Чаще всего он будет в формате GROUP_ID/ARTIFACT_ID/VERSION_ID. Например, файлы библиотеки com.squareup:otto:1.3.8 можно найти по ссылкам https://jcenter.bintray.com/com/squareup/otto/1.3.8/ и https://oss.sonatype.org/content/repositories/releases/com/squareup/otto/1.3.8/.

Затем Android Studio загрузит эти файлы на ваш компьютер и добавит их в проект. И всё. Ничего сложного!

Надеюсь, сейчас вы чётко понимаете, что скачиваемые библиотеки – это всего лишь файлы формата jar или aar, размещённые на сервере репозитория. По сути, если вы скачаете файлы сами, скопируете и добавите их в проект, получится то же самое. Но огромный плюс системы зависимостей в gradle — это отсутствие необходимости делать что-либо дополнительно, кроме как набрать несколько строчек текста. Библиотека сразу же становится доступной в вашем проекте, причём с системой управления версиями.

Dependencies

Следующий код использует все три зависимости:

dependencies {
    // Module dependency
    compile project(":lib")

    // Remote binary dependency
    compile 'com.android.support:appcompat-v7:19.0.1'

    // Local binary dependency
    compile fileTree(dir: 'libs', include: )
}

Module dependencies

Первый проект компиляции («: lib») является зависимостью модуля, что означает, что приложение модуля зависит от модуля lib. Когда приложение построено, система сборки также будет включать файл lib.

Remote binary dependencies

Далее идет зависимость удаленной библиотеки, compile’com.android.support: appcompat-v7: 19.0.1 ‘означает, что приложение модуля зависит от версии 19.0.1 библиотеки поддержки Android в библиотеке Maven. По умолчанию удаленный репозиторий указывает на центральный репозиторий Maven.

Local binary dependencies

Окончательная компиляция fileTree (dir: ‘libs’, включает: ) означает зависимость от локальной библиотеки. Вообще говоря, мы помещаем jar-файл локальной библиотеки в папку libs модуля, а затем используем compile fileTree (dir: ‘libs’, include: ) сообщает системе сборки, что все файлы jar в библиотеках должны быть скомпилированы и включены в приложение.

Панель элементов

Панель элементов является наиболее часто используемым инструментом. Он позволяет манипулировать DOM, изменяя веб-страницу.

Чтобы посмотреть, как выглядит веб-страница с различными стилями или и элементами, внесите эти изменения непосредственно в данной панели элементов. Это позволяет редактировать сайт непосредственно в браузере без изменения исходного кода.

Здесь отображается HTML-код веб-страницы. В Chrome это выглядит следующим образом:

В Firefox:

Styles

Здесь отображается весь CSS, заданный для HTML-элементов. В Chrome это выглядит следующим образом:

В Firefox:

Можно редактировать стили выбранного элемента, написав новый код в любом из селекторов CSS.

Я добавил новый размер шрифта для выбранного абзаца.

Подсветка и выбор элемента

Чтобы выбрать определенный элемент, нажмите на значок селектора элемента или воспользоваться клавиатурной комбинацией Ctrl + Shift + C.

В Chrome это выглядит следующим образом:

В Firefox:

Когда селектор активен, элементы, на которые вы наводите курсор, будут подсвечиваться. Если кликнуть по элементу, он будет выбран в панели инспекторе.

Изменение классов и атрибутов

В Chrome после клика правой кнопкой мыши по элементу отобразится опция Edit as HTML или Add attribute.

Если выберите Add attribute, то сможете ввести необходимый атрибут.

Если выбрать Edit attribute, элемент будет преобразован в текстовую область для его редактирования.

Для примера я добавил новые классы в атрибут class и добавил еще один атрибут.

В Firefox это работает аналогично.

Редактирование содержимого HTML-элементов

Для этого достаточно дважды кликнуть по тексту в элементе. После чего откроется поле ввода с содержимым элемента.

Затем нужно задать новые значения и нажать Enter.

Удаление и скрытие элементов DOM

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

После чего элемент будет удален из DOM, и веб-страница будет отображаться без него.

В Firefox схожая опция называется «Удалить узел». И в ней нет возможности скрыть элемент.

Просмотр блочной модели элемента

Инструменты разработчика браузеров позволяют увидеть ширину, высоту, границу, отступы и поля элемента. В Chrome это выглядит следующим образом:

Когда вы наводите курсор на часть блочной модели, этот элемент будет выделен на веб-странице. В Firefox данная функция находится в той же части, что и в Chrome:

Поиск стилей с использованием фильтра

Чтобы найти определенный стиль в коде, введите его название в поле Filter. В Firefox оно находится в той же области, что и в Chrome.

Фильтр выполняет поиск только в иерархии выбранного элемента.

Часть 6: Синхронизируем репозиторий пользователя на Bintray с JCenter

Синхронизировать свою библиотеку с JCenter очень просто. Заходим в веб-интерфейс и нажимаем Add to JCenter.

Здесь можно просто нажать Send.

С этого момента любой разработчик, который использует репозиторий jcenter(), может воспользоваться нашей библиотекой, добавив всего одну строчку в скрипт gradle:

1 implementation ‘com.inthecheesefactory.thecheeselibrary:fb-like: 0.9.3’

Хотите убедиться, что ваша библиотека попала в jcenter? Для этого переходим на сайт https://jcenter.bintray.com и открываем папку, название которой состоит из GROUP_ID и ARTIFACT_ID вашей библиотеки. Например, это может выглядеть вот так: com → inthecheesefactory → thecheeselibrary → fb-like → 0.9.3:

Обратите внимание, что привязку к JCenter мы делаем однократно. После этого любое изменение пакета, например, загрузка нового бинарника, удаление старого бинарника и т.п., также отразится и в JCenter

Однако, поскольку ваш репозиторий и JCenter – это не одно и то же, то придётся подождать 2–3 минуты для синхронизации изменений.

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

Понимание JCenter и Maven Central

Почему существует не один, а целых два типовых репозитория?

На самом деле, оба они выполняют одну и ту же функцию: хранят библиотеки Java/Android. А дальше дело разработчика – размещать библиотеки на одном из них или, быть может, на обоих.

Поначалу Maven Central был в Android Studio репозиторием по умолчанию. Когда вы создаете новый проект в старой версии Android Studio, mavenCentral() автоматически задаётся в build.gradle.

Основная проблема Maven Central заключается в том, что он неудобен для разработчиков. Опубликовать библиотеку там является нетривиальной задачей. По этой и ряду других причин (например, проблемы с безопасностью и т.п.) команда разработчиков Android Studio решила сменить репозиторий по умолчанию на JCenter. Теперь, когда вы создадите проект в новой версии Android Studio, то увидите, что репозиторием по умолчанию задан именно jcenter(), а не mavenCentral().

Есть много весомых причин, из-за которых был произведён переход от Maven Central к JCenter. Приведём основные:

  • JCenter предоставляет библиотеки через CDN, что позволяет быстро их скачивать;
  • JCenter — это самый большой репозиторий Java в мире. Всё, что доступно через Maven Central, скорее всего доступно и через JCenter;
  • Очень просто опубликовать свою библиотеку. Её не требуется подписывать или делать ещё что-то нетривиальное, в отличие от Maven Central;

Интуитивно понятный интерфейс;

Если вы решите опубликовать свою библиотеку в Maven Central, вы сможете легко сделать это всего одним кликом на сайте Bintray (после небольшой предварительной настройкой в первый раз).

С учётом сказанного ранее, а также из личного опыта, должен сказать, что смена репозитория по умолчанию на JCenter — замечательное решение.

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

Часть 3: Включаем автоматическое подписывание в Bintray

Как упоминалось ранее, через JCenter можно добавить библиотеку в Maven Central, но для этого сначала её нужно подписать. Через веб-интерфейс Bintray легко сделать так, чтобы библиотека автоматически подписывалась после загрузки.

Сначала, с помощью командной строки, генерируем ключ следующим образом (если работаете под Windows, то используйте Cygwin):

1 gpg —gen-key

Часть полей обязательна для заполнения. В большинстве случаев подойдут значения по умолчанию, но часть полей требуется заполнить самостоятельно. Например, настоящее имя, пароль и тому подобное.

И так, ключ создан. Выполним следующую команду, чтобы посмотреть информацию о нем:

1 gpg —list-keys

Если всё в порядке, то отобразится информация, похожая на ту, что приведена ниже:

123 pub 2048R01ABCDEF 2015-03-07
uid Sittiphol Phanvilai <[email protected]>
sub 2048R98765432 2015-03-07

Теперь нам нужно загрузить открытый ключ на сервер ключей. Для этого выполните следующую команду, предварительно заменив PUBLIC_KEY_ID 8-значным шестнадцатеричным значением после 2048R/ в строке pub, которая в этом примере равна 01ABCDEF.

1 gpg —keyserver hkp//pool.sks-keyservers.net —send-keys PUBLIC_KEY_ID
12 gpg -a —export [email protected] > public_key_sender.asc
gpg -a —export-secret-key [email protected] > private_key_sender.asc

Открываем страницу Edit Profile на сайте Bintray и щёлкаем по GPG Signing. Заполняем поля Public Key и Private Key содержимым из полученных на предыдущем шаге файлов public_key_sender.asc и private_key_sender.asc соответственно.

Сохраняем ключи, нажав Update.

Заключительный шаг – включаем автоматическую подпись. Для этого переходим на главную страницу Bintray и нажимаем на maven.

Нажимаем Edit.

Активируем галочку GPG Sign uploaded files automatically, тем самым включая автоматическую подпись.

Нажимаем Update, чтобы сохранить изменения. Вот и всё. С этого момента любая библиотека, добавленная в наш Maven-репозиторий, будет автоматически подписана, и можно будет одним щелчком мышки опубликовать её ещё и в Maven Central.

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

Работа с Bintray и Maven Central закончена. Переходим к Android Studio.

Build Process — процесс сборки

Прежде всего, нам нужно понять общее поведение системы сборки Android. Чтобы сгенерировать файл apk в Android Studio, вам необходимо запустить задачу сборки Gradle. На этом этапе вы пройдете через процесс сборки. Этот процесс содержит множество инструментов и шагов, во время которых будут созданы файлы перехода.На следующем рисунке можно проиллюстрировать полный процесс строительства:Его можно свести к следующим шагам

  • Android Asset Packaging Tool, также известный как aapt, компилирует файлы ресурсов (такие как AndroidManifest.xml и файлы xml, используемые Activity), а также генерируетR.java. R.java эквивалентен индексу файла ресурсов.В коде Java ссылка на файл ресурсов осуществляется через R.java.
  • Инструмент aidl преобразует интерфейс .aidl в интерфейс java.
  • Все коды Java, включая коды интерфейса java, сгенерированные R.java и .aidl, компилируются в файлы .class.
  • Инструмент dex преобразует файл .class в двоичный код Dalvik .dex. Все сторонние библиотеки и файлы .class также будут преобразованы в файлы .dex.
  • Все файлы, включаяНекомпилированные ресурсы, скомпилированные ресурсы, файлы dex, Упакованы в файл apk с помощью инструмента apkbuilder.
  • После создания apk его необходимо подписать с помощью ключа отладки или ключа выпуска, прежде чем его можно будет установить на устройстве.
  • Если вы хотите опубликовать apk, вам также необходимо использовать инструмент zipalign для выравнивания файлов apk.
* Примечание: система сборки объединит все ресурсы, ресурсы могут поступать из каталога ресурсов по умолчанию app / src / main / res ибиблиотеки, на которые указывают зависимости, Также может зависеть от вкуса продукта и типа сборки. Если ресурсы из разных источников имеют одинаковое имя, ресурс с наивысшим приоритетом используется в соответствии со следующим приоритетом: зависимости> варианты продукта> типы сборки> каталог ресурсов по умолчанию

Часть 5: Загружаем библиотеку в свой репозиторий на Bintray

Пора разместить библиотеку в своём репозитории на Bintray. Для этого в Android Studio переходим на вкладку Terminal:

Первым шагом проверяем корректность кода и собираем файлы библиотеки (aar, pom и т.п.). Для этого выполняем следующую команду:

1 > gradlew install

Если всё в порядке, отобразится нечто подобное:

1 BUILD SUCCESSFUL

Полдела сделано. Теперь нужно загрузить собранные файлы на Bintray следующей командой:

1 > gradlew bintrayUpload

Громко кричим «Эврика!», если отобразилось следующее сообщение:

1 SUCCESSFUL

Проверяем пакет через веб-интерфейс Bintray. Вы должны заметить изменения в секции Version.

Мои поздравления, ваша библиотека опубликована, и ею сможет воспользоваться любой желающий!

Однако не спешите пока особо радоваться. Библиотека всё ещё в вашем Maven-репозитории, а не в JCenter. Если кто-нибудь захочет воспользоваться вашей библиотекой, то ему потребуется сначала прописать URL до вашего репозитория следующим образом:

1234567891011 repositories {
maven {
url ‘https://dl.bintray.com/nuuneoi/maven/’}}…
dependencies {
compile ‘com.inthecheesefactory.thecheeselibrary:fb-like:0.9.3’}

URL Maven-репозитория можно узнать через веб-интерфейс Bintray или просто подставить вместо nuuneoi название своего аккаунта. Рекомендую попробовать открыть данную ссылку в браузере, чтобы понять, как именно всё это работает.

Как уже было сказано ранее, неправильно заставлять разработчиков разбираться и добавлять в свой код такие сложные конструкции. Представьте, для того чтобы подключить 10 библиотек, нужно добавить 10 подобных URL адресов? Кошмар! Давайте перенесём библиотеку из нашего репозитория в JCenter и облегчим людям жизнь.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: