Сборка для Android
Есть 2 версии: с QT и без QT.
Подготовка
Вам нужно установить Android SDK и NDK. Для QT версии Вам также нужен QT с поддержкой android.
- SDK (выберите инструменты для командной строки, и убедитесь что вы установили "Android SDK Build-Tools")
- NDK
- QT(для QT). Выберете программы для своей платформы. Для примера QT 5.6 под Linux будет этим файлом
Вам также нужен Java JDK (рекомендуется Oracle Java 8), Ant и помледняя версия Gradle (минимальная версия 3.4).
QT-Creator (для QT)
Откройте QT-creator который должен был установиться вместе с QT. Перейдите в Settings/Android и укажите пути до SDK и NDK. Усли все настроено правильно Вы увидите 2 возможных варианта: Android armeabi-v7a (gcc, qt) и Android x86 (gcc, qt).
Зависимости
Скачайте эти скомпилированные бинарники из PurpleI2P репозиториев.
git clone https://github.com/PurpleI2P/Boost-for-Android-Prebuilt.git -b boost-1_72_0
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
Подготовьте Android SDK и установите зависимости
mkdir android-sdk
cd android-sdk
wget -t0 <link to latest SDK from Android site>
unzip commandlinetools-XXXXXX-XXXXXX.zip -d cmdline-tools
./cmdline-tools/tools/bin/sdkmanager "build-tools;25.0.3" "platforms;android-14" "platforms;android-25" "platform-tools"
Сборка с 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
на путь до папки с зависимотями - Создайте (иди отредактируйте) 'local.properties', поместите туда 'sdk.dir=
<путь до SDK>
' и 'ndk.dir=<путь до NDK>
' - Запустите
gradle clean cleanBuildCache assembleDebug
изandroid
папки - Вы найдете .apk файл в
android/build/outputs/apk
папке
Сборка релизного .apk
Для создания релизного .apk Вы должны создать Java keystore файл(.jks) и подписать .apk этим файлом. Вы можете создать его используя keytool, или используя существующие сертификаты. Для примера, i2pd apk подписан этим сертификатом.
Измените 'build.gradle':
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -46,11 +46,17 @@ android {
keyAlias "i2pdapk"
keyPassword "android"
}
+ release {
+ storeFile file("путь до .jks")
+ storePassword "пароль хранилища"
+ keyAlias "alias"
+ keyPassword "пароль ключа"
+ }
}
buildTypes {
release {
minifyEnabled true
- signingConfig signingConfigs.orignal
+ signingConfig signingConfigs.release
Запустите gradle clean cleanBuildCache assembleRelease
Сборка запускаемого android binary
- Измените
I2PD_LIBS_PATH
вandroid_binary_only/jni/Application.mk
на путь до папки с зависимотями - Запустите
ndk-build -j <threads>
изandroid_binary_only
папки - Вы найдете файл
i2pd
вandroid_binary_only/libs/armeabi-v7a
папке