[PYTHON] Mémo Kivy-Android (MAC)

Site de référence

1. Préparation

-Activer la construction de Kivy-ios memo (MAC). -Téléchargez et installez JAVA6 depuis le site d'Apple.

2. Installez les modules requis

console


pip install buildozer

3. Construire

-Copiez l'exemple de programme touchtracer fourni avec kivy dans un répertoire approprié.

console


 cd touchtracer
 buildozer init

-Un fichier appelé buildozer.spec sera généré, définissez donc les informations nécessaires. Buildozer télécharge automatiquement les modules requis. Si vous avez besoin d'un SDK ou NDK spécifique, définissez la version de l'API, etc. dans ce fichier.

buildozer.spec



# (str) Title of your application
title = Touchtracer  ###Nom du titre de l'application

# (str) Package name
package.name = Touchtracer  ###Nom du package d'application

# (str) Package domain (needed for android/ios packaging)
package.domain = com.domain  ###Nom de domaine d'application
…
…
…
# (list) Source files to include (let empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas  ###Ajouter l'extension de nom de fichier requise
…
…
…
# (str) Application versioning (method 1)
#version.regex = __version__ = ['"](.*)['"]
#version.filename = %(source.dir)s/main.py ###Commentaire si la version n'est pas décrite dans le fichier

# (str) Application versioning (method 2)
version = 0.1.0  ###Si la version n'est pas décrite dans le fichier, décommentez et définissez la version

# (list) Application requirements
# comma seperated e.g. requirements = sqlite3,kivy
requirements = kivy  ###Définir un nom de module supplémentaire requis
…
…
…
# (str) Presplash of the application
presplash.filename = %(source.dir)s/png/landscape.png  ###Spécifiez l'image de l'écran de démarrage*/

# (str) Icon of the application
icon.filename = %(source.dir)s/png/76pt_x2.png  ###Spécifiez l'image de l'icône
…
…
…

# (list) Permissions
android.permissions = INTERNET,WRITE_EXTERNAL_STORAGE  ###Définissez les autorisations requises, etc.
…
…
…
# (list) python-for-android whitelist
android.p4a_whitelist = lib-dynload/*codec*,encodings/cp*.pyo,encodings/tis*,encodings/shift*,encodings/bz2*,encodings/iso*,encodings/undefined*,encodings/johab*,encodings/p*,encodings/m*,encodings/euc*,encodings/k*,encodings/unicode_internal*,encodings/quo*,encodings/gb*,encodings/big5*,encodings/hp*,encodings/hz*   ###Activer le CODEC pour la conversion de caractères

-Générer un package de version de débogage (généré sous BIN dans le répertoire courant)

console


 buildozer android debug

-Générer un package de version de débogage tout en affichant BUILDLOG à l'écran (généré sous BIN dans le répertoire courant)

console


buildozer --verbose android debug

-Génération de la version release (générée sous BIN dans le répertoire courant)

console


 buildozer android release

4. Signature de la version finale

-La version officielle ne peut pas être installée sans signature, elle doit donc être signée. Si vous disposez d'un certificat formel, utilisez-le. Sinon, générez un certificat approprié (si vous souhaitez l'installer et l'exécuter pour le moment).

console


jarsigner -keystore keystorename -verbose touchtracer-1.2.0.apk touchtracer

5. Prise en charge du plein écran

Pour désactiver la barre de navigation, ajoutez le code ci-dessous. Cependant, pour le moment, lorsque le clavier à l'écran est affiché, le bouton de navigation s'affiche.

・ Modifié au fichier de spécifications

buildozer.spec


# (int) Minimum API required (8 = Android 2.2 devices)
android.minapi = 19

-Source Android modifiée par Kivy (emplacement onResume)

java:.buildozer/android/platform/python-for-android/src/src/org/renpy/android/PythonActivity.java



   @Override
    protected void onResume() {
        super.onResume();
        _isPaused = false;

        if (!mLaunchedThread) {
            mLaunchedThread = true;
            new Thread(this).start();
        }
        
		 /// ADD for HIDE NAVIGATEBAR must above API19 ///
        try {
            this.mInfo = this.getPackageManager().getApplicationInfo(
                    this.getPackageName(), PackageManager.GET_META_DATA);
            Log.v("python", "metadata fullscreen is" + this.mInfo.metaData.get("fullscreen") + " For HIDE_NAVIGATIONBAR");
            if ( (Integer)this.mInfo.metaData.get("fullscreen") == 1 ) {
                mView.setSystemUiVisibility(4099);
            }
        } catch (PackageManager.NameNotFoundException e) {
        }
        //////////////////////////////////////////////////

        if (mView != null) {
            mView.onResume();
        }
    }

・ Reconstruire

console


rm -rf .buildozer/android/platform/python-for-android/dist
buildozer android debug

Recommended Posts

Mémo Kivy-Android (MAC)
kivy-ios mémo kivy v1.8.0 (MAC)
Mémo sur Mac OS X
Mémo de construction de l'environnement Python sur Mac
Installation de Python Note Anaconda (Mac uniquement)
Mémo Raspberry-pi
Mémo Pandas
Mémo HackerRank
kivy-ios memo kivy v1.8.0 lien URL (MAC)
mémo python
mémo graphène
Mémo du flacon
Mémo Matplotlib
mémo pytest
mémo sed
Mémo Python
Installer Memo
mémo networkx
mémo python
mémo Tomcat
mémo de commande
Mémo du générateur.
mémo psycopg2
Mémo SSH
Mémo: rtl8812
mémo pandas
Mémo Shell
Mémo Python
Mémo Pycharm
kivy-ios memo kivy v1.9.0-dev lien URL (MAC)
kivy-ios memo kivy v1.8.0 pour la nouvelle chaîne d'outils (MAC)
[Pour les débutants complets] Mémo de raccourci Jupyer Lab [Mac]