python-22-Desarrollar aplicación móvil

Inserte la descripción de la imagen aquí

1 prueba de instalación

(1) 安装
CMD> conda activa python36
CMD> pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
CMD> pip install kivy.deps.gstreamer
CMD> pip install kivy
CMD> pip install kivy_examples
(2) 举例

from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text='Hello,kivy')

TestApp().run()

Salida después de correr

[INFO   ] [Logger      ] Record log in C:\Users\user\.kivy\logs\kivy_21-02-07_37.txt
[INFO   ] [deps        ] Successfully imported "kivy_deps.gstreamer" 0.3.1
[INFO   ] [deps        ] Successfully imported "kivy_deps.angle" 0.3.0
[INFO   ] [deps        ] Successfully imported "kivy_deps.glew" 0.3.0
[INFO   ] [deps        ] Successfully imported "kivy_deps.sdl2" 0.3.1
[INFO   ] [Kivy        ] v2.0.0
[INFO   ] [Kivy        ] Installed at "D:\Anaconda3\envs\python36\lib\site-packages\kivy\__init__.py"
[INFO   ] [Python      ] v3.6.10 |Anaconda, Inc.| (default, Jan  7 2020, 15:18:16) [MSC v.1916 64 bit (AMD64)]
[INFO   ] [Python      ] Interpreter at "D:\Anaconda3\envs\python36\python.exe"
[INFO   ] [Factory     ] 186 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2 (img_pil, img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [Window      ] Provider: sdl2
[INFO   ] [GL          ] Using the "OpenGL" graphics system
[INFO   ] [GL          ] GLEW initialization succeeded
[INFO   ] [GL          ] Backend used <glew>
[INFO   ] [GL          ] OpenGL version <b'4.6.0 - Build 26.20.100.8141'>
[INFO   ] [GL          ] OpenGL vendor <b'Intel'>
[INFO   ] [GL          ] OpenGL renderer <b'Intel(R) UHD Graphics 620'>
[INFO   ] [GL          ] OpenGL parsed version: 4, 6
[INFO   ] [GL          ] Shading version <b'4.60 - Build 26.20.100.8141'>
[INFO   ] [GL          ] Texture max size <16384>
[INFO   ] [GL          ] Texture max units <32>
[INFO   ] [Window      ] auto add sdl2 input provider
[INFO   ] [Window      ] virtual keyboard not allowed, single mode, not docked
[INFO   ] [Base        ] Start application main loop
[INFO   ] [GL          ] NPOT texture support is available
[INFO   ] [Base        ] Leaving application in progress...

Inserte la descripción de la imagen aquí

2 Empaquetado como una apk de teléfono móvil [Varios problemas menores]

2.1 Herramientas de instalación

python-for-android: en lo sucesivo denominado p4a, es el método de empaquetado recomendado oficialmente por Kivy.
WSL: es el subsistema de Windows para Linux, que es el subsistema de Linux en Windows. Se pueden instalar versiones más nuevas de Win10. Además, WSL comparte un sistema de archivos con el sistema principal de Windows, lo que hace que sea muy conveniente copiar archivos.

2.1.1 Subsistema WSL de Linux en Windows

(1) Habilitar o deshabilitar las funciones de Windows
Primero busque y abra "Habilitar o deshabilitar las funciones de Windows" en la barra de búsqueda y marque el elemento "Subsistema de Windows para Linux". Solo cuando esta configuración está habilitada, WSL se puede instalar normalmente.
(2) Instalar WSL

下载地址列表【https://www.jianshu.com/p/8a62c020a553】。
如下下载ubuntu18.04。
https://wslstorestorage.blob.core.windows.net/wslblob/Ubuntu_1804.2019.522.0_x64.appx
如下下载ubuntu18.04 arm。
https://wsldownload.azureedge.net/Ubuntu_1804.2018.726.0_ARM.appx

O busque e instale a través de la tienda de microsoft
Inserte la descripción de la imagen aquí

(3) Una vez completada la descarga, puede hacer doble clic directamente para
instalarla. Una vez completada la instalación, puede encontrar la distribución de Linux que instaló en el menú de inicio. Aquí, cada distribución de Linux es una aplicación de Windows.
Configure el nombre de usuario y la contraseña phone / bigdata.
$ sudo passwd root para cambiar la contraseña bigdata.

$ lsb_release -c【Codename:       focal】
$ uname -a
Linux 2SBT3Z2 4.4.0-18362-Microsoft #1049-Microsoft Thu Aug 14 12:01:00 PST 2020 x86_64 x86_64 x86_64 GNU/Linux

Vea la ubicación del archivo WSL en Windows
C: \ Users \ user \ AppData \ Local \ Packages \ CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc \ LocalState \ rootfs
Inserte la descripción de la imagen aquíSi desea ver otras particiones en Linux, WSL montará otras letras de unidad en / mnt.

(4) Fuente de actualización
$ sudo vim /etc/apt/sources.list

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

18.04 biónico

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

python3 【3.6.7】

Actualizar y actualizar
$ sudo apt-get update
$ sudo apt-get upgrade

2.1.2 Instalar dependencias de buildozer

(1) Buildozer se basa en p4a

sudo apt-get install git  zip  unzip   python3-pip  autoconf  libtool  pkg-config  zlib1g-dev  libncurses5-dev  libncursesw5-dev  libtinfo5  cmake  libffi-dev  libssl-dev  lld

(2) Establecer la fuente doméstica de python3-pip

$ mkdir ~ / .pip
$ vim ~ / .pip / pip.conf
edite el contenido del archivo de la siguiente manera

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

(3) Instale Cython Tenga en cuenta que p4a depende de una versión específica
$ pip3 install --upgrade Cython == 0.29.21 virtualenv

2.1.3 Instalar p4a

(1) Instale la
URL de dependencias de p4a https://python-for-android.readthedocs.io/en/latest/quickstart/ para ver las dependencias.

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install build-essential ccache git zlib1g-dev python3 python3-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386  unzip ant ccache autoconf libtool libssl-dev

Si hay un error de Paquete ... aún no está configurado. En el comando anterior, la solución es la siguiente:

sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/info_old/
sudo mkdir /var/lib/dpkg/info/
sudo apt-get update
sudo apt-get -f install

Después de que no se notifique ningún error, ejecute el siguiente comando

sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old/
sudo rm -rf /var/lib/dpkg/info
sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info   
sudo apt-get update

(2) Instalar p4a
$ pip3 instalar python-para-android

2.1.4 Instalar SDK / NDK de Android

Preste atención a la versión de SDK / NDK, instale la versión recomendada
(1) Descargue SDK
Descargue Android-SDK en la siguiente página web y colóquelo en la carpeta C: \ Users \ user \ Desktop
https://developer.android.google .cn / studio? hl = zh-cn # downloadsNombre del
Inserte la descripción de la imagen aquíarchivocommandlinetools-linux-6858069_latest.zip
(2) Descargar NDK

Descargue el Android-NDK y colóquelo en la carpeta C: \ Users \ user \ Desktop. La versión oficial requiere la versión r19b. Puede hacer clic directamente en el enlace de descarga de r19b: https://dl.google.com/android/repository/android-ndk-r19b-linux-x86_64.zip?hl=zh_cn

(3) Instalación

$ mkdir ~/androidsdk
$ cd ~/androidsdk/
$ unzip /mnt/c/Users/user/Desktop/commandlinetools-linux-6858069_latest.zip

$ mkdir ~/Android
$ cd ~/Android
$ mkdir SDK
$ unzip /mnt/c/Users/user/Desktop/android-ndk-r19b-linux-x86_64.zip

(4) Implementar cmdline-tools

$ cd ~/androidsdk/cmdline-tools/bin
$ ./sdkmanager --sdk_root=$HOME/Android/SDK "cmdline-tools;latest"  

(5) Agregue la variable de entorno
$ vi ~ / .bashrc

export ANDROID_SDK_ROOT="$HOME/Android/SDK"
export PATH=$PATH:~/.local/bin/:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/:$ANDROID_SDK_ROOT/tools/:$ANDROID_SDK_ROOT/platform-tools/
 
export ANDROIDSDK="$HOME/Android/SDK"
export ANDROIDNDK="$HOME/Android/android-ndk-r19b"
export ANDROIDAPI="27"  # Target API version of your application
export NDKAPI="21"      # Minimum supported API version of your application

Elimine la carpeta sdk donde se descomprimió el archivo zip antes de
$ rm -rf androidsdk /
Ctrl + D para cerrar la ventana, y luego abra Ubuntu nuevamente

2.1.5 Instalar la plataforma API y las herramientas de compilación

Instale la plataforma API, el nivel de API recomendado es 27.
$ sdkmanager "plataformas; android-27"
$ sdkmanager "build-tools; 29.0.0"
puede enumerar todas las versiones de build-tools que se pueden instalar
$ sdkmanager --list | grep build-tools

2.1.6 Instalar jdk

$ sudo apt-get eliminar openjdk * 卸载 自带 的 openjdk
$ cp /mnt/c/Users/user/Desktop/jdk-8u181-linux-x64.tar.gz / home / phone
$ tar -xzvf jdk-8u181-linux -x64.tar.gz -C / home / phone
$ sudo ln -s /home/phone/jdk1.8.0_181/bin/java / usr / bin / java

2.2 Empaquetado y usado

Para crear su aplicación, debe especificar el nombre, la versión, un identificador de paquete, el programa de arranque que desea usar (sdl2 para aplicaciones kivy o sdl2) y los requisitos:

2.2.1 Crear proyecto

$ mkdir ~ / helloworld
$ cd ~ / helloworld
$ vi main.py

from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text='Hello,kivy')
TestApp().run()

