Окремий apk для модуля Android studio. Плагіни. Складання App Bundle за допомогою Android Studio

Головна / Основний функціонал

Для створення модуля в Android Studio вибираєте

File > New > New Module

Далі є два варіанти. Якщо ви плануєте створити «чисту» java-бібліотеку, як тип вказуйте Java Library , в результаті код такої бібліотеки скомпілюється в JARфайл. Це зручно, тому що ви зможете використовувати її не тільки в Android додатках. Якщо ж ви збираєтеся використовувати android-специфічні речі і вам знадобляться класи з пакетів android.*, то створюйте Android Library , яка при компіляції збирається в AARфайл. У даному випадкувам знадобиться останній варіант.

ВАЖЛИВО:У minSDKVersion (файли build.gradle модулів) програми повинні збігатися або бути більше, ніж зазначений у модулі бібліотеки. Вказані buildToolsVersion повинні бути встановлені в Android-SDK. Кожен модуль бібліотеки створює свій клас ресурсів (*.R.class). Коли Android бібліотеки додаються в проект і відбувається його складання, їх ресурси зливаються, що може призвести до конфліктів. Тому в документації визначено такі угоди:

  • Якщо ID ресурсу програми збігається з ID ресурсу в бібліотеці, використовується ресурс програми
  • Якщо ID ресурсу збігається у різних бібліотеках, то використовується ресурс бібліотеки, яка вказана першою у списку залежностей (перебуває у блоці dependecies)
  • Для запобігання описаним вище конфліктам рекомендується використовувати префікс або іншу послідовну схему іменування ресурсів, яка буде унікальна для кожного з модулів (або унікальна для всієї програми в цілому)

Підключення Android бібліотеки

Підключаються бібліотеки Android як залежності (якщо бібліотека була створена як окремий проект в AndroidStudio). Тут є також два варіанти:

1.Або додати скомпільований AAR (або JAR) файл:

File > New Module - Import .JAR/.AAR Package > Next - введіть шлях до ARR (або JAR) файлу > Finish

2.Або імпортувати бібліотеку з вихідних джерел:

File > New > Import Module - вводьте шлях до директорії, де знаходяться вихідні бібліотеки > Finish

ВАЖЛИВО:переконатися, що ім'я Android бібліотеки було додано до settings.gradle

Include ":app", ":core", ":personal", ":client"

і з'явилася в блоці dependencies файлу build.gradleпрограми

Dependencies ( compile project(":core") compile project(":personal") compile project(":client") )

Android бібліотеки можуть містити в собі ресурси, інші JAR бібліотеки, власний AndroidManifest.xml.

Структура скомпільованої Android бібліотеки

Скомпільована Android бібліотека є звичайним zip архівз розширенням.arr , який містить такі обов'язкові файли та директорії:

  • /AndroidManifest.xml
  • /classes.jar
  • /res/
  • /R.txt

та необов'язкові:

  • /assets/
  • /libs/ name.jar
  • /jni/ abi_name/name.so (де abi_nameодин із підтримуваних Android ABIs)
  • /proguard.txt
  • /lint.jar

У мене є проект, створений за допомогою Gradle у Android Studio v 0.3.2. Мій проект має залежність від двох інших модулів (на бібліотека). Структура проекту добре визначена за допомогою build.gradle файлів. Проблема в тому, що коли я запускаю проект на Android-пристрої, я встановлюю 3 на моєму пристрої. Один із них – основний проект (єдиний правильний), а два інших – імпортовані модулі (ці два я не хочу встановлювати). Як я можу цього досягти? Чи що я роблю неправильно?

Структура проекту:

  • MyLibModule
  • MainProject
  • MainProject-> libraries-> MyOtherModule

Де MyLibModuleзнаходиться на тому ж шляху, що й основний проект, тому що мені також потрібний цей модуль в іншому проекті.

Просто щоб бути зрозумілим: вся складанняпроекту в порядку, всі залежності в порядку, але чому я отримую 3 APK на моєму пристрої?

