LINUX.ORG.RU

Android разработка без android studio.

 


4

2

Есть опыт лет 15 в C++, под Android пытался лениво начать кодить пару раз, первый раз убила конски развесистая и тяжёлая IDE, где всё это предлагалось сделать. Второй раз убило то же самое - IDE стала ещё более конская и тяжёлая. Я фалломорфирую с того факта, что для простого белого окна с одной кнопкой мне надо видеть 100500 каких-то файлов в иерархии проекта, кучу кнопок в этой студии, запускать какую-то жирную систему сборки с .xml файлами т.п.

Не понимаю как можно начать с чего-то не базового. Такой подход, типа качните нашу IDE под 700 метров, запустите, он отожрёт пару гигов озу, создайте проект и т.п. - какая-то жопа, а не базовость. Базовое - это когда тебе дают голимый notepad, ты пишешь код, потом пишешь Makefile из 4 строк, запускаешь make и получаешь свою софтину. Далее накручиваешь. К IDE приходишь, когда понимаешь что накрутил так дохера, что уже тяжело через vim + mc на всё это смотреть, например.

В общем, хочется какого-то мануала/книги, где подразумевается, что ты можешь создать легитимное android-приложение из минимума говна и палок. Например имея только vim, adb, ещё там что-нибудь относительно редко меняющееся, желательно без всяких gradle систем сборки, а просто запуская java из консоли. И получая легальный современный нормальный .apk, который google play market не забанит ни за что.

Нахрена мне такое надо? А иначе основ не понять. Я бы хотел понимать что там в самых низах (ясно, что низами называется что-то вроде функции main в java, линковалки ресурсов и т.е., пакователя .apk файлов, Manifest.xml и т.п.). Т.е., чтобы, например, я смог собрать android-приложение, которое минимальное по размеру для данного функционала. Т.е. чтобы в него не было включено 100500 каких-то левых метафайлов, дескрипторов самой студии, всяких лицензий, копирайтов, ресурсов сотен иконок разного размера, прочей дефолтной ботвы. Мне не надо потребления лишних 4 КБ в .apk на то, что там для соблюдения этикета лежит какая-нибудь портянка про то, что это собрано такой-то, мать её, студией. И чтобы, скажем, я должен был руками всё это где-то прописывать, на каждом шагу огребая что чего-то не хватает и мог, разбираясь, понять нафига нужен каждый мелкий элемент процедуры.

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



Последнее исправление: hlamotron (всего исправлений: 3)

Куча xml файлов и другого мусора никуда не уйдут, так Android устроен. Ты можешь писать это в чём угодно, но это вряд-ли юзабельно. Банально видеть preview xml разметки, которую ты пишешь... Нигде кроме как в студии. А в целом писать можно в чём угодно, собирать можно через CLI gradle.

Jefail ★★★★
()
Последнее исправление: Jefail (всего исправлений: 1)

Использую vim + cmake + make. Но у меня C++, а кода на Java около 10%. И он от проекта к проекту почти не меняется - один раз написал inapp, analytics, advertise, etc.

andreyu ★★★★★
()
Ответ на: комментарий от Solace

Самое странное желание в Dev за последнее время, имхо.

ИМХО никого не интересует, если ты не царь. Интересна объективная истина )

hlamotron
() автор топика

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

anonymous
()
Ответ на: комментарий от Solace

Самое странное желание в Dev за последнее время, имхо.

По-моему, желание вполне разумное, я бы даже присоединился. Особенно, если ставится цель не только что-то накодить, но и понять, что у этого «чего-то» под капотом.

К примеру, однофайловую консольную программу на C можно написать, имея под рукой только gcc и mcedit. Добавив к этому make, можно получить многофайловый проект. С GUI-проектами, конечно, всё сложнее, но и здесь можно ушатать некий минимальный набор инструментов (для Qt, к примеру, добавляются qmake, uic, moc, lrelease, ну и дизайнер для формочек - всё же их напрямую из текста лепить уныло).

С Андроидом, похоже, так не получится?..

hobbit ★★★★★
()
Ответ на: комментарий от andreyu

Использую vim + cmake + make. Но у меня C++, а кода на Java около 10%. И он от проекта к проекту почти не меняется - один раз написал inapp, analytics, advertise, etc.

Оно всё закрытое, или можешь привести публичный пример минимального проекта, построенного по такой идеологии?..

hobbit ★★★★★
()

Если не хочется писать на java андроидную аппу, но писать под андроид надо, есть различные фреймворки. По сути, предоставляется java glue, в котором надо только имя аппы прописать. А сама аппа - .so, которую java открывает. В общем, есть способы откосить от java и IDE.

slapin ★★★★★
()
Ответ на: комментарий от Solace

Самое странное желание в Dev за последнее время, имхо.

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

Legioner ★★★★★
()

По теме: могу сказать, как делал бы я. Взял бы хелло-ворлд (созданный той же Android Studio) и внимательно расковыривал бы весь процесс билда и разбирался бы с каждым файлом. Правда я Gradle знаю, если ты не знаешь, это может осложнить дело. В целом не думаю, что процесс сборки какой-то очень сложный. Насколько я понимаю, сначала код на Java компилируется Java-компилятором (javac), потом байткод (.class-файлы) преобразуется вроде dex-транслятором в байткод для Android-а, получившиеся ресурсы объединяются с нужными для приложения ресурсами, добавляется манифест (XML-файл) и всё это упаковывается в ZIP-архив и куда-то там добавляется RSA-подпись. Но это очень примерно и неточно.

Legioner ★★★★★
()
Ответ на: комментарий от hobbit

Оно всё закрытое, или можешь привести публичный пример минимального проекта, построенного по такой идеологии?..

Если вы о коде, то он закрыт. Да и зачем вам мой код?

andreyu ★★★★★
()
Ответ на: комментарий от hobbit

С GUI-проектами, конечно, всё сложнее, но и здесь можно ушатать некий минимальный набор инструментов (для Qt, к примеру, добавляются qmake, uic, moc, lrelease, ну и дизайнер для формочек - всё же их напрямую из текста лепить уныло).

С Андроидом, похоже, так не получится?..

С ним точно так же.

EXL ★★★★★
()
Ответ на: комментарий от hobbit

С Андроидом, похоже, так не получится?..

Конечно не получится. Там свои приколы на каждый чих. В принципе, на том же C++ можно спокойно писать мобильные игрушки и касаться джавы палочкой. Но никакого «погружения» это не даст.

Solace ★★
()

еще интересная статья (перевод) почти по теме: Играем в APK-гольф. Уменьшение размера файлов Android APK на 99,9% https://habrahabr.ru/post/339938/

x905 ★★★★★
()

html+javascript

anonymous
()
Ответ на: комментарий от Legioner

это ты класный гайд «как всрать xx лет жизни вникуда» написал

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

anonymous
()

не занаю как сейчас, но в прошлых сдк можно было легко сделать так: 1. создать устройство с помощью avd manager, которое будет отвечать таргет платформе под которую будешь билдить приложение, далее 2. SDK_PATH/tools/android update project -p . -t ID, где ID - айдишник устройства из п1 3. пишем код в vim/emacs/notepad 4. ant debug/release/etc - собрать апк

anonymous
()

в дополнение к прошлому сообщению - таким способом можно собирать например шаблонные примеры к ndk, расположение файлов и каталогов которых можно взять за основу для шаблонного дефолтного проекта(только в случае с ндк добавится еще пункс с nd-build)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.