Комментарии 18
И чем же это лучше, чем использование Gradle?
Каким образом, если в статье нет ничего похожего на объяснение того, что происходит? Только набор действий без комментариев.
В том, что писать bash скрипты умеют многие, а умеющих с Gradle работать гораздо меньше.
Я нашел статьи, где были просто набор команд. Их и применил. Для таких примитивных проектов gradle, даже make в общем-то не нужен.
Если покажете статью, где то же самое делают с помощью gradle, мне будет интересно почитать.
А gradle это минимум 2Гб оверхеда и медленная сборка. AndroidStudio это минимум 3Гб RAM но лучше больше, гиг триграм и других индексов.
а тут слил с флешки 14Мб, распаковал, написал
./ma init-app myapp
./ma build myapp
./ma install myapp
и оно на телефоне и сборка myapp занимает 2сек.
если надо по классам поискать, то весь индекс по всему андройду занимает ~160кб.
./ma find-class Intent | grep android
android.app.IntentService
android.app.PendingIntent
android.app.PendingIntent$CanceledException
android.app.PendingIntent$OnFinished
android.content.Intent
android.content.IntentFilter
android.content.IntentFilter$AuthorityEntry
android.content.Intent$FilterComparison
android.content.IntentFilter$MalformedMimeTypeException
android.content.IntentSender
android.content.IntentSender$OnFinished
android.content.IntentSender$SendIntentException
android.content.Intent$ShortcutIconResource
android.content.pm.LabeledIntent
android.provider.ContactsContract$Intents
android.provider.ContactsContract$Intents$Insert
android.provider.Contacts$Intents
android.provider.Contacts$Intents$Insert
android.provider.Contacts$Intents$UI
android.speech.RecognizerIntent
android.speech.RecognizerResultsIntent
./ma show-class android.content.Intent | grep put | grep double
public android.content.Intent putExtra(java.lang.String, double);
public android.content.Intent putExtra(java.lang.String, double[]);
Я так понимаю, java все равно надо через пакетный менеджер устанавливать?
не обязательно — можно использовать с той же флешки, указав путь к каталогу через "org.gradle.java.home"
#!/bin/sh
cd $(dirname $0)
dir=$PWD
# https://youtrack.jetbrains.com/issue/IDEA-78860
export IBUS_ENABLE_SYNC_MODE=1
export JAVA_HOME=$dir/bin/jdk1.8.0_74/bin
export PATH=$dir/bin/jdk1.8.0_74/bin:$PATH
./bin/android-studio/bin/studio.sh
Изначально был скрипт который монтировал Android sdk, ndk, studio, eclipse, jdk и gradle и всякие кэши android studio из squashfs а поверх overlayfs но потом пришлось отказаться от overlayfs в пользу aufs. (На штатной убунте не работает. Автор Miklos Szeredi сказал что в «This should be fixed in recent kernels (4.2 and above)») Так вот все файлы монтировалисть как readonly а изменения складывались в отдельную папку. И сразу стало ясно что избыточность просто потрясающая. 3.6Гиг против 30Мб.
Зато разворачивается быстро скопировал нажал mount-fs и запустил android-studio и не надо ждать пока весь этот шлак выкачается по новой, да и как обычно обязательно что-то пойдёт не так. Только железо должно быть повынослевее и минимум с 3Гб озу, а лучше с 32.
android-ndk-r10e.squashfs - 605Mb
android-sdk-linux.squashfs - 2100Mb
android-studio.squashfs - 314Mb
eclipse.squashfs - 265Mb
java.squashfs - 58Mb
java-src.squashfs - 13Mb
jdk1.8.0_74.squashfs - 161Mb
user.squashfs - 177Mb
Как видно из статьи начать разработку в консоли совсем несложно.
но зачем?) нормальную морду без UI не сделаешь (100500 сборок с правками хмл не для меня), а без UI только для себя любимого делать… Я затрудняюсь представить что мне нужно написать для себя без нормального UI, и что не может быть сделано через эмулятор баша…
но зачем?
"Потомучто мы можем!" :)
Я в начале стати написал, что этот способ не годится для сложной разработки.
Но если вам надо сделать что-то простое или, например, собрать чужую программу, то почему бы и нет.
Для этих целей IDE не надо, а gradle устанавливается по зависимостям, при установке SDK.
Или как в моем случае, Android Studio на нетбук не влезет, а программу надо написать очень примитивную.
Поэтому для ряда задач такой способ сорки имеет право на жизнь.
что мне нужно написать для себя без нормального UI, и что не может быть сделано через эмулятор баша…
Я намучался на андройде с эмулятором питона и SL4A и решил переписать тот же код на Java. Мне результат понравился.
Дальше как обычно
ps: из минусов получается довольно большой объём, как у toolset-ов так и у результирующего apk.
Пишем и собираем приложения для Android в linux консоли