Всем привет!

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

В качестве испытательного полигона выступил 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. ksenobayt
    30.05.2018 14:19
    +1

    Реферальные ссылки ставить, не предупреждая о них — ататай и нехорошо.


    1. androidovshchik Автор
      30.05.2018 14:20
      -13

      Рад, что кто-то заметил такого типа пасхалки


  1. nafgne
    30.05.2018 14:25

    Ant! Ivy!
    Зачем?


    1. androidovshchik Автор
      30.05.2018 14:26
      -6

      Gradle сборка зависла на хостинге. Пришлось искать альтернативы, хоть мне и предпочтительней конечно gradle


  1. sindzicat
    30.05.2018 14:30
    +1

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


    1. androidovshchik Автор
      30.05.2018 14:32
      -5

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


      1. sindzicat
        30.05.2018 14:36

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


      1. sindzicat
        30.05.2018 14:38
        +1

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


    1. androidovshchik Автор
      30.05.2018 14:37
      -7

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


      1. sindzicat
        30.05.2018 14:40

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


        1. androidovshchik Автор
          30.05.2018 14:48
          -6

          Нет в день как раз. Блин, хабросообщество какое-то тронутое (точнее некоторые прокаченные кармой ее члены), минусуют все комментарии подряд, даже на stackoverflow адекватнее. По поводу стоимости, как-то дешево, мне кажется, но надо попробовать


          1. ksenobayt
            30.05.2018 14:50
            +5

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


            1. androidovshchik Автор
              30.05.2018 14:57
              -7

              Комментарии тоже с реферальными ссылками? Не вижу кстати в этом никакой проблемы. Я же не отправляю ссылками на вредоносный сайт


              1. LuckyStarr
                30.05.2018 15:21
                +3

                Выскажу своё личное мнение: посты с реферальными ссылками вызывают резкое отторжение сразу и не к посту, а к автору.


            1. LuckyStarr
              30.05.2018 15:22

              Неявную? )


              1. mwizard
                30.05.2018 15:32
                +2

                Как выразился автор, это «пасхалка».


      1. mwizard
        30.05.2018 15:13
        +10

        т.е. всего-то навсего 750 рублей в месяц! Как дешево, вот это да! Я не могу поверить своим глазам! Это лучшее предложение на рынке! И ни капельки не реклама!

        Главное, не смотрите на digital ocean (310 руб/мес), hetzner (180 руб/мес), amazon ec2 (165 руб/мес) и scaleway (145 руб/мес)! Просто не думайте — начнете думать, и ничего не получится! Wеgеt — лучший провайдер в мире! Только Baget, только хардкор!


        1. androidovshchik Автор
          30.05.2018 15:17
          -6

          Да, пожалуй, не стоило упоминать провайдера. Вышло из этого нехорошо все. Опишите просто свои варианты, каждому решать, какой хостинг лучше и почему


          1. mwizard
            30.05.2018 15:18
            +1

            Но ОЧЕНЬ ДЕШЕВО ЖЕ, однозначно стоит попробовать! Так дешево даже не бывает!


        1. MeGaPk
          30.05.2018 21:21
          +1

          Тихо! Не дай бог ТС ещё узнает о bitrise.io, где 200 билдов даром! (ни разу я не превысил этот лимит, даже когда часто билдил настраивая fabric и скрипты).


          1. easyman
            30.05.2018 21:36

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


            1. MeGaPk
              30.05.2018 21:38

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


            1. androidovshchik Автор
              30.05.2018 23:03
              -3

              FUCK YOU


              1. roscomtheend
                31.05.2018 09:22
                +1

                Информативно, свежо, не нарушает правила. Ниже ещё один — с показным непониманием ситуации. Несколько статей, а с механикой не разобрались, не удивительно что применяете такие через-решения.


  1. easyman
    30.05.2018 14:51
    +1

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


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


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


  1. androidovshchik Автор
    30.05.2018 15:29
    -12

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


    1. LoadRunner
      31.05.2018 10:26

      Рекомендую убрать статью в черновики, пока не стало ещё хуже. И пересмотреть своё поведение и отношение, а не бомбить.


      1. mwizard
        31.05.2018 12:19

        Поздно, автора ридонльнули.