1 简介
本文介绍搭建android编译环境,从下载Android SDK、NDK及平台工具,配置~/.bashrc
,设定ANDROID_HOME等路径。使用SDK Manager安装Android平台和构建工具。配置p4a以使用SDK、NDK,构建Kivy或SDL2应用,或WebView应用。
2 安装工具环境
Ubuntu20为编译环境
sudo apt install default-jre
sudo apt install default-jdk
添加环境变量
sudo vim /etc/environment
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
source /etc/environment
3 安装 编译工具依赖
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y build-essential ccache git zlib1g-dev python3 python3-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-8-jdk unzip ant ccache autoconf libtool libssl-dev
- 下载安装编译工具
4 android SDK编译工具链接
https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip
- android NDK 编译工具链接
https://dl.google.com/android/repository/android-ndk-r23b-linux.zip
5 平台工具
wget https://dl.google.com/android/repository/platform-tools_r31.0.3-linux.zip
- 创建android-sdk 工具目录
结构形如
android-sdk
platform-tools
cmdline-tools
...
android-ndk-r23b
6 环境变量设置
# Update Bash
sudo nano ~/.bashrc
# Android - SDK Tools & Platform Tools
export ANDROID_HOME=/data/android_pycompare/android-sdk
export PATH=/data/android_pycompare/android-sdk/platform-tools:/data/android_pycompare/android-sdk/cmdline-tools/tools:/data/android_pycompare/android-sdk/cmdline-tools/tools/bin:${PATH}
# Save .bashrc
# Reload Bash
source ~/.bashrc
7 编译环境 创建
$SDK_DIR/tools/bin/sdkmanager "platforms;android-27"
- 安装构建工具
$SDK_DIR/tools/bin/sdkmanager --list
$SDK_DIR/tools/bin/sdkmanager "build-tools;28.0.2"
8 配置p4a 以使用SDK、NDK
编辑您~/.bashrc或其他喜欢的 shell 以包含在 android 上构建所需的新环境变量
Adjust the paths!
export ANDROIDSDK="/data/android_pycompare/cmdline-tools"
export ANDROIDNDK="/data/android_pycompare/android-ndk-r23b"
export ANDROIDAPI="27" # Target API version of your application
export NDKAPI="21" # Minimum supported API version of your application
export ANDROIDNDKVER="r23b" # Version of the NDK you installed
使用以下命令在任何命令上配置 SDK、NDK 和 Android API 的 PATH:
--sdk-dir PATH相当于$ANDROIDSDK
--ndk-dir PATH相当于$ANDROIDNDK
--android-api VERSION相当于$ANDROIDAPI
--ndk-api VERSION相当于$NDKAPI
--ndk-version VERSION相当于$ANDROIDNDKVER
9 构建
指定根工作目录
安装一个 API 平台作为目标
sudo cmdline-tools/bin/sdkmanager "platforms;android-27" --sdk_root=counds
安装构建工具
查看所有选项
$SDK_DIR/tools/bin/sdkmanager --list
# TODO
$SDK_DIR/tools/bin/sdkmanager "build-tools;28.0.2" --sdk_root=counds
10 Kivy 或 SDL2 应用程序
要构建应用程序,你需要指定名称,版本,一包标识符,您要使用的引导(SDL2为kivy或SDL2应用程序)和要求
p4a apk --private $HOME/code/myapp --package=org.example.myapp --name "My application" --version 0.1 --bootstrap=sdl2 --requirements=python3,kivy
注意 --requirements:您必须添加应用程序运行所需的所有库/依赖项。 例子:--requirements=python3,kivy,vispy。对于 SDL2 应用程序, 不需要 kivy,但您需要添加您可能使用的任何包装器(例如pysdl2)。
这个p4a apk ...命令使用python3、 kivy以及您在需求中指定的所有其他内容构建发行版。它将使用 SDL2 引导程序打包,并生成一个.apk文件。
test
p4a apk --private ./cound --package=link.letschats.counds --name "counds" --version 0.1 --bootstrap=sdl2 --requirements=python3,kivy --sdk_root=counds
test2
p4a apk --private ./cound --package=link.letschats.counds --name "counds" --version 0.1 --bootstrap=sdl2 --requirements=python3,kivy --sdk_root=counds --android_sdk=./android-sdk/cmdline-tools/bin/ --android_ndk=android-ndk-r23b --ignore-setup-py
11 构建一个 WebView 应用程序
要构建您的应用程序,您需要有一个名称、版本、一个包标识符,并明确使用 webview 引导程序,以及要求:
p4a apk --private $HOME/code/myapp --package=org.example.myapp --name "My WebView Application" --version 0.1 --bootstrap=webview --requirements=flask --port=5000
12 重建
p4a clean_all
- 仅仅清理构建环境,避免重新下载
p4a clean_builds && p4a clean_dists
- 高级用法
可用编译工具列表
p4a recipes
从