Після цілого дня, який бореться з цією проблемою, я знайшов причину цієї дивної поведінки. Проблема полягала у прояві бібліотечного модуля. Перш ніж я перейшов на студію Android, я використовував Eclipse. І в мене була testActivity, оголошена у маніфесті проекту бібліотеки. Видалення всіх тестових дій із маніфесту з моїх бібліотечних модулів вирішило проблему. Тепер Android Studio встановлює лише APK MainProject.

Деякий код: маніфест MyLibModule:

Змінився на:

…. І те саме для MyOtherModule.

ПРИМІТКА. Порожній вузол програмиповинен залишатися в маніфесті, щоб уникнути помилок збирання.

Видалити фільтр намірів із запуску вашої бібліотеки

Змінився на

Це тому, що ваші бібліотеки визначені у файлах build.gradle як програми, а не бібліотеки. Подивіться на цей рядок:

Apply plugin: "android"

І замініть його на:

Apply plugin: "android-library"

Можливо, вам доведеться внести інші зміни до файлу збірки, оскільки не все, що стосується додатків, може бути зазначено у файлі збірки бібліотеки. http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Library-projects для отримання додаткової інформації.

Встановлені плагіни знаходяться у меню File | Settings... | Plugins. Кнопка Browse repositories...дозволяє знайти плагін у репозиторії. Кнопка Install plugin from disk...дозволяє встановити плагін з диска, якщо ви завантажили його самостійно.

Rainbow Brackets

"Райдужні дужки" дозволяють помітити кожну пару дужок своїм індивідуальним кольором. Це допомагає візуально бачити, де область коду.

Замінює всі індикатори прогресу в студії на няшного котика. Якщо ви серйозний програміст, то просто повинні встановити плагін. Сумісно з іншими середовищами розробки на основі IntelliJ IDEA: PhpStorm, WebStorm, PyCharm, RubyMine, AppCode, CLion, Gogland, DataGrip, Rider, MPS.

З'являється скрізь. Наприклад, під час завантаження проекту.

Під час роботи при синхронізації чогось.

RoboPOJOGenerator

Зручний генератор готових Java та Kotlin POJO класів із JSON: GSON, FastJSON, AutoValue (GSON), Logan Square, Jackson.

ADB Idea