2.2.2 Comandos de empaquetado

$ p4a apk --private $ HOME / helloworld --package = org.example.myapp --name "Mi aplicación" --version 0.1 --bootstrap = sdl2 --requirements = python3, kivy == 2.0.0
Necesita atención Sí -private $ HOME / helloworld es especificar la carpeta donde se encuentra el proyecto.

La ubicación del archivo descargado es C: \ Users \ user \ AppData \ Local \ Packages \ CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc \ LocalState \ rootfs \ home \ phone.local \ share \ python-for-android \ packages.

Descargando hostpython3 desde https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz

SDL2_image-2.0.4.tar.gz

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
$ sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
$ sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
$ sudo apt-get install libssl-dev openssl
$ sudo apt-get install libffi-dev

$ sudo apt-get update
$ sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
$ sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
$ sudo apt-get instalar zlib1g-dev libsqlite3-dev tk-dev
$ sudo apt-get install libssl-dev openssl
$ sudo apt-get install libffi-dev
$ sudo apt-get install libxpm-dev libxext-dev
$ sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev

Cython.Compiler.Errors.InternalError: Error interno del compilador: 'config.pxi' no encontrado

El software compilado se encuentra en este directorio
/home/phone/.local/share/python-for-android/build/other_builds.
Si vuelve a empaquetar, puede usar el siguiente comando para borrar todo el contenido descargado y construido:
p4a clean_all
Si solo desea limpiar el interior Para evitar volver a descargar dependencias, ejecute el siguiente comando:
p4a clean_builds && p4a clean_dists

