我正在使用Kivy开发Android应用程序,使用Buildozer编译APK文件。
在Buildozer规范文件中,有一个设置 android.arch = armeabi-v7a
,我不理解这是什么意思。
此外,当我使用命令 buildozer -v android debug
生成APK文件,并使用命令 adb install bin/<appname>.apk
安装后,在我的Android手机上无法打开此应用程序。
arm64-v8a
,真正便宜的设备是armeabi-v7a
以节省成本,而几乎没有x86
或x86_64
。armeabi-v7a
ABI编译为armeabi
,thumb-2
和VFPv3-D16
指令集,但arm64-v8a
ABI编译为AArch64
指令集。
每种CPU和指令集的组合都有自己的应用程序二进制接口(ABI)。ABI包括以下信息:CPU指令集(和扩展)可用。运行时内存存储和加载的字节序。Android始终是小端。在应用程序和系统之间传递数据的约定,包括对齐约束以及系统调用函数时如何使用堆栈和寄存器。可执行二进制文件的格式,例如程序和共享库,以及它们支持的内容类型。Android始终使用ELF。有关更多信息,请参见ELF System V应用程序二进制接口。C ++名称的名称混淆。有关更多信息,请参见通用/Itanium C ++ ABI。source
除非你的目标硬件是特定的,否则在大多数情况下应该省略x86、x86_64和arm32 ABIs。
由于armeabi
是arm 32位,这意味着你可以放弃对除了arm64-v8a
之外的所有支持。 - Ben Butterworth
adb install
只是安装你的apk
,它不会运行它。你可以像启动其他已安装应用程序一样启动它。 - John Andersonbuildozer -v android debug deploy run logcat > my_log.txt
以在my_log.txt
中捕获logcat数据。文档在这里。 - John Anderson