Документация на русском
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.3 KiB

Сборка для Android

Существуют 2 версии: с использованием QT и без него

Необходимые пакеты

Требуются Android SDK, NDK и QT с поддержкой андроида (для QT).

  • SDK (выбрать command line tools only)
  • NDK
  • QT(только для QT). Выбрать версию для андроида для вашей платформы. Например QT 5.6 под линукс будет этот файл

Также потребуется Java JDK и Ant.

QT-Creator (только для QT)

Запустить QT-creator, который должен быть установлен вместе с QT.
Идти в Settings/Android и указать пути к SDK and NDK. Если все сделано правильно то должно появиться:
Android for armeabi-v7a (gcc, qt) и Android for x86 (gcc, qt).

Библиотеки

Следующие собранные библиотеки следует взять и репозитария PurpleI2P.

git clone https://github.com/PurpleI2P/Boost-for-Android-Prebuilt.git  
git clone https://github.com/PurpleI2P/OpenSSL-for-Android-Prebuilt.git  
git clone https://github.com/PurpleI2P/MiniUPnP-for-Android-Prebuilt.git  
git clone https://github.com/PurpleI2P/android-ifaddrs.git  

Сборка с QT

  • Открыть qt/i2pd_qt/i2pd_qt.pro в QT-creator
  • Поменять строчку MAIN_PATH = /path/to/libraries на директорию где лежать зависимости из предыдущего пункта
  • Выбрать проект для целевой платформы (как правило armeabi-v7a) и собрать
  • .apk файл появится в android-build/bin

Сборка без QT

  • Поменять строку I2PD_LIBS_PATH в android/jni/Application.mk на директорию с зависимостями
  • Запустить команду 'ndk-build -j4' из директории android
  • Поправить файл 'local.properties'. Строчки 'sdk.dir=<путь к SDK>' и 'ndk.dir=<путь к NDK>'
  • Run 'ant clean debug'

Релизный .apk

Релизный .apk следует подписать своей подписью для чего требуется Java keystore file(.jks). Либо взять уже существующий, либо сделать новый с помощью keytool либо сконвертировать какой нибудь из своих сертификатов. Например i2pd подписан этим сертификатом.
Создать файл 'ant.properties'
key.store='путь к keystore file'
key.alias='alias name'
key.store.password='keystore password'
key.alias.password='alias password'
Запустить 'ant clean release'