Есть у разработчиков одна вредная привычка — мериться железом. Зайдешь в любой чат айтишников, а там стон стоит: «Ой, мне не хватает 16 гигов оперативки, Android Studio опять зависла», «Ой, сборка проекта идет десять минут, нужен новый процессор».
И новичкам внушают эту чушь: хочешь кодить под Android — готовь пару тысяч долларов на нормальное железо. Иначе страдай.
Так вот. Это ложь.
Ваш смартфон, который вы сейчас держите в руках — это уже мощный компьютер. И его производительности за глаза хватит, чтобы не просто написать код, но и скомпилировать полноценный, подписанный APK-файл. Прямо здесь. В автобусе, на лекции или лежа на диване. Без ноутбука.
Речь про инструмент, который возвращает программированию его первобытную, дикую суть. Никаких красивых кнопочек. Только хардкор, только командная строка.
Android Studio — для слабаков?
Давайте честно, Android Studio — это монстр. Она тащит за собой гигабайты библиотек, систему сборки Gradle (которая жрет память как не в себя) и кучу визуального мусора.
А что, если всё это выкинуть? Что нужно, чтобы приложение заработало? По сути, всего несколько утилит: компилятор Java/Kotlin, упаковщик ресурсов и штука, которая превращает всё это в понятный Андроиду формат.
Парень с ником silvadev13 собрал всё это в один легкий скрипт — ApkBuilder. Это набор инструментов для Termux. Если вы не знаете, что такое Termux, то вы, вероятно, ошиблись каналом. Но я поясню: это эмулятор терминала Linux на вашем телефоне. Черный экран, зеленые буквы, магия.
Карманный конвейер
ApkBuilder делает вещь, которая кажется невозможной для адептов классической разработки. Он позволяет вам создать структуру проекта (папки src, res, манифест) прямо в памяти телефона, написать код в любом текстовом редакторе, а потом одной командой собрать готовый установочный файл.
Внутри этого скрипта работают «взрослые» инструменты:
- AAPT2 — упаковывает картинки и верстку.
- Kotlinc и Javac — компилят ваш код (да, поддерживается и Java, и Kotlin).
- D8 — перегоняет это в байт-код.
- Apksigner — подписывает приложение, чтобы Android разрешил его установить.
И всё это происходит без участия Gradle. Быстро. Жестко. Эффективно.
Как это выглядит на практике
Забудьте про «File -> New Project». Тут всё ручками. Вы создаете папки app/src/main. Кладете туда свой AndroidManifest.xml. Пишете код.
А потом открываете Termux и вводите команду, от которой почувствуете себя героем фильма «Матрица»:
python builder.py myproject/ --min-sdk 21 --target-sdk 34
Проходит несколько секунд (секунд, Карл! не минут, как в Android Studio на слабом ноуте), и у вас готовый APK.
Да, тут нет визуального редактора, где можно мышкой перетаскивать кнопки. Верстку придется писать в XML по памяти или подглядывая в документацию. Jetpack Compose пока не поддерживается, так что придется работать по старинке или использовать ViewBinding (он, кстати, работает).
Но зато вы получаете абсолютную мобильность. Пришла идея в голову по дороге домой? Достал телефон, накидал класс, скомпилил, проверил.
Кому это нужно?
Конечно, писать огромный корпоративный проект уровня Сбербанка на экранной клавиатуре — это вид мазохизма, заслуживающий отдельной статьи в медицинском журнале.
Но для трех категорий людей это находка:
- Студенты и новички без мощного ПК. Не слушайте снобов. Начинать можно с телефона.
- Гики и хакеры. Возможность собрать тулзу прямо на устройстве, которое вы атакуете (в целях пентеста, разумеется) — это бесценно.
- Олдфаги. Те, кто устал от того, что IDE думает за них. Здесь вы один на один с кодом. Ошибка в запятой — и сборка упадет. Это учит внимательности лучше любых курсов.
Чтобы запустить эту шарманку, вам понадобится сам Termux и пакеты: 17-я Java, котлин и питон. Всё ставится парой команд pkg install.
В общем, если хотите почувствовать себя настоящим инженером, а не просто оператором IDE — попробуйте. Ощущения непередаваемые.
Источник: ApkBuilder на GitHub
Для теста:
Программирование для самых маленьких: подробный гайд, где объяснена каждая запятая
Ниже — самая подробная инструкция в истории человечества. Я буду объяснять каждую команду: зачем мы её пишем и что происходит внутри телефона. Мы пройдем весь путь: от пустого экрана до вашего личного приложения с иконкой.
ЭТАП 1: Подготовка инструментов (чтобы было чем работать)
Вам понадобятся два приложения из магазина (Google Play или F-Droid):
- Termux — это наш «станок». Черное окно, куда мы пишем приказы.
- Hacker's Keyboard — это наша «отвертка». Обычная клавиатура не имеет кнопок Ctrl, Alt и стрелок. Без них в программировании делать нечего.
- Настройка: Зайдите в Hacker's Keyboard, включите её, а в настройках поставьте галочку "Use permanent notification" (чтобы не исчезала).
ЭТАП 2: Настройка Терминала (Выходим из подвала)
Открываем Termux. Сейчас он «видит» только свои внутренности. Нам нужно пустить его к файлам телефона.
Команда 1:
termux-setup-storage
Если спросит [Y/n], жмите y и Enter.
- Зачем: Мы просим Android разрешить приложению доступ к флешке/памяти.
- Действие: На экране появится системное окно. Жмите «Разрешить».
Команда 2:
cd /sdcard
- Зачем: cd означает "change directory" (смени папку). Мы переходим из системных недр в обычную память телефона.
- Результат: Курсор теперь стоит в корне вашего хранилища.
Команда 3:
mkdir DevGarage
- Зачем: mkdir — "make directory" (создай папку). Мы создаем отдельную папку DevGarage, чтобы не мусорить среди ваших фоток и музыки.
- Результат: В памяти появилась новая папка.
Команда 4:
cd DevGarage
- Зачем: Заходим внутрь только что созданной папки. Теперь всё, что мы сделаем, будет лежать там.
ЭТАП 3: Закупка оборудования (Скачиваем программы)
Termux пустой. Ему нужны «мозги» (язык Java, компиляторы).
Команда 5 (копируйте целиком):
pkg update -y && pkg install -y openjdk-17 kotlinc aapt2 d8 apksigner python git nano
- Зачем:
- pkg install — команда установки.
- openjdk-17 — язык Java (на нем работает Android).
- python — язык, на котором написан наш скрипт-строитель.
- git — инструмент для скачивания кода из интернета.
- nano — простой текстовый редактор.
- Действие: Побегут буквы. Это надолго (3-5 минут). Если спросит [Y/n], жмите y и Enter.
ЭТАП 4: Доставка станка (Качаем ApkBuilder)
Нам нужен сам инструмент, который будет собирать приложение.
Команда 6:
git clone https://github.com/silvadev13/ApkBuilder.git
- Зачем: Мы клонируем (копируем) папку с инструментом из интернета к себе на телефон.
Команда 7:
cd ApkBuilder
- Зачем: Заходим внутрь скачанной папки. Мы на месте.
ЭТАП 5: Закладка фундамента (Создаем папки проекта)
Приложение — это не один файл, это дерево папок. Создадим их вручную. Назовем проект Notepad (Блокнот).
Команда 8 (одной строкой):
mkdir -p Notepad/app/src/main/java/com/example/notepad Notepad/app/src/main/res/layout Notepad/app/src/main/res/mipmap
- Зачем:
- src/main/java... — тут будет лежать код (логика).
- res/layout — тут будет лежать дизайн (кнопки, поля).
- res/mipmap — тут будет лежать иконка (картинка).
ЭТАП 6: Установка иконки (Сворачиваем Termux)
Пока отложим терминал.
- Откройте обычный Проводник (файловый менеджер) на телефоне.
- Найдите любую картинку (котика, логотип), которую хотите видеть на иконке.
- Скопируйте её.
- Идите по пути: Внутренняя память -> DevGarage -> ApkBuilder -> Notepad -> app -> src -> main -> res -> mipmap.
- Вставьте картинку туда.
- ОБЯЗАТЕЛЬНО переименуйте её в ic_launcher.png (или .jpg, если это джипег). Имя должно быть точным!
ЭТАП 7: Пишем документы (Кодинг)
Возвращаемся в Termux. Используем хакерскую клавиатуру.
Шаг А: Манифест (Паспорт)
Приложению нужен паспорт, где написано его имя и какая у него иконка.
Пишем:
nano Notepad/app/src/main/AndroidManifest.xml
Откроется редактор Nano. Вставьте этот текст:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.notepad">
<application android:label="Блокнот"
android:icon="@mipmap/ic_launcher">
<activity android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Как сохранить:
- Нажмите Ctrl + o (буква "о").
- Нажмите Enter (подтвердить имя файла).
- Нажмите Ctrl + x (выход).
Шаг Б: Дизайн (Внешность)
Опишем, как приложение выглядит.
Пишем:
nano Notepad/app/src/main/res/layout/activity_main.xml
Вставляем:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top"
android:hint="Здесь мог быть ваш текст..."
android:background="@null"/>
</LinearLayout>
Сохраняем так же: Ctrl+o, Enter, Ctrl+x.
Шаг В: Логика (Мозги)
Главный файл, который запускает всё это.
Пишем:
nano Notepad/app/src/main/java/com/example/notepad/MainActivity.java
Вставляем:
package com.example.notepad;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Так же сохраняем и выходим.
ЭТАП 8: Сборка (Момент истины)
Мы всё подготовили. Теперь запускаем скрипт на языке Python, который соберет из этих текстовых файлов готовое приложение.
Команда 9:
python builder.py Notepad/ --min-sdk 21 --target-sdk 33 --version-code 1 --version-name "1.0"
Жмите Enter. Если побежали зеленые строки и в конце написано Build Successful — вы гений.
ФИНАЛ: Где искать файл?
Многие теряют файл на этом этапе. Он зарыт глубоко.
- Закройте Termux.
- Откройте Проводник.
- Идите точно по этому пути:
- Внутренняя память > DevGarage > ApkBuilder > Notepad > app > build > bin
В папке bin лежит файл gen.apk. Это оно! Жмите, устанавливайте и радуйтесь своей иконке на рабочем столе.
Теперь вы можете, допустим, показать эту статью нейросети и попросить её вместе с вами по этой схеме сделать приложение которое вам действительно необходимо.
Удачи!!!
🔔 Теперь понятно, зачем мы писали эти заклинания? Если да — жмите колокольчик на канале. Если всё равно запутались — пишите в комменты на каком шаге, спасем! 📰