NDK命令行编译GTKAndroid

Linux下安装配置编译环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 编译环境:Debian GNU/Linux 11 (bullseye)
# 由于build-tools工具是32位的,所以需要开启32位支持
sudo dpkg --add-architecture i386 && sudo apt update
sudo apt install libc6:i386 lib32z1
sudo apt install unzip git python2.7-minimal python-openssl

# 安装配置 JDK And Android NDK SDK API build-tools
cd /home/leux/android
wget https://repo.huaweicloud.com/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz
tar -xzvf jdk-7u80-linux-x64.tar.gz

wget https://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin
chmod +x android-ndk-r10e-linux-x86_64.bin && ./android-ndk-r10e-linux-x86_64.bin

wget https://dl.google.com/android/android-sdk_r21-linux.tgz
tar -xzvf android-sdk_r21-linux.tgz

wget https://dl.google.com/android/repository/platform-23_r03.zip
unzip -d android-sdk-linux/platforms/ platform-23_r03.zip

wget https://dl.google.com/android/repository/build-tools_r23.0.3-linux.zip
mkdir android-sdk-linux/build-tools
unzip -d android-sdk-linux/build-tools/ build-tools_r23.0.3-linux.zip

# 配置编译环境
export JAVA_HOME=/home/leux/android/jdk1.7.0_80
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export ANDROID_HOME=/home/leux/android/android-sdk-linux
export NDK_ROOT=/home/leux/android/android-ndk-r10e
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ANDROID_HOME/tools:$NDK_ROOT

# 安装完成后目录大致如下:
~/android/
├── jdk1.7.0_80/ jdk-7u80-linux-x64.tar.gz
├── android-ndk-r10e/ android-ndk-r10e-linux-x86_64.bin
└── android-sdk-linux/ android-sdk_r21-linux.tgz
├── add-ons
├── tools 针对pc平台下使用的SDK管理工具
├── platforms Android API platform-23_r03.zip
├── build-tools 开发和打包工具 build-tools_r23.0.3-linux.zip 32位
└── platform-tools 针对pc端和移动端进行交互的一些工具 platform-tools_r21-linux.zip

Windows下安装配置编译环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 下载并安装如下开发工具
https://repo.huaweicloud.com/java/jdk/7u80-b15/jdk-7u80-windows-x64.exe
https://dl.google.com/android/repository/android-ndk-r10e-windows-x86_64.zip
https://dl.google.com/android/android-sdk_r21-windows.zip
https://dl.google.com/android/repository/platform-23_r03.zip
https://dl.google.com/android/repository/build-tools_r23.0.3-windows.zip
https://dl.google.com/android/repository/platform-tools_r21-windows.zip

# 配置环境变量
set JAVA_HOME=C:\Soft\Android\jdk1.7.0_80
set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
set ANDROID_HOME=C:\Soft\Android\android-sdk-windows
set NDK_ROOT=C:\Soft\Android\android-ndk-r10e
set PATH=%PATH%;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%NDK_ROOT%;%ANDROID_HOME%\tools

# 安装完成后目录大致如下:
C:\Soft\Android\
├── jdk1.7.0_80\ jdk-7u80-windows-x64.exe
├── android-ndk-r10e\ android-ndk-r10e-windows-x86_64.zip
└── android-sdk-windows\ android-sdk_r21-windows.zip
├── add-ons
├── tools 针对PC平台下使用的SDK管理工具
├── platforms Android API platform-23_r03.zip
├── build-tools 开发和打包工具 build-tools_r23.0.3-linux.zip 32位
└── platform-tools 开发端和移动端交互的一些工具 platform-tools_r21-windows.zip

获取GTK3源码并编译

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
git clone https://gitee.com/leux/GTKAndroid.git
cd GTKAndroid/app && chmod +x ../gradlew
python ../clibs/getLibs.py // 下载并解包GTK源码及依赖库源码

ndk-build NDK_DEBUG=1 // 编译GTK3及依赖库
../gradlew // 检查编译环境
../gradlew assembleDebug // 编译并打Debug包

ndk-build clean // 清理编译的GTK3库
../gradlew clean // 清理编译的APP

# GTKAndroid/app/build/outputs/apk/app-debug.apk // 生成的APK位置

# 其他的编译选项
ndk-build LOCAL_ARM_NEON:=true APP_ABI="armeabi-v7a" // 开启NEON指令加速,仅armeabi-v7a平台有效
ndk-build APP_ABI="armeabi armeabi-v7a mips x86" // 编译多个架构

build APP_BUILD_SCRIPT=../Android.mk NDK_APPLICATION_MK=..//Application.mk NDK_PROJECT_PATH=./