Плагін для Android Studio/Intellij IDEA для швидких операцій над програмою:

  • Uninstall App - видалити програму з пристрою
  • Kill App - убити програму (видалити з пам'яті)
  • Start App - запустити програму
  • Restart App - перезапустити програму
  • Clear App Data - очистити дані
  • Clear App Data and Restart - очистити дані та перезапустити

Після встановлення ці команди можна знайти через Tools | Android | ADB IDEA.

Також можна викликати вікно пошуку дій через комбінацію клавіш Ctrl+Shift+Aта за допомогою символів ADBшвидко знайти конкретну команду.

Плагін зручний для перевірки працездатності додатку різних станах. Наприклад, ви раніше створили базу даних і вирішили подивитися, як поведеться програма при порожній базі. За допомогою плагіна ви швидко можете очистити дані та подивитися на результат.

Модули забезпечують вміст для вашого app"s source code, resource files, and app level settings, such as the module-level build file and Android manifest file. Each module can be independently built, tested, and debugged.

Android Studio використовує модулі, щоб зробити це добре для нових пристроїв для вашого проекту. Якщо ви бачите кілька простих версій в Android Studio, ви можете створити модуль для встановлення коду, який є конкретним для пристрою типу, так як Wear OS або Android TV. Детальнiше build.gradle файл підходить для type device.Also, Android Studio створюють прилади modules with recommended build configurations, так як за допомогою Leanback library для Android TV modules.

Ця сторінка описує як додати новий модуль для конкретного пристрою.

Android Studio також дає змогу легко додати library або Google Cloud module для вашого проекту. Для більш детальної інформації про створення library module, viz Create a Library Module .

Create a new module

Щоб отримати новий модуль для вашого проекту для нового пристрою, виконується як follows:

  1. Click File > New > New Module.
  2. In the Create New Module window that appears, Android Studio offers following device modules:
    • Phone & Tablet Module
    • Wear OS Module
    • Android TV Module
    • Glass Module
    Виберіть модуль для вашого пристрою, а потім click Next.
  3. In the Configure your new module form, введіть наступні деталі:
    • Application Name: Це ім'я, що використовується як title для вашої app launcher icon для нового module.
    • Module Name: Цей текст містить назву файлу, де ваш код code і файли файлів є visible.
    • Package Name: Це Java namespace для коду в вашому module. Це приєднане до пакета atribut in module"s Android manifest file .
    • Minimum SDK: Ця функція визначила низьку версію платформи Android, яка використовує модулі модулів. Це значення містить minSdkVersion atribut в build.gradle файл, який ви можете edit later.

    Then click Next.

  4. Залежно від того, наскільки пристрій модуль ви вибрано, натиснувши на сторінці відтворення, вибрати відповідний код templates ви можете вибрати для використання як вашої головної діяльності. Натисніть activity template with which you want to start, and then click Next. Якщо ви не потребуєте активності, click Add No Activity, click Finish, and then you"re done.
  5. Якщо ви chose an activity template, введіть settings for your activity on the Customize the Activity page. Більшість templates ask for an Activity Name, Layout Name, Title, and Source Language, Але кожен template має активність-конкретні settings. Click Finish. Якщо ви створили app module with activity template, ви можете безперервно керувати і перевірити модуль на вашому пристрої.

Android Studio створюють всі необхідні файли для нових модулів і syncs для проекту з новими модулями gradle files. Adding module for new device and adds any required dependencies for the target device to module's build file.

Once Gradle проект sync completes, новий модуль appears in the Project window on the left. Якщо ви не збираєтеся встановити новий модуль folder, Ви можете встановити вікно, що відображається в Android view .

Import a module

Щоб import an existing module into your project, proceed as follows:

  1. Click File > New > Import Module.
  2. In the Source directory box, тип або виберіть directory module(s) що ви хочете import:
    • Якщо ви є importing one module, позначте його реєстратором.
    • Якщо ви є importing multiple modules from a project, визначте project folder. Для кожного module всередині folder, box appears and indicates the Source location and Module name. Make sure the Import box is checked for each module that you want to import.
    Якщо ваш module(s) має інші dependencies, вони будуть розраховані на import under Additional required modules.
  3. Type your desired module name(s) in the Module name field(s).
  4. Click Finish.

Next steps

Ви знайдете новий модуль, ви можете змінити модуль коду і ресурсів, configure module build settings, and build the module.

  • Для того, щоб дізнатися про те, що побудовані настройки для module, клацніть The Module-level Build File .
  • Щоб побудувати та керувати конкретним modulem, виберіть Select and build a different module .

You'll also want to add code and resources to properly support the new device. Для більш докладної інформації про те, як розробити app modules for different device types, see the corresponding documentation:

  • For Wear OS modules:
  • For Android TV modules:
  • For Glass modules: GDK Quick Start

Як ви розробляєте свій новий модуль, ви можете створювати пристрій незалежного коду, який є лише duplicated в різних app module. Натисніть на maintaining duplicate code, consider moving the shared code to library module and adding the library as dependency to your app modules. For more information on creating a library module and adding it as a dependency, see

Вступ

Комфорт середовища програмування багато в чому залежить від кількості другорядних дій, що не належать до програмування, які потрібно виконувати програмісту, а також глибини вивчення самого середовища розробки для її правильного налаштуванняпід власні потреби. У цьому сенсі ідеалом, на мій погляд, є середовище Дельфі, заточене якраз на максимально просту і швидку розробку додатків для Windows (справедливості заради зауважу, що з розробкою додатків під Android та інші системи там поки що не все так гладко, як хотілося б).

У цьому сенсі в царстві Android немає достатньо комфортних середовищ розробки, як це, втім, і належить програмам у світі безкоштовних операційних систем. Ще донедавна центральним засобом розробки вважався Eclipse зі спеціалізованими плагінами. Проте влітку 2013 року Google представив на суд громадськості нову IDE – Android Studio, засновану на давньому конкуренті Eclipse – системі IntelliJ IDEA. Потрібно сказати, що незважаючи на ранню версію системи, що не увійшла ще навіть в стадію Beta, вона вже перевершує зручністю Eclipse.

Тим не менш, програмістам все ще доводиться вникати як в численні нюанси налаштування середовища, так і в незвичні дії формування кінцевих файлів додатків, готових до поширення. І це все на тлі вивчення тих специфічних класів, які потрібно використовувати, щоб змусити інтерфейс належним чином працювати з кодом.

Після такого великого вступу, я лише розповім, як в Android Studio можна генерувати кінцеві apk-файли, готові до поширення, бо є нюанси. Сподіваюся, моя стаття хоч якось полегшить життя початківцям цієї, мабуть, найкращої на сьогоднішній день IDE для програмування під Android.

Ручний спосіб

  1. У лівому нижньому кутку Android Studio є маленька кнопочка, що керує відображенням спеціальних ярликів біля країв екрана. Ярлики відчиняють різні допоміжні вікна. Крім того, при простому наведенні на цю кнопочку вказівника миші з'являється список всіх цих вікон для швидкого відкриття потрібного. Відкриємо вікно Build Variants і навпроти нашого модуля у полі Build Variant переключимо режим збирання з debug на release.
  2. В основному меню відкриваємо Build → Generate Signed APK. Виникає повідомлення, яке, трохи перефразовуючи, можна перекласти приблизно так: ля проектів, що збираються утилітою Gradle, інформація про підпис та порядок підписування apk-файлів мають бути прописані у спеціальному сценарії. Налаштуйте сценарій, як описано в посібнику користувача: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Signing-Configurations . Потім запустіть "Gradle assembleRelease", і отримайте згенерований apk-файл у папці build/apk/» Це повідомлення рекомендує нам використовувати другий спосіб створення apk-файлу. Приймаємо інформацію до уваги, але продовжуємо ручний спосіб, натиснувши OK.
  3. Відкривається вікно помічника генерації підпису для apk-файлу. Ми вже знаємо, що всі програми, що розповсюджуються, для Android повинні мати цифровий підписавтора, інакше програма не встановиться на пристрої користувачів. Згенерований підпис повинен зберігатися в спеціальному файлі-сховищі, розташованому на вашому комп'ютері, звідки потім він буде вилучатися для підписання apk-файлів. При цьому одне сховище може зберігати кілька підписів для різних apk-файлів. Крім того, один і той самий підпис може використовуватися для підписання різних apk-файлів. Отже, для створення сховища натискаємо кнопку Create New… і заповнюємо поля, що відкрилися у вікні:
    1. Шлях для розміщення файлу сховища
    2. Пароль та підтвердження для доступу до сховища
    3. Ім'я підпису, за яким вона буде викликатись
    4. Пароль та підтвердження для доступу до підпису
    5. Термін дії підпису (за замовчуванням 25 років, залишаємо без змін)
    6. Хоча б одне із полів сертифікату. Зазвичай заповнюють ім'я та прізвище, місто та країну (RU).
  4. Натискаємо OK. Вікно закривається, і ми бачимо, що всі поля попереднього вікна автоматично заповнилися введеними нами даними. Ставимо галочку в полі Remember Password, щоб щоразу не набирати пароль, та натискаємо OK.
  5. У наступному вікні контролюємо шлях та ім'я apk-файлу. За умовчанням воно дорівнює імені модуля. Включаємо галочку Run ProGuard, щоб наш файл був оптимізований, і можемо навіть змінити файл конфігурації proguard-android.txt на proguard-android-optimize.txt для більш жорсткої оптимізації (хоча це може загрожувати деяким екзотичним смартфонам). Натискаємо Finish і чекаємо, дивлячись у рядок стану.
  6. Коли складання проекту закінчиться, з'явиться віконце з пропозицією відкрити папку з отриманим apk-файлом. Відкриваємо її та бачимо наш файл.

Скажу відразу, що, незважаючи на те, що я ставлю галочку в полі Run ProGuard, він у мене чомусь не відпрацьовує, і apk-файл залишається неоптимізованим. Можливо, це пережитки ранньої версії Android Studio ( у мене версія 0.5.4). Але вийти зі становища досить просто, увімкнувши цю галочку безпосередньо у файлі сценарію утиліти ProGuard. Знайдіть у вікні проекту усередині нашого модуля файл build.gradle. У секції android → buildTypes → release, що відповідає за генерацію релізу, поміняйте параметр runProguard із false на true.

Не забудьте після редагування сценарійного файлу синхронізувати з ним ваш проект. Для цього в панелі інструментів натисніть кнопку Sync Project with Gradle Files (стрілочка вниз із зеленого кружка) або посилання Sync Now у жовтій смузі повідомлення, що випливає у верхній частині вихідного коду. Після синхронізації можна спробувати знову зібрати apk-файл, починаючи з другого пункту нашої інструкції. Тільки на цей раз замість генерації нового сховища використовуємо вже створене. Всі наші паролі та налаштування збереглися, тому нам тільки залишається натискати у спливаючих вікнах OK-Next-Finish. Зверніть увагу, що знову згенерований apk-файл став трохи меншим, ніж минулого разу.

Автоматичний спосіб

Автоматичний спосіб дозволяє генерувати apk-файл без введення паролів при кожному запуску програми виконання, а також командою assembleRelease, доданою до списку конфігурацій і виконується тією ж кнопкою Run.

Для включення автоматичного режиму треба внести до вже знайомого нам файлу сценарію build.gradle нову секцію, що містить у тому числі інформацію про підпис:


signingConfigs ( release ( storeFile file("C:\\Users\\Ім'я Користувача\\KEYSTORE.jks") storePassword "ПарольСховища" keyAlias ​​"Ім'яПідпису" keyPassword "ПарольПідпису (ПарольПідпису) ) buildType proguard-android.txt"), "proguard-rules.pro"))))

