Как собрать андроид приложение из исходников
Самый популярный вопрос среди начинающих зерокодеров — можно ли собрать мобильное приложение без программирования. Расскажем, с помощью каких инструментов это можно сделать, чем они отличаются и сколько это стоит.
Какими бывают мобильные приложения
Существует три подхода к созданию мобильных приложений:
- Традиционный. Предполагают написание кода, создание макета, оптимизацию, команду и другие этапы.
- Зерокодинг. Не требует знания языков программирования. Это похоже на использование Тильды (это тоже, кстати, инструмент зерокодеров) для создания сайтов: не надо знать CSS, HTML, JS — просто расставляешь блоки с контентом, настраиваешь анимацию и получаешь отлчиный сайт.
- Low-code — это что-то среднее между зерокодингом и программированием: писать код все-таки приходится, но немного.
Инструменты зерокодинга уже могут покрыть большинство задач бизнеса. И вместо того, чтобы изобретать велосипед, можно за несколько дней запустить MVP или проверить гипотезу с минимальными затратами. А если в запасе хотя бы пара недель — то и запилить полноценное приложение. Решения на зерокодинге можно собирать в одиночку — вся инфраструктура предоставляется платформами и не надо дополнительно тратиться на хостинг, администрирование серверов и т.п.
При этом обычная разработка затянется на 3−6 месяцев и съест до миллиона рублей — если работать с фрилансером или скромной региональной студией.
На курсе «Зерокодер мобильных приложений» ты научишься создавать приложения под iOS и Android. Простые — за 1−2 дня, сложные — за 1−2 недели. Курс состоит из 5-и модулей, 30+ уроков, тренировочных задач и Q&A-сессий с лучшими экспертами в Glide и Adalo.
На чем собирают мобильные приложения без кода
Самые мощные и популярные инструменты мобильной разработки без кода — Adalo, Glide и Bubble. С их помощью можно создать и опубликовать мобильное приложение. Они бывают трех типов:
Мобильная версия сайта — сайт в интернете, адаптированный под экраны смартфонов. Это самый «бесправный» тип приложений: всегда нужен интернет, пуши можно включать только в браузере, постоянно на виду элементы навигации браузера.
PWA (Progressive Web Application) — когда мобильная версия сайта устанавливается на смартфон как приложение. Из плюсов — не надо поддерживать две кодовые базы, под iOS и Android, приложение всегда «обновлено» до последней версии, можно работать с некоторыми нативными функциями смартфонов. Например, отправлять пуши, устанавливать ярлык на экран, элементы навигации браузера не мешают (их просто нет). такие приложения умеют создавать и Bubble, и Adalo, и Glide.
Нативные — когда приложение публикуется в официальных сторах. В Adalo уже встроена такая функция, а приложения на Bubble можно обернуть в специальный контейнер и тоже опубликовать в Google Play и App Store. Нативные приложения позволяют работать со всеми функциями телефона: камерой, микрофоном, GPS, контактами, файлами, акселерометром, push-уведомлениями, памятью девайса, адаптивной версткой — всё, как в обычном коде, только без кода.
Glide
-
по макияжу по подписке. аренды жилья в Вене. фотошколы. наставников в Digital.
Glide — платформа для создания мобильных приложений без кода. Лучше всего функции сервиса описывает девиз «Создавайте приложения из Google Sheet за пять минут, бесплатно». Glide-приложения нельзя загрузить в сторы, но можно опубликовать в интернете как PWA. Платформа отлично подходит для создания простых приложений и MVP — много готовых симпатичных шаблонов, понятные интуитивные настройки.
На бесплатном тарифе есть ограничение по объему данных, 10% комиссия со всех платежей и лого Glide, а платные стартуют от $12 в месяц.
Adalo
-
для бронирования тренировок и снаряжения в фитнес-клубе
- Индийский headhunter для педагогов
Adalo — nocode-платформа для создания веб- и мобильных приложений, которые можно публиковать в App Store, Google Play или в интернете как PWA. Новая версия раскатывается в сторы прямо из личного кабинета на платформе, публикуется тоже оттуда (но нужен аккаунт в AppStore и Google Play). Adalo позволяет создавать приложения в интуитивно-понятном интерфейсе методом drag’n’drop из готовых или кастомных дизайн-шаблонов. Эта платформа мощнее Glide и на ней можно собирать более сложные приложения.
На бесплатном тарифе нет ограничений по количеству приложений, а вот количество данных фиксировано — плюс придется «потерпеть» лого платформы. Платные тарифы стартуют от $50 в месяц и дают возможность публиковаться в сторах.
Bubble
-
для геймификации карьеры мобильных сайтов для рестораторов
Bubble — одна из самых продвинутых визуальных сред программирования для создания веб-приложений. На нем можно собирать настольные или адаптивные веб-приложения для любого размера экрана.
Bubble позволяет проектировать сложную бизнес-логику — это настоящий комбайн. Приложения на Bubble нельзя выкладывать в сторы напрямую, но есть обходные пути — обернуть их в специальный контейнер и после этого опубликовать в маркетплейсах от Apple и Google.
На бесплатном тарифе тоже есть лого платформы, нельзя привязать приложение к своему домену, количество объектов в базе данных ограничено 200 и закрыт доступ к API. Платные тарифы начинаются от $25 в месяц.
Экспресс-сравнение платформ
Мобильный зерокодинг и традиционная разработка: стоимость и сроки
Разработка приложения «под ключ» — сложный процесс, в котором участвует целая команда специалистов. Программисты пишут бэкенд и фронтенд, дизайнеры создают «человеческий» UX/UI и вкусную картинку, тестировщики ищут ошибки, проджекты управляют всем процессом, лиды — командами, эккаунты общаются с клиентами. И каждый не просто просиживает штаны, а действительно работает и нужен.
Сколько денег возьмет за разработку веб-студия и сколько времени потратит, зависит от сложности проекта и имиджа компании, но в среднем — от 500 тыс. до 5 млн рублей, а средний срок разработки — 4−6 месяцев (по сведениям с Хабра, DTF и Appinventive). Сложные приложения легко могут стоить дороже 10 млн рублей и пилиться больше года — особенно если поджимают сроки или подрядчик входит в какой-то рейтинг вроде Теглайна. И всё это без учёта поддержки, обновлений, продвижения и возможных проблем с масштабированием и доработками.
Nocode-разработка обходится дешевле. Например, Сергей Горелов в одиночку собрал полнофункциональное приложение для фитнес-клуба за пару недель — такое же приложение обычная студия будет разрабатывать около полугода и возьмёт за работу 700−800 тысяч рублей.
А Евгений Спорыхин из nocode Hero вместе с WeLovEnocode запилил карьерный трекер с геймификацией на Bubble. Вместе с детализацией техзадания, доработками, дополнительными функциями и пятью итерациями по дизайну (клиент не совсем понимал, какой он хочет видеть визуальную составляющую) это заняло три месяца и обошлось заказчику примерно в 700 тысяч рублей.
Аналогичная работа «в коде» длилась бы гораздо дольше, а заказчик отдал бы не меньше 4 млн рублей. При этом первую полнофункциональную версию запустили уже через 2 недели — всё остальное ушло на доработки дизайна и добавление новых идей клиента.
Да, у мобильных приложений на зерокодинге пока есть некоторые ограничения: например, чтобы сделать массовый сервис с трафиком в десятки миллионов человек, когда критичны скорость работы и премиальный дизайн, придется создавать свое решение, нанимать программистов или отдавать разработку на аутсорс. А вот первые версии такого продукта — особенно MVP — можно собирать и без кода. Приложения на несколько десятков или сотен тысяч пользователей nocode-платформы также выдержат без проблем.
Снижение стоимости мобильных приложений неизбежно привлечет массовую категорию новых клиентов — теперь приложение может себе позволить даже скромный ИП-шник или владелец пары овощных киосков.
Примеры мобильных приложений без кода на Glide
MAKE. Мобильная методичка по макияжу по подписке на Glide
- Платформа: Glide
- Время на разработку: 2 недели (большая часть — наполнение базы данных)
- Затраты: 12$ (базовый тариф в Glide)
Игорь — профессиональный программист. Как-то раз ему понадобилось выполнить техническую задачу за пару дней — так он вошел в зерокодинг. Сначала автоматизировал на Integromat, потом перешел на Glide. А в пандемию он назерокодил приложение для обучения макияжу MAKE — помогал жене перевести бизнес в онлайн.
Игорь освоил Glide за три дня, еще 4 дня делал структуру приложения. Дольше всего вносил список из 400 продуктов — это заняло 2 недели😂 Приложение интегрировано с ЮKassой, Integromat и GetCourse, можно выбрать свой цветотип, форму лица и глаз, найти инструменты и средства для макияжа, а также получить советы — где их лучше купить, чтобы не попалась подделка.
Цепочка проверки оплаты в Integromat
Если пользователь оплатил подписку с помощью банковской карты, информация о ней сохраняется. За 3 дня до окончания подписки пользователя предупредят о предстоящем списании. После автооплаты система пришлет результат — успешно прошло списание или денег на карте не оказалось. Эта логика собрана на GetCourse.
Настройка автооплаты и цепочки уведомлений в GetCourse
WOM. Airbnb для аренды квартир в Вене
- Платформа: Glide
- Время на разработку: 70 часов
- Затраты: 12$ (базовый тариф в Glide)
Путешествуя по Вене, digital-стратег Олег Ширяев обнаружил, что арендовать на короткий срок квартиру в центре города практически невозможно. Если и удавалось найти вариант, то квартира была едва пригодна для жилья. Все объекты контролировались риэлторами и разного рода посредниками.
Когда Олег нашел способ арендовать жилье без посредников, к нему пришла идея мобильного приложения.
WOM — это площадка, которая помогает найти и забронировать жилье в центре Вены напрямую у владельца. Если уже пользовались Airbnb, то и в WOM разберетесь. У приложений даже схожие интерфейсы — чтобы пользователи не переучивались и заново не привыкали к новому меню.
Сервис разработан на Glide — платформе мобильной none-code разработки. Через веб-интерфейс разработчик редактирует визуал, а с данными работает в подключенной Google-таблице, которая выполняет роль базы данных. Создатели Glide говорят, что простейшие приложения можно собрать за 7(!) секунд.
Интерфейс Glide
WOM получился полноценной площадкой с каталогом квартир, картой, разделами «Вам может быть интересно» и «Сейчас просматривают». Олегу понадобилась ночь на изучение интерфейса Gilde и 2-3 дня на создание экранов и заполнение базы данных.
Экраны в WOM
WOM хоть и разрабатывалось любителем, но выглядит красиво и современно. Это еще одно достоинство none-code приложений: разработчик имеет дело только с готовыми шаблонами. Поэтому получается профессиональный дизайн без услуг художника. Сейчас актуальная версия на немецком тестируется в Вене.
Проекция. Онлайн-фотошкола с элементами соцсети и админкой
- Платформа: Glide
- Время на разработку: 3 недели
- Затраты: 12$ по базовому тарифу
Еще один пример удачного приложения, собранного без кода — обучающая платформа «Проекция». Ее разработал Илья Ткач для сообщества фотографов «Фотодепартамента».
«Проекция» — приложение для учеников одноименной онлайн-фотошколы. В нем ученики делают домашние задания, получают оценки и общаются друг с другом в тематических чатах. Администраторы приложения размещают обучающие материалы и упражнения через панель управления. Можно оформить подписку и получить доступ к закрытым материалам и курсам.
Есть задания в виде тестов (чек-листы) и такие, к которым нужно приложить фото или написать развернутый ответ. Преподаватель видит результаты и выставляет оценки. Учеников, которые сделали задание лучше других, можно хвалить «знаком отличника».
Благодаря приложению и сообществу ученики сильнее погружаются в обучение, а преподавателям проще размещать материалы и общаться с учениками. Каталог учеников и чаты помогают фотографам нарабатывать профессиональные связи.
Примеры мобильных приложений без кода на Adalo
Kangoo Club Kaluga. Приложение для фитнес-клуба с расписанием, записью и бронированием униформы
- Платформа: Adalo
- Время на разработку: 2 недели
- Затраты: 12$ по базовому тарифу
Сергей — владелец веб-студии и ни разу не писал код. Но в конце прошлого года с помощью Adalo за две недели назерокодил полноценное мобильное приложение для одного необычного фитнес-клуба и загрузил их в сторы.
Особенность клуба в том, что для тренировки нужно арендовать специальные ботинки Kangoo: их ограниченное количество, и может не достаться нужный размер. Поэтому нужно было создавать своё приложение.
Внутри приложения есть онбординг новых пользователей, личный кабинет для оплаты кампаний на самых популярных площадках с бонусами, календарь тренировок и бронирование обуви, запись и отмена записи на занятия, социальные механики, push-уведомления, админка для сотрудников клуба, профиль клиента с информацией об абонементе.
Благодаря приложению и сообществу ученики сильнее погружаются в обучение, а преподавателям проще размещать материалы и общаться с учениками. Каталог учеников и чаты помогают фотографам нарабатывать профессиональные связи.
Приложение Kaluga Kangoo можно скачать в App Store и Google Play.
Пример мобильного приложения без кода на Bubble
Ornum. Мобильное приложение для геймификации обучения и личного развития
- Платформа: Bubble
- Время на разработку: 3 недели
- Затраты: бесплатный тариф Bubble
Еще год назад Евгений управлял SMM-агентством и не думал, что скоро будет собирать полноценные мобильные приложения. Вместе с WeLoveNoCode он сделал Ornum — приложение для управления карьерой.
Само приложение Евгений собрал в одиночку — 2−3 недели, после этого его упаковали в специальные контейнеры, чтобы загрузить в App Store и Google Play. На сегодняшний день это самое крутое мобильное приложение на Bubble от российских разработчиков, которое мы встречали.
В Ornum реализована сложная и интересная бизнес-логика: большая база данных с 49 скилами и связями между ними, настроена система управления краткосрочными и долгосрочными целями, есть механика ежедневных заданий, а также красивые дашборды и дорожные карты навыков — всё это генерируется автоматически и сделано без кода.
Настройки механик геймификации мобильного приложения в редакторе Bubble
Революция в мобильной разработке
Зерокодинг — отличный способ создать настоящее мобильное приложение, которое по визуалу и функциям не уступает традиционным решениям, но выигрывает в скорости и стоимости.
В мобильной разработке сейчас происходит то же, что и в создании сайтов в 2014−2015 годах. Технологии быстро развиваются и становятся доступными — это даёт хороший запас маржинальности в коммерческих и личных проектах. Gartner прогнозирует, что к 2024 году 65% разработки всех приложений перейдет на no- и low-code — так что прямо сейчас мы наблюдаем революцию в разработке.
Те, кто поверил в новые технологии, уже сейчас зарабатывают на мобильной разработке без кода от 300 тыс. руб. в месяц на 2−3 проектах. Это золотое время — и оно скоро может закончиться. Сейчас один человек может составить конкуренцию студиям мобильной разработки со штатом программистов и дизайнеров: nocode-разработка занимает меньше времени, а себестоимость проекта снижается до 50 раз.
Конечно, собирать серьезные приложения уровня Сбера или Яндекс Go на зерокодинге не стоит, а вот для создания приложений в малом и среднем бизнесе или MVP для стартапов и даже технологических гигантов это отличный подход.
Пересборка Android из исходных кодов требуется для многих задач. Это может быть потребность в недостающих модулях ядра Linux, компиляция с более агрессивными опциями оптимизации, создание и отладка собственных модулей, а также различные кастомизации под себя. В этой статье я попытаюсь рассказать об общих принципах сборки Android на примере чистого AOSP (Android Open Source Project), а также его модификации CyanogenMod.
Введение
Итак, мы будем собирать Android из исходных кодов. Условно разделим этот занимательный процесс на три шага:
- Подготовка системы.
- Скачивание исходников.
- Собственно сама сборка.
В процессе мы скомпилируем Android для четырех разных устройств, включая официальный Galaxy Nexus, поддерживаемый командой CyanogenMod LG Optimus Black, а также Samsung Galaxy Y и Motorola DEFY, для которых существуют только неофициальные порты CyanogenMod, развиваемые независимыми разработчиками.
Предварительные ласки, или настройка системы
Для начала определимся с тем, что нам потребуется для сборки AOSP из исходников. Во-первых, Linux, желательно Ubuntu, и, если хочешь собрать Android версии 2.3.x (Gingerbread) и выше, ОС должна быть 64-разрядной. Замечу также, что по заявлению команды разработчиков, «беспроблемная» сборка сейчас возможна только под Ubuntu версий 10.04–11.10, тогда как на 12.04 соберется только последняя версия Android. Тем не менее я проводил все эксперименты на 12.04 и не встретил каких-либо ошибок или некорректной работы прошивки.
Кроме того, нужно позаботиться о достаточном количестве дискового пространства и оперативной памяти. Исходники Android весят около 14 Гб, плюс в процессе сборки испарится еще где-то 15 Гб. Оперативной памяти потребуется не меньше 2 Гб, да и то вкупе с областью подкачки, размером 3–4 Гб. Если все эти требования удовлетворены, можно приступить к подготовке системы. Для начала установим необходимые пакеты:
Немного слов о JDK: рекомендуется использовать Oracle Java JDK, но, так как он больше не поставляется в репозиториях Ubuntu, его нужно скачать с сайта Oracle и установить самостоятельно (goo.gl/N4IB2). Кроме того, нам понадобится гугловский инструмент для работы с репозиториями repo, представляющий собой Python-обертку вокруг системы контроля версий git:
Теперь система готова, и нам нужны исходники Android.
Загрузка исходников
Перечисленные манипуляции по настройке системы справедливы для сборки любой версии и любой модификации Android. Дальнейшие наши действия уже зависят от наших желаний. Для примера давай начнем со сборки AOSP для Galaxy Nexus. Это типичнейший вариант. Для этого создадим каталог (можешь назвать его как угодно, это непринципиально), в котором собственно и будут лежать исходники:
Далее необходимо инициализировать репозиторий с помощью repo:
На этом этапе repo попросит ввести имя и e-mail, что делать совсем не обязательно. По умолчанию repo будет настроен на ветку master указанного репозитория (это последняя версия системы). Если тебе нужны исходники другой версии, укажи ее с помощью ключа '-b'. Например:
Далее можно приступить к загрузке файлов:
Скриншот 1. Успешная загрузка исходников
Сборка
Перед тем как начать процесс компиляции, мы должны выполнить команды скрипта envsetup.sh для установки всех необходимых переменных окружения и функций. Для этого переходим в каталог с исходниками (у меня
/android/system) и выполняем:
Только в случае успешного выполнения этого скрипта можно вызывать команду:
Она предназначена для выбора цели сборки или, говоря другими словами, конкретного устройства. Вызвав ее без параметра, устройство можно будет выбрать из списка. В нашем случае нужно указать full_maguro-userdebug, где maguro — кодовое имя Galaxy Nexus GSM/HSPA+. После этого можно запустить процесс компиляции:
Здесь 4 — число потоков компиляции. Это значение рекомендуется выбирать между максимальным и удвоенным максимальным числом аппаратно поддерживаемых потоков (для процессоров AMD это число равно количеству ядер процессора, для Intel это число нужно умножить на два), с учетом того что на каждый поток уйдет как минимум 2 Гб оперативки, которая, кстати говоря, может закончиться в самый неподходящий момент.
Лично у меня процесс рухнул на сборке библиотеки libwebcore.so из-за нехватки памяти. После увеличения свопа с 2 до 3 Гб результат был тем же. Пришлось собирать этот модуль отдельно и в один поток: make libwebcore -j1, после чего вновь начинать общую сборку. Возможны и другие ошибки, но, как правило, они уже изучены, и решение можно найти в Гугле. При успешной компиляции последняя строка вывода будет содержать путь и размер образа (скриншот 2).
Скриншот 2. Сборка AOSP завершена
На этом сборка AOSP закончена. Но что, если нам нужна прошивка для другого аппарата? Так вот, чистый AOSP ты сможешь собрать только под «гугловские» аппараты плюс Sony Xperia S. Конечно, есть решения и для других девайсов, но для таких устройств лучше и легче всего собрать модификацию AOSP — CyanogenMod.
Установка CyanogenMod через CWM
Установку кастомных прошивок следует выполнять из ClockworkMod Recovery (CWM). Это кастомная консоль восстановления, позволяющая устанавливать прошивки с любыми цифровыми подписями. Мануал о том, как установить CWM на твой конкретный девайс, ищи на xda-dev или просто погугли. Я опишу лишь установку CyanogenMod с его помощью.
Скриншот 5. Главное меню CWM
Для начала выключи телефон и включи его с зажатыми кнопками + + (комбинация может отличаться для разных устройств). После этого ты увидишь меню, показанное на скриншоте 5. Для навигации используй клавиши громкости, для выбора выделенного пункта — клавишу(или ). Для начала выполни сброс до заводских настроек с помощью пункта wipe data / factory reset, а затем смонтируй карту памяти с помощью меню mounts and storage -> mount USB storage и скопируй на нее файл прошивки. Далее выбери пункт «install zip from sdcard» и выбери файл с прошивкой (скриншот 6). Готово! CyanogenMod установлен.
Скриншот 6. Выбор архива для прошивки
CyanogenMod
Существует несколько поддерживаемых версий CM, включая CyanogenMod 7 (на базе Gingerbread, для маломощных бюджетных устройств), CM9 (на базе ICS) и до сих пор разрабатываемая CM10 (на базе JB). Сборка каждой из версий CM происходит одинаково. Для примера мы скомпилируем CM10 для LG Optimus Black, но я постараюсь упомянуть обо всех отличиях и для других версий CM. Стоит заметить, что компиляция CM ничем не отличается от AOSP, поэтому действия по подготовке системы будут теми же, плюс потребуется ADB, который можно скачать отдельно или в комплекте Android SDK. Процесс получения исходников аналогичен, за исключением адреса:
Если тебе нужны исходники другой версии, то просто укажи ее имя после ключа '-b': «-b gingerbread» для CM7, «-b ics» для CM9. Ждать придется не меньше, чем при скачивании AOSP, так что можешь спокойно заниматься своими делами. По умолчанию загрузятся только сорцы самого CM без специфических для конкретных устройств файлов, которые можно получить с помощью другой команды:
Также нам потребуются закрытые приложения RomManager и Terminal Emulator, которые можно получить так:
А вот теперь все! Можно собирать:
Здесь brunch — один из хуков, создаваемых envsetup.sh. Пока идет процесс сборки, мы попробуем разобраться, что же такое brunch, а также в других хитрых функциях, используемых в CM.
Агрессивные оптимизации
Чтобы повысить производительность прошивки, ты можешь попробовать применить более агрессивные опции оптимизации компилятора. Для этого вместо «mka bacon» запусти такую команду:
Но это на твой страх и риск, так как можешь нарушить совместимость сборки с софтом и железом.
Ускорение сборки
Если ты соберешь и AOSP, и CM, то обязательно заметишь, что CM компилируется значительно быстрее. И ты наверняка заметил, что при сборке AOSP использовалась команда make, а тут — brunch. Если разобраться, команда brunch имя_устройства является эквивалентом такой команды:
Что же тогда такое «mka bacon»? А в этой команде и спрятана вся соль. Это функция, содержащая следующую команду:
Она переключает планировщик процессора в режим SCHED_BATCH и повышает приоритет текущей задачи, так что ей отдается больше времени на исполнение, а также устанавливает максимальный приоритет на ввод-вывод для текущей задачи и запускает make, распараллеливая его на все процессоры. За счет этого сборка CM проходит быстрее, но при этом пользоваться компом во время сборки становится нереально.
Если ты планируешь часто пересобирать прошивку, то есть смысл настроить ccache, чтобы ускорить процедуры пересборки. Для этого установи одноименный пакет и добавь в
/.bashrc такие строки:
И сразу же после загрузки исходного кода выполни:
Значение 50G здесь для примера. Ты можешь указать произвольный размер кеша. Теперь вернемся к нашей сборке. В случае ее удачного завершения (скриншот 3) в каталоге
/android/cm/out/target/product/p960/ будет лежать файл с названием вроде cm-10-XXXXXXXXX-UNOFFICIAL-p970.zip. Это и есть наша прошивка, которую можно установить с помощью консоли восстановления (recovery).
Скриншот 3. Сборка CM завершена
- Существуют автоматизированные системы сборки Android с исходных кодов:goo.gl/i0pvm и goo.gl/yyaLN.
- Проприетарные файлы можно также извлечь из архива прошивки, а не с рабочего девайса. Это можно сделать с помощью скрипта unzip-files.sh, если таковой имеется в дереве устройства.
- В сборку CM не включены стандартные приложения от Google (gapps). Для их установки скачай отсюда архив и установи через CWM.
Сборка CyanogenMod для кастомного устройства
Не беда, если твоего девайса нет среди официально поддерживаемых. Как я уже говорил, ребята с XDA или 4PDA часто портируют CyanogenMod под свои устройства, поэтому неофициальный порт CM можно найти практически для любого устройства. Все исходные тексты и конфигурационные файлы для девайса носят имя «дерево устройства» (device tree) и должны лежать в каталоге «device/производитель/имя_устройства» исходников CM. Для того чтобы собрать CyanogenMod под свое устройство, ты должен найти в Сети (в большинстве случаев находится на GitHub) дерево устройства и поместить его в соответствующий каталог.
Для примера возьмем Samsung Galaxy Y, для которого нет официального CM. На GitHub пользователя vivekkalady (goo.gl/soi4I) я нашел дерево устройства этого аппарата для CM7. Каковы мои действия? Я должен скачать содержимое репозитория в каталог «device/samsung/totoro» (totoro — кодовое имя Galaxy Y), а затем запустить процесс компиляции. Но где брать проприетарные файлы? Их можно извлекать только с девайса с рабочим официальным CM, что невозможно в нашем случае. Часто эти файлы уже есть в дереве устройства, но я их там не нашел, зато нашел в другом репозитории на GitHub того же vivekkalady (goo.gl/5JvIg). Далее остается скопировать их в каталог «vendor/samsung/totoro», получить RomManager и Terminal Emulator, как показано выше, и начать сборку:
Проприетарные файлы уже находятся в исходниках, так что искать или извлекать их не требуется. Остается только скачать «несобираемое» ПО и запустить процесс сборки:
Кстати, по причине залоченного загрузчика кастомные прошивки для DEFY работают на ядре, загружаемом на лету с помощью модуля kexec. Это ядро носит экспериментальный статус, и его придется прошивать отдельно уже после установки самой прошивки (файл 2ndboot_06.10.zip на нашем диске).
Скриншот 4. CM10 на Defy
- Официальная страница проекта AOSP; о сборке CyanogenMod; под x86; можно почитать подробнее о дереве устройства:; о breakfast, lunch и brunch.
Вместо итогов
Если тебе не удалось собрать Android с первого раза — не нужно расстраиваться. Наберись терпения и продолжай. Свою первую прошивку я собрал через неделю после первой попытки. Я постарался описать основные принципы сборки Android из исходных кодов, но большое количество важной информации все же осталось за кадром. В сносках я оставил несколько ссылок, по которым есть дополнительная информация. На этом у меня все. Удачной сборки!
Начиная с MV, игры созданные этим редактором возможно запустить в браузере, поддерживающем технологии HTML5, такие как WebGL, 2DCanvas, WebAudio и JavaScript. Так же, вы можете запустить игру через браузер Android устройства.
Вместо того, чтобы описывать запуск через браузер, мы покажем, как собрать Android приложение. Web-приложения, запускаемые как обычные, называются "Гибридными (Hybrid App)", это хороший способ сделать приложение кросс-платформенным.
Часть приложений используют для игры стандартный браузер устройства на Android. Но встроеный браузер имеет плохую поддержку HTML5. По этому, мы используем технологию "Crosswalk Project", что использует движок Chrome, который имеет хорошую поддержку HTML5.
Подробное описание доступно на сайте проекта, изучите, если вам интересно. ([Crosswalk Project на Android]).
Операционные системы
Данное руководство подходит для Windows 8.1 (7 тоже) и OS X 10.10.
2 Подготовка среды для создания пакетов
Установка игр, сделанных с помощью RPG Maker MV, на Android требует создания apk файла. По сути, это архив формата ZIP, содержащий необходимые файлы для запуска приложения. Мы называем создание apk файла "Упаковкой(Packaging)".
Требуется Интернет-соединение для загрузки необходимых инструментов.
2-1 Установка и настройка Python
Скрипт сборки, предоставленный Crosswalk Project, упростит создание пакета игры. Скрипт создан с использованием скриптового языка "Python", поэтому нам нужно будет скачать и настроить его. Данный пункт описывает установку Python на Windows, ибо Python предустановлен в OS X, следовательно, установку мы пропускаем, переходите сразу в пункт 2-2.
2-1-1 Загружаем и устанавливаем Python
Установим Python, например, в C:\Python34.
2-1-2 Настраиваем переменную PATH
Настроив переменную PATH, вы сможете использовать Python без указания полного (абсолютного) пути к нему.
Нажмите правой клавишей по ярлыку "Мой компьютер" на своем рабочем столе, в выпадающем меню выберите [Свойства] и перейдите на вкладку [Дополнительно].
Щелкните [Переменные среды]. Выберите [Path] в [Системных переменных] и дважды кликните по ней.
Добавьте в конец (без кавычек) ";C:\Python34\", сохраните.
Закройте окно [Свойств] и откройте [Проводник]. Нажмите Win + R и введите CMD, чтобы открыть окно командной строки.
Введите "python --version" и нажмите клавишу Enter. Если отобразилась версия Python, то всё получилось.
2-2 Устанавливаем и настраиваем Oracle JDK
Для запуска Android SDK и "Ant" вам потребуется JDK (Java Development Kit) от Oracle. Начиная с OS X 10.6, JDK уже установлен и вам не нужно делать это самому.
2-2-1 Загружаем и устанавливаем JDK
Загрузите нужную вам версию. Для Windows есть две версии, 32-битная для (Windows x86) и 64-битная для (Windows x64), будьте внимательны и выберите то, что подходит для вашей системы.
Выберите "Accept License Agreement", тогда загрузка станет доступна.
Запустите установщик Java SE Development Kit и не меняйте никаких настроек.
2-2-2 Настраиваем пути для JDK
Нам нужно создать переменную среды JAVA_HOME. Это просто. Как и в настройке Python в шаге 2-1-2, в [Системных переменных] щелкните [Создать].
Введите "JAVA_HOME" в название переменной и укажите путь до JDK, например, C:\Program Files\Java\jdk1.8.0_51.
Далее, откройте переменную [Path] и добавьте в конец ";%JAVA_HOME%\bin\".
Теперь проверим корректность установки, так же как и для Python.
Введите "java --version" и нажмите Enter. Если в ответ напечатает версию java, то всё получилось.
2-3 Устанавливаем и настраиваем Apache Ant
Ant - программа для сборки, использущая Java. Установка требуется как и для Windows, так и для OS X.
2-3-1 Загружаем и устанавливаем Ant
Распакуйте Ant куда захотите, но лучше всего распакйте в корень диска C.
2-3-2 Настраиваем пути для Ant
Также как и для JDK, нам нужно создать новую переменную.
Создайте переменную ANT_HOME, содержащую путь до Ant.
Далее откройте [Path] и введите ";%ANT_HOME%\bin\".
Что бы проверить установку, откройте консоль и введите "ant --version", нажмите Enter.
2-4 Качаем и настраиваем Android SDK
SDK - сокращение от "Software Development Kit" - оно содержит необходимые программы для разработки программ. Программы для упаковки и тестирования включены в этот SDK.
2-4-1 Качаем и устанавливаем Android SDK
Выберите [STAND-ALONE SDK TOOLS] и щелкните [Download the SDK now] на следующей странице. На Август 2015, последняя версия SDK была r24.3.3. Скачайте установочную программу (exe файл).
Установите SDK в корень диска C, что бы вам было проще его найти.
2-4-2 Загружаем дополнительные компоненты через Android SDK Manager
Так как базовая установка SDK не содержит всех нужных элементов, мы загрузим их через Android SDK Manager. Android SDK Manager можно найти в меню "Пуск".
Вы можете скачать USB-драйвера через Android SDK Manager. Для сборки необходимо скачать [Android SDK platform-tools], [Android SDK Build-tools] и API (последняя версия [Android 5.1.1 (API 22)]).
Так же, стоит добавить [Google USB Driver] (упомянутый выше) в категории [Extras], что позволит вам установить apk сразу по USB.
- Android SDK platform-tools
- Android SDK Build-tools
- Android5.1.1 (API 22)
- Google USB Driver
*Возможно, требуемые компоненты будут уже выбраны.
2-4-3 Настраиваем пути для SDK
Добавьте в переменную PATH три пути.
Проверьте пути. Введите в консоли "adb version" и нажмите Enter.
2-5 Скачиваем заготовку Android приложения для Crosswalk Project
Для удобства файл должен быть распакован в корень диска C.
Подготовка к сборке завершена.
3 Разрабатываем игры при помощи RPG Maker
После окончания разработки игры на RPG Maker, выберите [Экспорт (Внедрение в оф. русской локализации)] в меню Файл. Выберите [Android / iOS] и экспортируйте, так вы получите всё необходимое.
Для удобства, мы экспортировали проект на рабочий стол.
4 Создаём пакет игры
Получим из исходников apk файл для установки игры на Android.
4-1 Создаём manifest.json
Создайте manifest.json файл любым текстовым редактором (прим.переводчика: советую использовать notepad++).
Ниже указан привер содержимого файла.
manifest.json
Исключая имя и версии, остальное можете оставить как есть.
Сохраните manifest.json в папке "/www".
Ниже указаны возможные параметры.
Параметр | Значение |
---|---|
name | Название игры. |
xwalk_version | Номер версии. Увеличивайте версию с каждым пакетом. !ВНИМАНИЕ!, формат версии должен состоять из трёх цифр! Пример: 0.0.1. |
start_url | Стартовая страница игры. Обычно это index.html. |
display | Если параметр будет "fullscreen", то игра запустится во весь экран. |
orientation | Ориентация экрана. стандарная - горизонтальная: "landscape" |
icons | Собственно, иконки разных размеров. |
4-2 Создаём пакет
Внутри примера, скачанного в шаге 2-5, есть файл "make_apk.py". Это скрипт, запускающий сборку apk. Запускать его нужно при помощи командной строки.
Отеройте папку "/www", нажмите Win + R и введите CMD. В окне командной строки должен быть указан путь до папки "/www". Если нет, то перейдите в нужную папку, используя команду:
Ниже приведена примерная команда для сборки пакетов.
Скрипт сборки написан на Python. Так мы можем вызвать его со специальными параметрами.
Вы получите два файла, "Sample_0.0.1_arm.apk" и "Sample_0.0.1_x86.apk". Файл содержащий в имени [arm] создан для архитектуры процессоров ARM, который стоит в большинчтве Android устройств. Файл содержащий [x86] создан для архитектуры x86, которая используется реже.
Если вы ещё раз запустите скрипт, старые файлы будут заменены новыми. Чтобы не допустить этого, всегда перемещайте их в другие папки.
4-3 Устанавливаем на устройство
4-3-1 Подготавливаем Android устройство
Для начала поищите в настройках пункт [Отладка по USB]. Если же его нет, выполните инструкцию ниже, НО БОЛЬШЕ НИЧЕГО НЕ ТРОГАЙТЕ! Вам нужно будет включить [Параметры разработчика] на вашем устройстве.
Для её активацииз найдите в настройках [Номер сборки] и нажмите на неё около семи раз.
*Расположение номера сборки в разных устройствах находится в других меню.
4-3-2 Устанавливаем по USB
Теперь мы можем установить игру через USB-соединение. Если вы не установили драйвера, вы можете скачать их через Android SDK Manager.
Соедините Android устройство с вашем компьютером с помощью USB-кабеля. Ваш кабель должен поддерживать передачу данных, а не только зарядку.
Когда соединение будет установлено, может появится окно, спрашивающее вас "Хотите ли вы включить USB-отладку". Отвечайте "Да"
Введите в консоли "adb devices" и нажмите Enter. Если вы сделали всё верно, в консоли отобразится имя вашего устройства.
Мы используем команду "install", для установки пакета. Введите "adb install -r Sample_0.0.1_arm.apk" и нажмите Enter. Параметр "-r" позволяет обновить приложение, если оно уже установлено, сохраняя данные.
Консоль выведет [Success], если удалось установить приложение. Запустите игру, выбрав её в меню устройства.
4-3-3 Установка через Интернет
Загрузите ваше приложение на любой файлообменник, например, Google Drive, потом скачайте приложение через браузер и установите его.
Как правило, вы должны разрешить установку приложений не из PlayMarket. Для этого перейдите в [Настройки] → [Безопасность] → [Неизвестные источники]* и активируйте эту опцию.
* Опция может лежать в меню [Приложения]
5 Публикуем в Google Play
Если вы хотите распространять игру через Google Play, вам придётся завести аккаунт разработчика: Google Play Developer.
Мы НЕ будем расписывать весь процесс регистрации в Google Play. Изучите необходимые материалы и туториалы, чтобы правильно создать аккаунт.
Тут описана только важная информация.
5-1 Подписываем приложение
"Подписав" приложение, вы доказываете, что именно ВЫ создали его. Это как поставить подпись в документе. Неподписанные приложения нельза опубликовывать в Google Play.
Есть несколько способов подписать приложение, мы же используем скрипт make_apk.py.
5-1-1 Создаем ключевой файл
Ключевой файл хранит в шифрованном виде вашу информацию. Он показывает, что вы один из разработчиков приложения.
Вы можете использовать несколько ключей, но одного вполне достаточно.
Кроме того, вы можете использовать ключевой файл для других приложений.
Мы создадим ключевой файл программой "keytool", которая входит в состав в JDK. Ниже дан пример команды.
-genkey -v Создаёт новый файл ключа. -keystore Указывает имя файла. -storepass Указывает пароь для магазина. В примере мы использовали пароль [password], но вы должны придумать свой, сложный пароль. -alias Задает псевдоним ключа. -keypass Указывает пароль для ключа. В примере мы использовали пароль [password], но вы должны придумать свой, сложный пароль. -keyalg Задаёт алгоритм шифрования ключа (используем RSA). -validity Срок использования ключа(в днях). Установите значение побольше, иначе будет невозможно обновить приложение.
После введения данной комманды, вам надо будет ввести в консоли дополнительную информацию.
Введите ваше имя, организацию, город проживания и т.д. Код страны для России - "RU".
После введите <Yes>.
Ключевой файл появится в той папке, в которой вы открывали консоль.
5-1-2 Подписываем приложение
Мы используем ту же комаду, что и в пункте 4-1, указав дополнительные опции.
Добавились keystore-path, keystore-alias, keystore-passcode и keystore-alias-passcode.
--keystore-path Путь до ключевого файла. --keystore-alias Псевдоним ключевого файла, указанный при его создании. --keystore-passcode Пароль, указанный при создании ключевого файла. --keystore-alias-passcode Пароль ключевого файла, указанный при его создании.
Загрузите apk в Google Play Developer Console. Заполните необходимую информацию.
Постройте сами вместо того, чтобы загружать¶
AndroidAPS недоступен для скачивания из-за законодательства, касающегося медицинских устройств. Построить приложение для собственного использования вполне законно, но вам не разрешается передавать копию другим! См. раздел FAQ .
Важные Примечания¶
- Используйте Android Studio версии 4.1.1 или новее для построения apk. не поддерживается в Android Studio 4.1.1.
** Конфигурация по требованию ** не поддерживается текущей версией модуля Android Gradle!
Рекомендуемые спецификации компьютеров для сборки файла apk¶
Имейте в виду, что и 64-разрядная процессор, и 64-разрядная ОС являются обязательным условием. Если ваша система не соответствует этому условию, вы должны изменить аппаратное или программное обеспечение или всю систему. Рекомендуется использовать SSD(Solid State Disk) вместо HDD(Hard Disk Drive), так как при создании APS-файла потребуется меньше времени. Рекомендация не является обязательной. Тем не менее, использовать HDD при создании apk файла можно,, если у вас много времени на завершение сборки.
Эта статья разделена на две части.¶
Общие замечания¶
В целом, шаги, необходимые для создания файла APK таковы:
Пошаговое руководство¶
Подробное описание шагов, необходимых для создания файла APK.
Установите git (если у вас его нет)¶
Следуйте инструкциям на странице установки git .
Установите Android Studio¶
Cледующие снимки экрана были сделаны c Android Studio версии 3.6.1. Экран может выглядеть несколько иначе в зависимости от используемой версии Android Studio. Но у вас должно получиться. Здесь можно найти помощь участников .
Одна из наиболее важных заповедей при установке Android Studio: ** Будьте терпеливы! ** Во время установки и настройки Android Studio загружает многие элементы, которые отнимают время.
Установите Android Studio и настройте при первом запуске.
Решите, хотите ли вы совместно использовать данные с Google или нет.
Задайте путь к git в параметрах¶
Убедитесь, что git установлен на вашем компьютере.
Windows¶
Нажмите на маленький треугольник рядом с Контролем Версий (1.) чтобы открыть подменю.
Если автоматическая настройка будет успешной, то будет показана версия git.
Перезагрузите компьютер, чтобы обновить системную среду.
Скачайте код AndroidAPS¶
Если вы еще не перезагрузили компьютер после настройки пути к git в параметрах, сделайте это сейчас. Необходимо обновить системную среду.
Существует два варианта запуска нового проекта:
Если вы уже открыли Android Studio и не видите экран приветствия, то выберите File (1.) > New (2.) > Project from Version Control. (3.)
Выберите каталог для сохранения клонированного кода. (2.)
В правом нижнем углу появится информация о том, что в Android Studio выполняются фоновые задачи.
Предоставьте доступ, если ваш брандмауэр просит разрешения.
Загрузите Android SDK¶
Нажмите Файл > Настройки.
Нажмите на маленький треугольник рядом с Appearance & Behaviour (1.).
Щелкните на небольшом треугольнике рядом с System Settings (2.) и выберите Android SDK (3.)
Подтвердите изменения, нажав кнопку OK.
Дождитесь завершения установки.
Android Studio может рекомендовать обновить систему gradle. Не обновляйте gradle! Это может привести к трудностям!
Создание подписанного APK¶
Подписание означает, что вы подписываете созданное вами приложение, но цифровым способом, как цифровым отпечатком пальца в самом приложении. Это необходимо потому, что Android имеет правило, согласно которому принимается только подписанный код для запуска по соображениям безопасности. Для получения дополнительной информации перейдите по этой ссылке.
В этом случае магазин ключей является всего лишь файлом, в котором хранится информация о цифровой подписи. Он зашифрован и информация защищена паролями.
Нажмите на символ папки (1.), чтобы выбрать путь к хранилищу ключей.
Выберите путь к хранилищу ключей (2.). **Не сохраняйте в той же папке, что и проект. Необходимо использовать другой каталог! ** Одна из опций может быть ваша домашняя папка.
Введите имя файла для хранилища ключей (3).
Пароли для хранилища ключей и ключа не должны быть очень сложными. Обязательно запомните их или запишите в безопасное место. В случае, если вы не запомните пароли смотрите устранение неполадок для потерянных ключей .
Введите (5.) и подтвердите (6.) пароль для хранилища ключей.
Сделайте то же самое для ключа (7. + 8.).
Срок действия (9.) по умолчанию составляет 25 лет. Изменять значение по умолчанию не требуется.
Необходимо ввести имя и фамилию (10). Вся остальная информация необязательна.
Убедитесь, что поле для запоминания паролей отмечено (1.). Так что вам не нужно вводить их снова при следующей сборке apk (то есть при обновлении до новой версии AndroidAPS).
Отметьте флажки V1 и V2 для подписи версий (2.).
Нажмите Finish . (3.)
В случае, если сборка не удалась, обратитесь к разделу поиск и устранение неисправностей .
В секции журнала событий нажмите «locate».
app-full-release.apk это файл, который вы ищете.
Перенос приложения на смартфон¶
Самый простой способ перенести приложение на ваш телефон - через кабель USB или Google Drive. Обратите внимание, что передача по почте может вызвать трудности и не является предпочтительным способом.
На вашем телефоне необходимо разрешить установку из неизвестных источников. Инструкции, как это сделать, можно найти в интернете (например здесь или здесь).
Читайте также: