Integrating compiled libSDL3_net.so on Android Интеграция собранной библиотеки libSDL3_net.so на Android

A step-by-step guide to adding SDL3_net support to your Android project, granting necessary Android networking permissions, and establishing socket connections on mobile devices. Пошаговое руководство по добавлению поддержки SDL3_net в ваш Android-проект, настройке сетевых разрешений Android и установке сокетных соединений на мобильных устройствах.

Before starting this guide, make sure you have completed the foundational tutorials: Перед началом работы убедитесь, что вы выполнили предыдущие руководства:

Step 1: Download Base Template and Rename Project Шаг 1: Скачивание базового шаблона и переименование проекта

First, download the base starter project template depending on your language preference: Сначала скачайте базовый шаблон проекта в зависимости от используемого языка:

Rename your project folder to integrate-sdl3-net-android-c (or integrate-sdl3-net-android-cpp). Переименуйте папку проекта в integrate-sdl3-net-android-c (или integrate-sdl3-net-android-cpp).

Step 2: Update CMakeLists.txt Шаг 2: Обновление CMakeLists.txt

Open CMakeLists.txt in the root directory and update it to link both SDL3 and SDL3_net libraries: Откройте CMakeLists.txt в корне проекта и обновите его для связывания обоих библиотек (SDL3 и SDL3_net):

Step 3: Configure Gradle Source Sets Шаг 3: Настройка Source Sets в Gradle

Open android-project/app/build.gradle and set the sourceSets block inside android { ... }. This instructs Gradle to bundle assets directly from the project's root assets folder: Откройте android-project/app/build.gradle и настройте блок sourceSets внутри android { ... }. Это укажет Gradle упаковывать ассеты напрямую из корневой папки assets:

android {
    namespace "com.example.myapp"
    compileSdkVersion 35

    defaultConfig {
        // ...
    }

    // Direct Gradle to fetch assets straight from the root project folder
    sourceSets {
        main {
            assets.srcDirs = ['../../assets']
        }
    }

    externalNativeBuild {
        cmake {
            path '../../CMakeLists.txt'
        }
    }
}

Step 4: Configure Android Network Permissions Шаг 4: Настройка сетевых разрешений Android

1. Open android-project/app/src/main/AndroidManifest.xml. 1. Откройте android-project/app/src/main/AndroidManifest.xml.

2. Uncomment the INTERNET permission to grant network access: 2. Раскомментируйте разрешение INTERNET для предоставления сетевого доступа:

<!-- Allow access to Internet -->
<!-- if you want to connect to the network or internet, uncomment this. -->
<uses-permission android:name="android.permission.INTERNET" />

3. Add android:usesCleartextTraffic="true" inside the <application> tag to allow unencrypted HTTP/TCP connections: 3. Добавьте android:usesCleartextTraffic="true" внутри тега <application>, чтобы разрешить незашифрованные HTTP/TCP-соединения:

<application android:label="@string/app_name"
    android:icon="@mipmap/ic_launcher"
    android:usesCleartextTraffic="true"
    android:allowBackup="true"
    android:theme="@style/AppTheme"
    android:enableOnBackInvokedCallback="false"
    android:hardwareAccelerated="true" >

Step 5: Write the C Source Code Шаг 5: Написание исходного кода на C

Replace the contents of src/main.c with the following code to initialize networking and test socket operations using SDL3_net: Замените содержимое файла src/main.c следующим кодом для инициализации сети и проверки работы сокетов с помощью SDL3_net:

Step 6: Build and Run on Android Шаг 6: Сборка и запуск на Android

Run the provided helper scripts in your command prompt to compile the app and push it directly to your connected device: Запустите готовые батч-скрипты в командной строке для сборки и автоматической установки на подключенное устройство:

build-apk
install-apk

Follow these exact steps to monitor the connection output. First, clear the logcat buffer in CMD: Следуйте этим строгим шагам для мониторинга вывода подключения. Сначала очистите буфер logcat в CMD:

adb logcat -c

Launch the app by tapping its icon on your smartphone (the order is strictly important). After launching the app, run the following commands in CMD to filter logs by process ID: Запустите приложение нажатием на иконку на смартфоне (порядок строго важен). После запуска приложения выполните следующие команды в CMD для фильтрации логов по ID процесса:

for /f %i in ('adb shell pidof -s com.example.myapp') do set APP_PID=%i
adb logcat --pid=%APP_PID%

Tap the red button in the app to initiate the connection. You will see the output and connection result printed directly in your CMD window. Нажмите красную кнопку в приложении, чтобы начать подключение. Вы увидите вывод и результат подключения напрямую в окне CMD.

Source Code Исходный код

You can explore the source code and download the complete project directly from the GitHub repositories: Вы можете изучить исходный код и скачать готовый проект напрямую из репозиториев на GitHub:


Support My Work Поддержать проект

If these tutorials helped you, consider buying me a coffee! Если эти туториалы вам помогли, вы можете поддержать автора.

Sberbank (Russia only) Сбербанк (только для РФ)

Sberbank SBP QR Code

Direct transfer via phone number (Russia only) Перевод по номеру телефона (только для РФ)

+7 (917) 212-29-59

USDT TRC20

USDT TRC20 QR Code

Support via Cryptocurrency Поддержка криптовалютой

TMtY1YifNf6FKvgeFmqKGQR4NStKr3csGp