2.2.3 Prueba

En mi computadora, use el Explorador de Windows para acceder a
C: \ Users \ user \ AppData \ Local \ Packages \ CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc \ LocalState \ rootfs \ home \ phone y
puede ver el archivo apk. La ubicación de su directorio puede ser diferente, Pero siempre puede encontrar la ubicación correspondiente buscando el nombre del archivo apk.

Copie el archivo apk en el teléfono, ejecútelo, instálelo ... puede ver el software Hello World instalado en la pantalla del teléfono.
Haga clic en él para ejecutar.

2.3 Anormalidades y soluciones

(1) ubuntu configure: error: el compilador de C no puede crear ejecutables
$ sudo apt-get install clang && rvm install 1.9.3 --with-gcc = clang
$ sudo apt-get install build-essential
$ sudo apt-get install - reinstalar build-essential
$ sudo apt-get install --reinstalar gcc
$ sudo dpkg-reconfigure build-essential
$ sudo dpkg-reconfigure gcc
$ sudo apt install gobjc ++
(2) 无法 安装 Kivy (Windows 10, python 3.8)
$ p4a apk - -private $ HOME / helloworld --package = org.example.myapp --name “Mi aplicación” --version 0.1 --bootstrap = sdl2 --requirements = python3, kivy
未 指定 kivy 的 版本 , 默认 下载 kivy-1.11. 1 有 问题。

