SDL3 на Android: Сборка C/C++ проекта из консоли
Запись от 8Observer8 размещена 14.08.2025 в 19:44. Обновил(-а) 8Observer8 01.04.2026 в 14:31
Показов 9582
Комментарии 3
|
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т.д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т.д. Сборка примера
Использование SDL3-callbacks вместо функции mainИнструкция находится здесь: Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly Результаты запуска на телефонеПример SDLCross с рисованием квадратов месте касаний: Пример на чистом OpenGL ES 2.0, который рисует треугольник зелёного цвета: Экран телефон можно выводить на компьютере с помощью программы https://github.com/Genymobile/scrcpy через USB-кабель | |||||||||||||||||||||||||||||||||||||||||
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 3
Комментарии
-
Инструкция для Си-проекта для Android выше базируется на этом примере одного из ключевых разработчиков SDL с ником madebr. Это достаточно простой, но базовый пример, который запускается на Android без проблем. Пример показывает, как работать с некоторыми базовыми вещам:- обработка касаний нескольких пальцев
- рисование квадратов разных цветов в месте касаний
- воспроизведение звуков при касании с помощью отдельной библиотеки SDL3_mixer
- использование четырёх callback-функций SDL3 вместо main(), таких как: SDL_AppInit(), SDL_AppEvent(), SDL_AppIterate(), SDL_AppQuit(), как показано в базовых примерах из репозитория SDL3, например: examples/renderer/01-clear/clear.c, что позволяет использовать один и тот же код проекта для запуска на разных платформах, например: Android, Desktop, Web и т.д.
- подключение библиотеки физики Box2D v3, написанной на Си, для определения коллизий, движения объектов и т.д.
- использование механизма Box2D для отображения коллайдеров (физических объектов Box2D), то есть рисование прямоугольников и колец с помощью линий на SDL3
У меня появилась идея написать инструкцию, как воссоздать подобный пример с нуля из консоли без использования IDE, а для написания кода использовать Sublime Text 4 и какой-то другой редактор. В качестве начала можно использовать команду:
Которая создаёт консольное Desktop-приложение Java из консоли с помощью Gradle. Детальная инструкция по созданию приложения Java с нуля:Code 1
gradle init --type java-application
- Скачиваем и устанавливаем JDK 17 или более новую версию
- Скачиваем архив с Gradle 8.5 и перемещаем папку "gradle-8.5", например, на диск С.
- Добавляем путь к Gradle (C:\gradle-8.5\bin) в переменную окружения PATH
- Создаём новую папку для Java-проекта и запускаем CMD в этой папке
- Набираем команду создания нового проекта в CMD:
Bash 1
gradle init --type java-application - Gradle в консоли предоставит выбор: "Select build script DSL". Нажимаем клавишу 2, чтобы выбрать Groovy
- Gradle в консоли предоставит выбор: "Select test framework". Нажмите клавишу 1, чтобы выбрать JUnit4 (это сейчас неважно)
- Gradle в консоли спросит об имени проекта: Project name (default: my-example). Нажмите Enter
- Gradle в консоли спросит об имени пакета: Source package (default: my.example). Нажмите Enter
- Gradle в консоли спросит о версии JDK: Enter target version of Java (min. 7) (default: 17). Нажмите Enter
- Gradle в консоли спросит об использовании нового API: Generate build using new APIs and behavior (some features may change in the next minor release)? (default: no) [yes, no]. Нажмите Enter
- Проект создат. Gradle покажет сообщение "BUILD SUCCESSFUL"
- Для запуска проекта нужно ввести команду: gradle run
После этой команды создаётся набор папок и файлов, например: app/build.gradle, то есть это уже близко к базовому примеру на Си для Android. Остальные файлы и изменения в файлах нужно добавлять вручную из базового примера: https://github.com/madebr/sdlcross или из моего упрощённого: https://github.com/ivan-enzhae... -example-cЗапись от 8Observer8 размещена 08.12.2025 в 14:59
Обновил(-а) 8Observer8 29.07.2026 в 18:19 -
Обновил самую первую инструкцию до текущей на данным момент версии SDL 3.4.0Запись от 8Observer8 размещена 24.01.2026 в 05:34
Обновил(-а) 8Observer8 24.01.2026 в 06:27 -
Добавил продолжение: Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssemblyЗапись от 8Observer8 размещена 24.01.2026 в 19:56


