標籤:

Kivy中文編程指南:打包為 Android 系統可執行文件

英文原文

你可以通過 python-for-android 這個項目來打包一個 Android 應用。本頁面詳細講解如何下載和打包,可以在你自己的機器上直接進行(參考此頁面),或者使用預先構建好的Kivy Android 虛擬機,或者使用Buildozer 來自動化完成整個過程。還可以參考 針對 Kivy Launcher 進行打包 這樣就不用編譯就能運行 Kivy 應用。

對新手,Kivy 官方推薦使用 Buildozer ,這是製作完整 APK 的最簡單的途徑。或者也可以使用 Kivy Launcher 這個應用來運行你的 Kivy 應用,而不用編譯了。

Kivy 應用可以發布到 Android 應用市場,比如谷歌的 Play 市場等等,只需要額外幾步來創建一個完整簽名的 APK 就可以了。

Kivy 項目包含了一系列讀取 Android API 的工具,可以實現震動、感測器讀取、信息發送等等功能。相關的詳細信息都可以參考 Kivy 的 Android 專題頁面。

特別注意

Android 平台目前已經支持 Python 3 了,不過還處於實驗階段。

Buildozer?

Buildozer 是一個將整個構建過程自動化的工具。它會下載和設置 python-for-android 需要的所有依賴項目,包括 Android 的 SDK 和 NDK,然後會構建 APK ,這個 APK 可以自動推送到設備上。

目前 Buildozer 只能用在 Linux 上面,而且還不是正式版,處於測試階段,發布的是 alpha 版本,不過目前用起來還不錯,能顯著簡化 APK 構建的過程。

可以到 Buildozer 的項目頁面 下載獲取 Buildozer。

git clone https://github.com/kivy/buildozer.gitncd buildozernsudo python2.7 setup.py installn

上面的命令就會把 Buildozer 安裝到你的操作系統中。接下來就是到你的項目目錄然後運行如下命令:

buildozer initn

這會在你的目錄下創建一個名為 buildozer.spec 的文件,這個文件是控制項目構建選項的。估計你需要編輯修改一下這個文件,比如設置你應用的名字等等。在這裡可以設置傳遞給 python-for-android 的全部或者大部分參數。

安裝 Buildozer 的依賴項目。

最後一步了,連接上你的 Android 設備然後運行下面的命令:

buildozer android debug deploy runn

這樣就可以創建、推送 APK 到你的設備上,然後就可以自動運行了。

Buildozer 有很多可以控制的選項和工具,對你都會游泳,上面這些步驟只是創建 APK 的最簡單的方法。可以到 Buildozer 的官方文檔頁面查看完整說明。也可以看看 Buildozer 項目頁面的 README 文件。

通過 python-for-android 打包?

你還可以直接用 python-for-android 來打包應用,這樣你可以有更多控制選項,但需要手動下載和設置 Android 工具鏈。

參考python-for-android 官方文檔 查看全部細節。

針對 Kivy Launcher 打包?

Kivy launcher 是一個 Android 應用,可以運行存儲到 SD 卡裡面的 Kivy 樣例。可以用下面的方法來安裝 Kivy launcher:

  1. 前往谷歌 Play 市場中的 Kivy Launcher 頁面;
  2. 點擊安裝;
  3. 選擇你的設備,然後就搞定了。

如果你的設備無法訪問谷歌 Play 市場(我大天朝么。。。),可以從 Kivy 官網的下載頁面 手動下載安裝 APK 文件。

安裝了 Kivy launcher 之後,就可以把你的 Kivy 應用放到外置存儲的 Kivy 文件夾中,(通常是在 /sdcard 目錄下),例如:

/sdcard/kivy/yourapplication>n

<yourapplication>你的應用應該是一個文件夾,包含以下文件:

# 程序主文件:nmain.pyn# Kivy 需要的關於你應用的信息:nandroid.txtn

以下信息是 android.txt 這個文件必須包含的:

title=<Application Title> #這是應用的標題n author=<Your Name> #這是作者簽名norientation=<portrait|landscape> #設定屏幕方向為水平或豎直n

上面這些都是非常基礎的設置。如果你要用上面的工具來構建自己的 APK,還得調整很多其他的設定。

安裝樣例項目?

Kivy 自帶了很多歌樣例,可以先用這些來試一試 Kivy Launcher。可以用如下的方法來運行:

  1. 下載 Kivy demos for Android
  2. 解壓縮然後進入目錄kivydemo-for-android
  3. 把目錄內所有子目錄等內容複製到 /sdcard/kivy 這個目錄
  4. 運行 Kivy Launcher 然後從樣例中選擇一個來試試,Pictures, Showcase, Touchtracer, Cymunk 等等都可以。

發布到應用市場?

如果你用 Buildozer 或者 python-for-android 構建了 APK 文件,就可以創建一個 release 版本來發布到谷歌 Play 市場或者其他 Android 應用市場。

要想發布,就必須在運行 Buildozer 的時候添加上 release 參數,例如 buildozer android release,如果用了 python-for-android 就在 build.py 進行編譯的時候加上--release。

這樣就能在 bin 目錄裡面創建一個正式發布的 release 版的 APK 文件,需要你做好籤名和 zipalign 壓縮優化(譯者註:zipalign,優化apk應用程序的工具,使包內未壓縮的數據能夠有序的排列)。

上面這些操作的詳細過程可以參考 Android 官方文檔 ,所有用到的工具都在 Android SDK 裡面了。

設定 Android ?

Kivy 的設計定位是提供跨平台的相同操作體驗,因此也有一些清晰地設計特點。Kivy 包含了自己獨有的一套控制項,在默認情況下,用所有需要的依賴包和鏈接庫來構建 APK 文件。

也可以指定特定的 Android 功能,可以直接進行,也可以用(某些)跨平台的方式來實現。更多細節可以參考 Kivy 的 Android 專題頁面 中關於使用 Android API 的部分。


推薦閱讀:

Kivy中文編程指南:Kivy 虛擬機
Kivy中文編程指南:集成開發環境配置
Kivy中文編程指南:基礎知識
Kivy中文編程指南:架構概覽

TAG:Python | Kivy |