$ p4a apk --private $ HOME / helloworld --package = org.example.myapp --name "Mi aplicación" --version 0.1 --bootstrap = sdl2 --requirements = python3, kivy == 2.0.0 La
última versión de Kivy La versión estable es compatible con Python 3.8 y funciona bien

3 Usar el espejo del sistema [Correcto]

Para empaquetar archivos Py en archivos apk, hay tres métodos de la siguiente manera:
(1) A través de Buildozer; (implementado en el entorno Linux, el marco integrado es más fácil de implementar).
(2) A través de Python para Android, (esto se puede realizar en Windows, pero necesita instalar y configurar una gran cantidad de contenido, lo cual es más engorroso).
(3) Paquete a través de Kivy Launcher (se requiere el mercado de Google, en vista de la red, se recomienda elegir otra cosa).

3.1 Imagen de la máquina virtual

(1) Instale virtualbox
(2) Descargue el archivo de imagen LXLE14.04.3 (32bit) .vdi.zip
después de la descompresión, el tamaño es 10G.
(3) Virtualbox crea una nueva máquina virtual.
Elija linux y ubuntu 32bit, y elija una imagen existente.
(4)
Nombre de usuario y contraseña del sistema operativo osboxes.org/osboxes.org

3.1.1 tarjeta de red de configuración de ubuntu

(1) Ver información de la tarjeta de red
#ifconfig [eth0]
(2) Configurar el archivo de la
tarjeta de red tarjeta de red con puente virtualbox
vi / etc / network / interfaces El
contenido predeterminado es el siguiente

auto lo
iface lo inet loopback

La IP dinámica está configurada en

auto eth0
iface eth0 inet dhcp
dns-nameservers 223.5.5.5

3.2 Embalaje con Buildozer

$ cd ~ / Desktop / kivycode opera en este directorio.

3.2.1 archivo buildozer.spec

Use el comando cd para ingresar al directorio del mismo nivel del proyecto a empaquetar y ejecute el siguiente comando:
$ buildozer init
Esto generará un archivo buildozer.spec en el mismo directorio de nivel del proyecto. Utilice este archivo para configurar la aplicación empaquetada (incluido el nombre de la aplicación, el icono, la versión, etc.).

[app]

# 应用名称(笔者改为“ImportV”)
title = ImportV

# 包名(App故障排除时会用到)
package.name = myapp

# 域名(App故障排除时会用到)
package.domain = org.test

# main.py文件所在位置(由于该配置文件与项目在同级目录,故默认为“.”)
source.dir = .

# 需要打包进来的文件的扩展名
source.include_exts = py,png,jpg,kv,atlas

# 不需要打包进来的文件的扩展名
#source.include_patterns = assets/*,images/*.png

# 不需要打包进来的文件的扩展名
#source.exclude_exts = spec

# 排除的目录
#source.exclude_dirs = tests, bin

# 排除的列表
#source.exclude_patterns = license,images/*/*.jpg

# 应用的版本(写法一)
version = 0.1

# 应用的版本(写法二)
# version.regex = __version__ = ['"](.*)['"]
# version.filename = %(source.dir)s/main.py

# 需安装的依赖包(很重要!!!大部分打包出来的App闪退就是因为有依赖包没有打包进来)
# comma separated e.g. requirements = sqlite3,kivy
requirements = python3,kivy

# 自定义源文件
# Sets custom source for any requirements with recipes
# requirements.source.kivy = ../../kivy

# 通过Garden安装包
#garden_requirements =

# 预加载的图片文件(修改时需要把前面的“#”删掉)
#presplash.filename = %(source.dir)s/data/presplash.png

# 应用图标(修改时需要把前面的“#”删掉),笔者修改为项目中images文件夹下的icon.png
icon.filename = %(source.dir)s/images.icon.png

# 应用支持的方向(landscape, sensorLandscape, portrait 或者 all)
orientation = portrait

