使用apkc简单构建apk
# 问题描述
有单个的java文件,想要构建出apk用来测试。但是普通流程比较繁琐,使用apkc这个工具简单的构建
# 解决步骤
1、下载对应的软件包
# 项目地址 https://github.com/ajinasokan/apkc
wget https://github.com/ajinasokan/apkc/releases/download/v0.5.0/apkc_0.5.0_linux_amd64.tar.gz
tar -xzvf apkc_0.5.0_linux_amd64.tar.gz -C apkc
cd apkc
# 尝试运行
./apkc
# 添加当前路径到PATH路径中
pwd # 获得当前路径。其实也可以移动到其他地方
export PATH=/the/path/pwd/show/the/file/in:$PATH
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
2、运行检查,检查各自路径是否都已经配置,比如java、android-sdk
apkc doctor
# 输出应当类似下面
[doctor] java /home/user/.sdkman/candidates/java/17.0.19-tem
[doctor] javac /home/user/.sdkman/candidates/java/17.0.19-tem/bin/javac
[doctor] kotlinc kotlinc
[doctor] sdk /home/user/android-sdk
[doctor] aapt2 /home/user/android-sdk/build-tools/36.0.0/aapt2
[doctor] d8 /home/user/android-sdk/build-tools/36.0.0/d8
[doctor] zipalign /home/user/android-sdk/build-tools/36.0.0/zipalign
[doctor] apksigner /home/user/android-sdk/build-tools/36.0.0/apksigner
[doctor] android jar /home/user/android-sdk/platforms/android-36/android.jar
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
3、没有问题后,可以创建模板了
apkc create <projectname>
# 输入上述命令后,会要求输入包名和app名字,对应输入即可。结果类似下面所示
apkc create cryptoTest01
Package name (com.myapp): com.cryptoTest.01
App name (My App): test01
[apkc] finished in 20.656619543s
1
2
3
4
5
6
2
3
4
5
6
4、接下来替换项目中的MainActivity.java即可
# 项目结构图如下所示
.
└── cryptoTest01
├── AndroidManifest.xml
├── lib
│ ├── arm64-v8a
│ ├── armeabi-v7a
│ ├── x86
│ └── x86_64
├── res
│ ├── layout
│ │ └── main.xml
│ └── values
│ └── styles.xml
└── src
└── com
└── cryptoTest
└── 01
└── MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
将MainActivity.java替换即可,不过有一定的格式要求。
5、在项目根目录下构建
apkc build
# 生成的apk在 build/ 文件夹中
1
2
2
# PS
构建项目时需要提前配置签名密钥,可以使用以下命令。keystore password设置成android即可
keytool -genkey -v -keystore ~/.android/debug.keystore -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000
Enter keystore password:
Re-enter new password:
1
2
3
2
3