-
Notifications
You must be signed in to change notification settings - Fork 117
Android
WangBin edited this page Apr 29, 2019
·
9 revisions
Supported host platforms:
- Windows
- Linux
- macOS
Requirements:
- environment var
ANDROID_NDK
- gcc>=4.8, or clang
- Unified headers or not
Environment Variables:
- USE_TOOLCHAIN: unset/empty, clang or gcc
Default Compiler:
Running ./avbuild.sh android[api] ["arch1 arch2..."]
selects a default compiler, which is
- gcc: if gcc exists, NDK<18
- clang: if gcc does not exist, NDK>=18
Command:
./avbuild.sh android[api_level] "arch1 arch2 ..." # default toolchain
USE_TOOLCHAIN=clang ./avbuild.sh android[api_level] "arch1 arch2 ..." # clang for all
./avbuild.sh android[api_level] "arch1 arch2-clang ..." # gcc toolchain for arch1, clang for arch2
api_level
can be empty to use default value. Default is 14 for 32bit and 21 for 64bit.
Unified headers are used if present.
export FFSRC=/path/to/ffmpeg # if no ffmpeg source fold under this dir
./avbuild.sh android # gcc build for default archs (armv5, armv7, arm64, x86)
./avbuild.sh android armv7 # gcc build for armv7
./avbuild.sh android16 "armv7 arm64" # gcc build for armv7 api level 16 and arm64 api level 21(21 is min level for 64bit)
./avbuild.sh android "armv7-clang arm64" # clang build for armv7, gcc build for arm64
The result dir struct is sdk-android-{gcc,clang}/{include,lib/{armeabi,armeabi-v7a,arm64,x86}}