Замість файлу "proguard-android.txt" можна вписати файл ще більш оптимізованих "proguard-android-optimize.txt". Це дозволить ще трохи скоротити обсяг apk-файлу.

Для внесення цієї секції в налаштування відкриємо файл build.gradle, розташований усередині нашого модуля та закоментуємо секцію buildTypes. Замість неї вставимо вищенаведену секцію. Не забудьте змінити шлях до файлу ключів, який ви створили в першій частині статті при ручному створенні apk-файлу, а також вписати правильне ім'я підпису та обидва паролі.

Після внесення змін до файлу натискаємо в панелі інструментів кнопку Sync Project with Gradle Files (стрілочка вниз із зеленого кружка) або посилання Sync Now у жовтій інформаційній смузі, що спливла вгорі, щоб синхронізувати змінені налаштування з проектом. Всі, автоматичний режимналаштований!

Тепер, щоб мати можливість генерувати apk-файл без запуску програми, додамо окрему команду запуску генерації apk-файлу до списку конфігурацій (комбо-бокс на панелі інструментів). Відкриємо віконце Gradle Tasks, натиснувши на ярлик Gradle у правого краю екрана, або вибравши його у спливаючому списку кнопки, розташованої в нижньому лівому кутку Android Studio. У секції All tasks розкриваємо список завдань для нашого модуля та правою кнопкою клацаємо по задачі assembleRelease. У тому, що з'явилося контекстному менювибираємо пункт Create… і вибране завдання додасться до списку конфігурацій.

Тепер ми можемо генерувати реліз і без запуску програми на виконання просто вибравши в списку конфігурацій команду assembleRelease і натиснувши кнопку Run. Результат автоматичного створення apk-файлу буде в папці build/apk/. Там будуть два файли: Ім'яМодуля-release-unaligned.apk та Ім'яМодуля-release.apk. Перший файл – це напівфабрикат. Він уже підписаний, але ще не вирівняний. Другий файл – вже вирівняний. Це і є наш кінцевий apk-файл, який ми вже можемо перейменувати та вільно поширювати.

Зауважу, що вирівнювання файлу гарантує, що всі несжаті дані починаються з позиції, кратної 4 байтам по відношенню до початку файлу. Це забезпечить оптимізацію продуктивності програми на пристрої. Коли файл вирівняний, Android здатний читати інформацію з файлу в міру потреби, а не завантажувати в пам'ять весь пакет повністю. У результаті зменшується обсяг оперативної пам'яті, що споживається запущеним додатком.

© 2022 androidas.ru - Все про Android