ふう! このモンスターのトラックの下から出たばかりです。 また、幸運ではなかった人もいました。 前の記事で約束したように、本日は、Buildozerユーティリティを使用してKivyフレームワークを使用して作成されたプログラムのapkパッケージがどのように構築されるかを説明します。
これには何が必要ですか? 既知のツール-コーヒータバコ、1ポンドの神経-に加えて、GitHubの格納庫にある新しいブルドーザーと関連する依存症の鍵が必要です。 Android用のパッケージを組み立てることはできません。
ちなみに、Microsoftユーザーは、Windowsマシンでブルドーザーを使用することはありません。apkパッケージを構築するには、Linuxシステムまたは仮想マシン上のそのイメージが必要だからです。 じゃあ そして、githubに移動し、 ブルドーザーをけん引し、アーカイブを何らかのディレクトリに解凍します。 くそー はい、それはただのモンスターです!
落ち着いて。 開始しないでください。 レバレッジを取得しません。 最初に、Pythonパッケージをインストールおよび管理するためのツールであるpipパッケージをダウンロードする必要があります。
sudo apt-get install python-pip
ブルドーザーのあるフォルダー内の意味で、格納庫に入ります...
...コマンドを実行します-
sudo python setup.py install
buildozerが正常にインストールされたことにより、インストールが成功したことが通知されます。 ブルドーザーは、Python 2.7とPython> = 3.3の両方で機能します。 Python 2.7を使用しています。 Kivy開発者によると、3番目のPythonは完全にサポートされていますが、Python 3を使用して記述されたプログラムのapkパッケージをまだ作成しようとしていないためです。 さて、そして今、実際にpython-for-androidをダウンロードしましょう。 このブランチは私のために働くので、他の人には提供しません。 python-for-android.zipを解凍し、今のところ忘れてください。
依存関係
それらの多くがあり、あなたが大切なapk-chechkaを集めることができるか、バリドーラを飲んで最初からやり直す必要があるかどうかは、適切なインストールに依存します。 上記のパッケージがすべて揃っているわけではないと考えられており、Kivyフレームワークがインストールされており、正常に使用されていると想定されています。
sudo pip install --upgrade cython sudo pip install virtualenv sudo pip install Jinja2
Android用のパッケージをビルドするには、Android SDKが必要です。 バイナリの一部はまだ32ビットライブラリにあるため、利用可能にする必要があります。
dpkg --add-architecture i386
その後、次のパッケージをインストールできます。
sudo apt-get update sudo apt-get install -y build-essential ccache git zlib1g-dev python2.7 python2.7-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-7-jdk unzip
さて、そして今、最後に、私たちは快適なブルドーザーの椅子に座って、制御レバーをつかむ準備ができています。 プロジェクトフォルダーに移動し、ターミナルでコマンドを実行します-
buildozer init
...これにより、プロジェクトにbuildozer.spec仕様ファイルが作成されます。ここで、アプリケーションをビルドするためのパラメーターをブルドーザーに伝えます。
このファイルを開き、その内容を確認します。
今、より詳細に検討してください...
title = DemoCleanMaster
これは、Androidデバイスに表示され、インストールapkパッケージを運ぶアプリケーションの名前です。
package.name = democleanmaster package.domain = org.heattheatr
一意のアプリケーションドメイン。
source.dir = .
アプリケーションへのエントリポイントがあるディレクトリは、main.pyファイルです。 デフォルトでは、これはプロジェクトのルートディレクトリです。
source.include_exts = py,kv,jpg,png
プロジェクトのアセンブリapkパッケージに含まれるファイルの拡張子。 指定されたファイルが取得されるディレクトリツリー構造が保存されます。
version.regex = __version__ = ['"](.*)['"] version.filename = %(source.dir)s/main.py
プログラムのバージョンと、それを探すファイル(バージョン)。 このメソッドは、プロジェクトのルートディレクトリのmain.pyファイルに、アプリケーションのバージョン値を持つ変数が必要であることを示しています。
requirements = kivy
アセンブリに含まれるサードパーティライブラリ。 アプリケーションが動作するライブラリパッケージをカンマで区切って指定できます。たとえば、kivy、opencv、pil、sqlite3です。
利用可能なライブラリの完全なリストは、UIを作成するツール-Kivy Designerの仕様エディターで確認できます。 私はそれを強くお勧めします!
presplash.filename = %(source.dir)s/Data/Images/presplash.jpg
アプリケーションの起動中にデバイス画面に表示される画像。%(source.dir)sはプロジェクトのルートディレクトリへのパスです。
icon.filename = %(source.dir)s/Data/Images/logo.png
デバイスに表示されるアプリケーションアイコン。
orientation = portrait fullscreen = 1
デバイス上のアプリケーションの向き。 「ポートレート」に加えて、「ランドスケープ」の値を取ることができます。 「フルスクリーン」は、アクティビティをフルスクリーンに展開することを示します。 また、値「0」を取ります。
android.permissions = INTERNET
アプリケーションの権利。
android.api = 18
アプリケーションで使用されるAndroid APIのバージョン(Android SDKにある必要があります)。 これは、たとえば、Android NDKで利用できないAndroid API 10のバージョンを指定した場合に問題を引き起こす可能性があります。
android.minapi = 8
アプリケーションがサポートするAndroid APIの最小バージョン。
android.sdk = 21
Android SDKバージョン。
android.ndk = 9
Android NDKバージョン。
android.private_storage = False
SDカード上のデバイスにプロジェクトファイルを含むフォルダーを作成するように指定します。 お勧めです。 この場合、* .pyoプロジェクトファイルのバイトコンパイルされた表現をソーステキストに置き換えることができるため、プロジェクトに小さな変更を加える必要がある場合は、ソースを編集するか、コンピューターからそれらを再読み込みすることにより、デバイスで直接これを行うことができます。
android.ndk_path = /home/zavulon/Opt/android-ndk-r9 android.sdk_path = /home/zavulon/Opt/android-sdk android.p4a_dir = /home/zavulon/Opt/Python/python-for-android
ここではすべてが明確です。 次のようにできます。
android.ndk_path = android.sdk_path = android.p4a_dir =
この場合、ブルドーザーは、仕様で指定されているANDROID APIバージョンのAndroid SDKと、Android NDK、およびPython-for-android、Apache-antがブルドーザーで見つからない場合にダウンロードされます。 Python自体とモジュールの次のライブラリとソースコードもダウンロードされます。
はい これはやや面倒ですが、これは一度行われます。 次に、プロジェクトをビルドするには、buildozer.spec仕様ファイルを編集して、ビルドするプロジェクトにドロップします。 これまで自分で使用していないため、残りの仕様パラメータについては考慮しません。 そして、はい、iOS向けのビルドのオプションも軌道に乗ったままです。なぜなら、このプラットフォームを備えたデバイスを持っていないからです。
実際には、ブルドーザーのドアを閉じて滑走路から遠ざけます-プロジェクトフォルダーに入り、ターミナルでコンパイル開始コマンドを実行します。
buildozer android debug
切望されているメッセージが表示されるまでには、かなり時間がかかります(タバコとコーヒーが便利になりました)。
apk-checkはバーゲンとして取得されることに注意してください。 署名済みパッケージの作成プロセスについて説明したHabr に関する記事があります。 さらに、ビルドサイズは非常に印象的で、7.6 MBです。 これは、ブルドーザーのすべてのテストと不要なライブラリを含むアセンブリにすべてのPythonが含まれているためです。 また、Kivy自体は、アプリケーションで使用されていなくても、すべてのAPIに含まれています。
組み立てられたapkをデバイスにインストールして起動すると、アプリケーションはかなりの時間実行されます。 Kivyは、すべてのライブラリを抽出して展開するのに時間がかかります。 幸いなことに、プログラムのそれ以降のダウンロードはすべて5秒以下で終わります。
次の記事では、ブルドーザーを活用して、組み立てられたプロジェクトを見るためにプルするものを説明しますが、すでにはるかに小さい...
素敵なビルドを! トラックの下を見てください!