История о билде apk на виртуальном хостинге

Всем привет!

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

В качестве испытательного полигона выступил Beget.

Какие собственно варианты есть для билда apk:

  • Gradle
  • Android Maven Plugin
  • Ant + Ivy
  • … Реверс не совсем подходит под задачу (наверное, тут может быть еще 100500 вариантов, но рассматриваю основные)

Настройка Android SDK, Oracle JDK не вызывает особых трудностей. Плюс на хостингах высокая пропускная способность, поэтому можно напрямую через ssh быстро скачать файлы (Здесь и далее подразумевается ОС Linux)
wget http://your-link

Также через консоль и установить нужные компоненты, например, касаемые Android SDK
sh sdkmanager "platforms;android-27"

Собственно, изначально и думал использовать gradle, но билд завершается не успев начаться. Зависает данная команда.
$ [...]/.local/jdk1.8.0_172/bin/java -verbose:class -Xmx512m -cp [...]/.gradle/wr
apper/dists/gradle-4.4-all/[...]/gradle-4.4/lib/gradle-launcher-4.4.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 4.4

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

Что ж это не единственный способ, попробуем другие. Я не разрабатывал под Android в 2009-2012 годах, правда застал закат Eclipse ADT. В те времена, по-сути еще и Gradle не было, поэтому maven и подобные сборщики были в ходу.

Начались трудности с указанием зависимостей. Не проблема их по-другому прописать, проблема заменить annotationProcessor и подобные вещи. Проблема указать использование java 8 (это еще даже не kotlin). Проблема изучения альтернативных IDE (В Android Studio без Gradle никуда). Проблема автоматизировать подписание apk (в gradle несколько строк все выполняют), настроить proguard

Здесь, кстати, интересный момент. По умолчанию в дебрях Android SDK скрывается proguard 4.7, но требуемая (именно c maven плагином) поддержка java 8 начинается только с 5 версии. Это зависит именно от используемого jdk. Единственным решением оказалось вручную заменить папку proguard (плюс копировать несколько вложенных файлов txt). Вроде как работает

Еще интересный момент обнаружился в работе с манифестом (оказывается уж очень много свойств прописывает Gradle за нас). Если не указать targetSdkVersion, то приложение будет иметь непонятный zoom экрана, да и тема будет не такой, какая указана в стилях. В данном проекте использовалась WebView, и без свойства android:hardwareAccelerated="true" нормальной работы этого виджета ждать не стоит

Напрашивается общий вывод



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

Отличный стартовый проект для работы с ant + ivy

У maven плагина есть собственный список демо-проектов

Пишите свои альтернативные варианты сборки, интересно узнать их больше. Всем спасибо
Поделиться публикацией
Комментарии 28
    +1
    Реферальные ссылки ставить, не предупреждая о них — ататай и нехорошо.
      –13
      Рад, что кто-то заметил такого типа пасхалки
      0
      Ant! Ivy!
      Зачем?
        –7
        Gradle сборка зависла на хостинге. Пришлось искать альтернативы, хоть мне и предпочтительней конечно gradle
        +2

        Зачем вам хостинг со всеми его ограничениями, когда самые дешёвые VPS-ки от 80 руб. стоят?

          –7
          Здесь он стоит всего 7 руб в день
            +1

            7×30=210 руб. в месяц. VPS можно взять от 80 руб. в месяц.
            Посмотрите, например, эти расценки.

              +1

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

              –8
              И кстати VPS/VDS доступна в бете на beget за 25 руб в день
                0

                Это за месяц? Ссылку не подскажете?

                  –9
                  Нет в день как раз. Блин, хабросообщество какое-то тронутое (точнее некоторые прокаченные кармой ее члены), минусуют все комментарии подряд, даже на stackoverflow адекватнее. По поводу стоимости, как-то дешево, мне кажется, но надо попробовать
                    +7
                    Вас минусуют за неявную реферальную ссылку и отчаянный форс того же самого хостера. Это крайне не приветствуется на Хабре.
                      –9
                      Комментарии тоже с реферальными ссылками? Не вижу кстати в этом никакой проблемы. Я же не отправляю ссылками на вредоносный сайт
                        +5
                        Выскажу своё личное мнение: посты с реферальными ссылками вызывают резкое отторжение сразу и не к посту, а к автору.
                        0
                        Неявную? )
                          +4
                          Как выразился автор, это «пасхалка».
                    +11
                    т.е. всего-то навсего 750 рублей в месяц! Как дешево, вот это да! Я не могу поверить своим глазам! Это лучшее предложение на рынке! И ни капельки не реклама!

                    Главное, не смотрите на digital ocean (310 руб/мес), hetzner (180 руб/мес), amazon ec2 (165 руб/мес) и scaleway (145 руб/мес)! Просто не думайте — начнете думать, и ничего не получится! Wеgеt — лучший провайдер в мире! Только Baget, только хардкор!
                      –6
                      Да, пожалуй, не стоило упоминать провайдера. Вышло из этого нехорошо все. Опишите просто свои варианты, каждому решать, какой хостинг лучше и почему
                        +1
                        Но ОЧЕНЬ ДЕШЕВО ЖЕ, однозначно стоит попробовать! Так дешево даже не бывает!
                        +1
                        Тихо! Не дай бог ТС ещё узнает о bitrise.io, где 200 билдов даром! (ни разу я не превысил этот лимит, даже когда часто билдил настраивая fabric и скрипты).
                          0

                          Ваш комментарий на порядок ценнее этой статьи, а Вы его не болдом и без реферальной ссылки…
                          bitrise.io

                            0
                            жаль не выложил доп. рефералку :), футболку хотелось бы получить :D.
                    +1

                    Зачем всё усложнять?


                    Уже есть куча готовых docker контейнеров.
                    Можно посмотреть, как они собираются, если есть желание.


                    P.S. если кто-то не замечал, в консоли Google cloud есть докер. Можете интерактивно работать там, пока что это бесплатно.

                      –16
                      Оставляю комментарий, чтобы его как можно больше заминусовали. Вперед! Не стесняйтесь, кому присуще стадное поведение
                        0
                        Рекомендую убрать статью в черновики, пока не стало ещё хуже. И пересмотреть своё поведение и отношение, а не бомбить.
                          0
                          Поздно, автора ридонльнули.

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

                      Самое читаемое