# 声明的服务列表
#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY

#
# OSX 配置(Android打包不需理会)
#

#
# author = © Copyright Info

# change the major version of python used by the app
osx.python_version = 3

# Kivy version to use
osx.kivy_version = 1.9.1

#
# Android 配置
#

# 全屏显示设为1,非全屏显示设为0
fullscreen = 0

# 预加载的颜色
# Supported formats are: #RRGGBB #AARRGGBB or one of the following names:
# red, blue, green, black, white, gray, cyan, magenta, yellow, lightgray,
# darkgray, grey, lightgrey, darkgrey, aqua, fuchsia, lime, maroon, navy,
# olive, purple, silver, teal.
#android.presplash_color = #FFFFFF

# 申请的权限
#android.permissions = INTERNET

# 支持的Android API版本,越高兼容性越好
#android.api = 27

# 支持最低的Android API版本,越低越好
#android.minapi = 21

# 使用的Android SDK版本
#android.sdk = 20

# 使用的Android NDK版本
#android.ndk = 19b

# 支持的最低的Android NDK API版本
#android.ndk_api = 21

# 使用私有储存(True)或者公有储存(False)
#android.private_storage = True

# Android NDK路径(为空将自动下载)
#android.ndk_path =

# Android SDK路径(为空将自动下载)
#android.sdk_path =

# ANT路径(为空将自动下载)
#android.ant_path =

# 是否跳过更新Android sdk
# This can be useful to avoid excess Internet downloads or save time
# when an update is due and you just want to test/build your package
# android.skip_update = False

# 是否自动接收SDK协议
# agreements. This is intended for automation only. If set to False,
# the default, you will be shown the license when first running
# buildozer.
# android.accept_sdk_license = False

# 默认入口
#android.entrypoint = org.renpy.android.PythonActivity

# Android应用程序的主题,默认适用于kivy开发的应用程序
# android.apptheme = "@android:style/Theme.NoTitleBar"

# 项目白名单
#android.whitelist =

# 白名单路径
#android.whitelist_src =

# 黑名单路径
#android.blacklist_src =

# 添加的Android jar包
# their classes. Don't add jars that you do not need, since extra jars can slow
# down the build process. Allows wildcards matching, for example:
# OUYA-ODK/libs/*.jar
#android.add_jars = foo.jar,bar.jar,path/to/more/*.jar

# 使用的Java文件
# directory containing the files)
#android.add_src =

# 添加Android AAR文档(目前只适用于sdl2_gradle 和 bootstrap)
#android.add_aars =

# 添加Gradle依赖(目前只适用于sdl2_gradle 和 bootstrap)
#android.gradle_dependencies =

# 添加java编译选项
# this can for example be necessary when importing certain java libraries using the 'android.gradle_dependencies' option
# see https://developer.android.com/studio/write/java8-support for further information
# android.add_compile_options = "sourceCompatibility = 1.8", "targetCompatibility = 1.8"

# Gradle存储库添加(对于某些android.gradle_dependencies可能是必需的)
# please enclose in double quotes 
# e.g. android.gradle_repositories = "maven { url 'https://kotlin.bintray.com/ktor' }"
#android.add_gradle_repositories =

# 要添加的打包选项
# see https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.PackagingOptions.html
# can be necessary to solve conflicts in gradle_dependencies
# please enclose in double quotes 
# e.g. android.add_packaging_options = "exclude 'META-INF/common.kotlin_module'", "exclude 'META-INF/*.kotlin_module'"
#android.add_gradle_repositories =

# 添加的Java类
#android.add_activities = com.example.ExampleActivity

# 控制台类别,应设置为GAME 或者 APP
# If you leave this blank, OUYA support will not be enabled
#android.ouya.category = GAME

# 控制台图标文件,必须是732x412 的png图片
#android.ouya.icon.filename = %(source.dir)s/data/ouya_icon.png

# XML 文件过滤器
#android.manifest.intent_filters =

# 设置启动模式为主活动
#android.manifest.launch_mode = standard

