Based on http://openjdk.java.net/projects/mobile/android.html
- Download Android NDK r10e from https://developer.android.com/ndk/downloads/older_releases.html and place it in this directory (Can't automatically download because of EULA)
- Warning: Do not attempt to build use newer or older NDK, it will lead to compilation errors.
- You should get latest Xcode (tested with Xcode 12).
Environment variables | |||||||
---|---|---|---|---|---|---|---|
Platform - Architecture | TARGET | TARGET_JDK | |||||
Android - armv8/aarch64 | aarch64-linux-android | aarch64 | |||||
Android - armv7/aarch32 | arm-linux-androideabi | arm | |||||
Android - x86/i686 | i686-linux-android | x86 | |||||
Android - x86_64/amd64 | x86_64-linux-android | x86_64 | |||||
iOS/iPadOS - armv8/aarch64 | aarch64-macos-ios | aarch64 |
export BUILD_IOS=1 # only when targeting iOS, default is 0 (target Android)
export BUILD_FREETYPE_VERSION=[2.6.2/.../2.10.4] # default: 2.10.4
export JDK_DEBUG_LEVEL=[release/fastdebug/debug] # default: release
export JVM_VARIANTS=[client/server] # default: client (aarch32), server (other architectures)
export NDK_VERSION=[r25c/.../r10e]
(1_ci_build_arch_[aarch32|aarch64|x86|x86_64].sh
) for your desired target.
### (1_ci_build_arch_[aarch32|aarch64|x86|x86_64].sh)
. 1_ci_build_arch_aarch32.sh # for arm
. 1_ci_build_arch_aarch64.sh
. 1_ci_build_arch_x86.sh # for i686
. 1_ci_build_arch_x86_64.sh
. setdevkitpath.sh
wget -nc -nv -O android-ndk-$NDK_VERSION-linux-x86_64.zip "https://dl.google.com/android/repository/android-ndk-$NDK_VERSION-linux.zip"
unzip -q android-ndk-$NDK_VERSION-linux-x86_64.zip
./3_getlibs.sh
./4_buildlibs.sh
./5_clonejdk.sh
If no configuration is changed, run makejdkwithoutconfigure.sh
instead
./6_buildjdk.sh
./7_removejdkdebuginfo.sh
./8_tarjdk.sh