# Android附加库复制进 libs/armeabi
#android.add_libs_armeabi = libs/android/*.so
#android.add_libs_armeabi_v7a = libs/android-v7/*.so
#android.add_libs_arm64_v8a = libs/android-v8/*.so
#android.add_libs_x86 = libs/android-x86/*.so
#android.add_libs_mips = libs/android-mips/*.so

# 屏幕是否常亮
# Don't forget to add the WAKE_LOCK permission if you set this to True
#android.wakelock = False

# Android应用程序元数据设置(key=value format)
#android.meta_data =

# 要添加的Android库
#android.library_references =

# Android共享库添加
#android.uses_library =

# Android日志过滤
#android.logcat_filters = *:S python:D

# 用复制库取代生成的libpymodules.so
#android.copy_libs = 1

# 主要后构建的Android框架,可选项: armeabi-v7a, arm64-v8a, x86, x86_64
android.arch = armeabi-v7a

# 覆盖版本计算(在build.gradle中使用)
# this is not the same as app version and should only be edited if you know what you're doing
# android.numeric_version = 1

#
# Python for android 配置
#

# 使用python-for-android fork分支,默认为upstream (kivy)
#p4a.fork = kivy

# 使用python-for-android branch分支,默认为master
#p4a.branch = master

# Python-for-Android下载路径,为空默认为从git下载
#p4a.source_dir =

# 本地的构建方法
#p4a.local_recipes =

# p4a相关文件
#p4a.hook =

# 用于构建Android的Bootstrap
# p4a.bootstrap = sdl2

# P4a端口号
#p4a.port =


#
# iOS 配置(Android打包不必理会)
#

# (str) Path to a custom kivy-ios folder
#ios.kivy_ios_dir = ../kivy-ios
# Alternately, specify the URL and branch of a git checkout:
ios.kivy_ios_url = https://github.com/kivy/kivy-ios
ios.kivy_ios_branch = master

# Another platform dependency: ios-deploy
# Uncomment to use a custom checkout
#ios.ios_deploy_dir = ../ios_deploy
# Or specify URL and branch
ios.ios_deploy_url = https://github.com/phonegap/ios-deploy
ios.ios_deploy_branch = 1.7.0

# (str) Name of the certificate to use for signing the debug version
# Get a list of available identities: buildozer ios list_identities
#ios.codesign.debug = "iPhone Developer: <lastname> <firstname> (<hexstring>)"

# (str) Name of the certificate to use for signing the release version
#ios.codesign.release = %(ios.codesign.debug)s


[buildozer]

# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))
log_level = 2

# (int) Display warning if buildozer is run as root (0 = False, 1 = True)
warn_on_root = 1

# (str) Path to build artifact storage, absolute or relative to spec file
# build_dir = ./.buildozer

# (str) Path to build output (i.e. .apk, .ipa) storage
# bin_dir = ./bin

#    -----------------------------------------------------------------------------
#    List as sections
#
#    You can define all the "list" as [section:key].
#    Each line will be considered as a option to the list.
#    Let's take [app] / source.exclude_patterns.
#    Instead of doing:
#
#[app]
#source.exclude_patterns = license,data/audio/*.wav,data/images/original/*
#
#    This can be translated into:
#
#[app:source.exclude_patterns]
#license
#data/audio/*.wav
#data/images/original/*
#


#    -----------------------------------------------------------------------------
#    Profiles
#
#    You can extend section / key with a profile
#    For example, you want to deploy a demo version of your application without
#    HD content. You could first change the title to add "(demo)" in the name
#    and extend the excluded directories to remove the HD content.
#
#[app@demo]
#title = My Application (demo)
#
#[app:source.exclude_patterns@demo]
#images/hd/*
#
#    Then, invoke the command line with the "demo" profile:
#
#buildozer --profile demo android debug

3.2.2 Embalaje

$ buildozer android debug deploy run
Este comando generará una versión de depuración del archivo apk en la carpeta bin del directorio del mismo nivel. Durante el primer proceso de empaquetado, se deben instalar muchas dependencias y paquetes, y se debe acordar un acuerdo.

Una vez que el paquete esté completo, instale el archivo apk en el teléfono Android y ábralo después de la instalación.

Supongo que te gusta

Origin blog.csdn.net/qq_20466211/article/details/113735095
Recomendado
Clasificación