7. Paketleme¶
Bu bölümde hazırlanan Kivy programının Android paketi haline getirilmesi anlatılacaktır.
7.1. Buildozer Kurulumu¶
Kivy programlarını paketlemenin en kolay yolu Buildozer kullanmaktır. Ne yazıkki Buildozer şimdilik sadece Linux’ta çalışmaktadır. Windows kullanıcıları için VirtualBox üzerinde Sanal Linux Makina disk görüntüsü hazırlanmıştır. Windows kullanıcıları belkide çoğu Linux kullanıcıları Sanal Linux Makina bölümünde anlatılanları yapabilirler.
Burada sadece Debian Jessie’de (8.3) nasıl kurulacağını anlatacağız.
Sisteminizde git
kurulu değilse:
# apt-get install git
Yazılım havuzundan indirelim:
# git clone https://github.com/kivy/buildozer.git
Kurulumu gerçekleştirelim:
# cd buildozer
# python setup.py install
Eğer sisteminizde eksik paket var ise, size hangilerinin eksik olduğu bildirilecektir. Bu kurulum yeni kurulmuş Debian Jessie’de (8.3) de denenmiştir. İleriki zamanlarda buildozer debian paketi çıkarsa daha kolay kurulum gerçekleştirilebilir.
Muhtemelen sisteminizde zlib1g-dev ve Cython kurulu olmayacak:
# apt-get install zlib1g-dev
# apt-get install cython
Henüz Java derleyicisini kurmamış iseniz:
# apt-get install gcj-jdk
Buildozer’in paketleyebilmesi için 32 bit kütüphanelere ihtiyacı olacak. Şu şekilde kurabilirsiniz:
# dpkg --add-architecture i386
# apt-get update
# apt-get install build-essential ccache lib32z1 libncurses5:i386 libstdc++6:i386 openjdk-7-jdk unzip zlib1g:i386
Tüm bu anlattıklarımı, VirtualBox üzerinde bir sanal makinada yaptım ve disk görüntüsünü
kullanımınız için aşağıdaki adrese koydum:
https://docs.google.com/uc?export=download&confirm=Ser1&id=0B3-o4L3R6zHvOE9OdDBCUmhLZ0E
Sizin tek yapmanız gereken yapmanız gereken Sanal Linux Makina‘de anlatılan VirtualBox’u kurmak.
7.2. Paket Derleme¶
Paket haline getirmek için önce başlatalım:
$ buildozer init
Daha sonra buildozer.spec
dosyasını düzenleyelim. Ben sadece aşağıdaki değişiklikleri yaptım:
# (str) Title of your application
title = Kivy Metin Duzenleyici
# (str) Package name
package.name = kiviymetinduzenleyici
Şimdi de sıra paketlemeye geldi:
$ buildozer android release
Şu şekilde başlaması gerekiyor:
# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
# Check requirements for android
# Install platform
....
İlk kez paketleme yapıyorsanız, ANT, SDK, NDK indirilecektir. Lütfen sabırlı olun. Daha sonra paketleme işlemi yapılacaktır. Benim sanal makinamda bu işlem 10 dakikadan fazla sürmektedir. Şu şekilde sonlanması gerekir:
# Android packages installation done.
# Check application requirements
# Check garden requirements
# Compile platform
# Distribution compiled.
# Build the application #1
# Package the application
# Android packaging done!
# APK KivyMetinDuzenleyici-0.1-release-unsigned.apk available in the bin directory
Derlenen dosya, derlemeyi başlattığınız klasörün içerisinde oluşturulan bin
klasörüne
kaydedilmiştir. Bu dosyayı Android cihaza kurmadan önce imzalamanız gerekmektedir.
7.3. İmzalama¶
Paketinizi kurmadan önce imzalamanız gerekir. Bunun en kolay yolu apk-signer kullanmaktdır. Programı indirdikten sonra zip paketini açın çalıştırın. Tarafımdan hazırlanan Sanal Linux Makina kullanıyorsanız, masaüstünde apk-signer simgesi üzerine tıklayın.
7.3.1. Anahtar Oluşturma¶
Önce anahtar oluşturacağız (Sanal Linux Makina kullananlar için kivy ev klasöründe bir tane anahtar mevcut). Programınız çalıştığında Key Generator sekmesinde olacaktır. Bu sekmede iken ilk yapacağınız anhtarınızı kaydedeceğiniz dosyayı belirlemek. Bu amaçla [ Save as... ] düğmesine tıklayın. Anahtarınızı kaydedeceğiniz klasörü seçin (bizdeki örnekte /home/kivy) ve dosya adını yazın (biz benim yazdık). Yaptıklarımız Şekil 7.1 görünmektedir.
Daha sonra gerekli bilgileri doldurun. Password ve Confirm alanlarına aynı parolayı girin (en az 8 karakter). Bizim örneğimizde kivy123 girdik. Bir Alias belirleyin, biz Kivy yaptık. Alias’ınız için yine parola (Alias password ve Confirm alanlarına) girin. Biz yine kivy123 girdik. Bu parolaları unutmayın, çünkü bundan sonra imzalayacağınız her pakette kullanacaksınız. Diğer alanları istediğiniz gibi doldurun. Şekil 7.1‘de oluşturduğumuz anahtar için bilgilerin girilmiş hali görünmektedir.
Generete Keyfile düğmesine tıklayarak anahtarınızı oluşturun.
7.3.2. İmzalama¶
Anahtarınızı (aslına imzanız) oluşturduktan hemen sonra paketinizi imzalayabilirsiniz. Bunun için Signer sekmesine geçin. Önce [ Load Keyfile... ] düğmesine tıklayarak, oluşturduğunuz anahtarı seçin. Eğer oluştruruken yukarıdaki gibi benim yazmışsanız, ev dizininizde benim.keystroke dosyasını seçin. Bu imzanın parolasını Password alanına yazın. Bir Alias seçin (yukarıda Kivy yazdık) ve bunun parolasını Alias password alanına girin. [ Load target file... ] düğmesine tıklayın. Açılan pencerede imzalamak istediğiniz paketi seçin, biz Kivy Metin Düzenleyici’yi derlemiştik onu seçiyoruz (MetinDuzenleyici/bin/ KivyMetinDuzenleyici-0.1-release-unsigned.apk). Yaptıklarımız Şekil 7.3‘de görünmektedir.
Son olarak Sign düğmesine tıklayın. Şimdi MetinDuzenleyici/bin/KivyMetinDuzenleyici-0.1-release-SIGNED_UNALIGNED.apk dosyasını bir Android cihaza kurabilirsiniz.
7.4. Sanal Linux Makina¶
Windows kullanıcıları için Linux’u ve diğer paketleri kurmadan (epeyce zahmetli bir iş), programlarını apk haline getirebilecekleri bir sanal makina disk görüntüsü hazırlanmış https://docs.google.com/uc?export=download&confirm=Ser1&id=0B3-o4L3R6zHvOE9OdDBCUmhLZ0E adresine konulmuştur. Bu dosyayı indirin ve bir arşiv programı ile (örneğin winrar) masaüstüne açın.
Sanal makine disk görüntüsü Oracle VirtualBox 5.0.16 r105871 sürümü ile hazırlanmıştır. Kullanıcılar mutlaka bu sürümü indirmelidir. Diğer sürümlerde windows-linux bağlantısı sağlanamayabilir ve ana makinanızın dosyalarına erişiminiz olamayabilir.
7.4.1. VirtualBox kurulumu¶
https://www.virtualbox.org/wiki/Download_Old_Builds_5_0 adresinden 5.016 sürümünü indirin ve inen dosya üzerine çift tıklayın. Birkaç “Next” düğmesine tıkladıktan sonra “Install” düğmesine tıklayın. Size uyarı “Bu aygıt yazılımını ....” uyarısını verdiğinde “Yükle” düğmesine tıklayın.
7.4.2. Sanal Makina Oluşturma¶
Vitrualbox açıldığında yeni bir sanal Makine oluşturmak için sol üst köşedeki “Yeni” düğmesine tıklayın. Açılan pencerede “Adı” alanına istediğiniz bir isim yazın, ben kivy yazmayı tercih ettim. Türü “Linux”, Sürüm “Debian (32-bit)” seçin (Şekil 7.4‘de)
“İleri” düğmesine tıkladığınzda sanal makine için ayıracağınız belleği seçmeniz gerekmektedir. Her ne kadar 768MB önerilse de, 1024MB’den daha fazla bir bellek ayırmaya çalışın. Ben genelde 1536MB (1.5GB) ayrımayı tercih ediyorum (Şekil 7.5‘de):
“İleri” düğmesine tıkladığınızda sanal makinanın kullanacağı disk görüntüsünü belirleyeceğiniz
pencere gelecektir. Burada “Var olan sanal bir sdabit disk dosyası kullan” seçeneğini seçip,
simgesine tıklayın ve daha önce indirip açtığınız deb-i386.vdi
dosyasını seçin (Şekil 7.6‘de):
“Oluştur” düğmesine tıkladığınızda sanal makinanız hazır olacaktır.
7.4.3. Paylaşım Açma¶
Makinanızı başlatmadan önce, Windows kolasörlerinize erişimi sağlayacak olan paylaşımıda
yapmalısınız. Bu paylaşım sayesinde Windows makinanızda yazmış olduğunuz
Kivy programlarına sanal Makine içerisinden erişebilecek ve derleme işlemini yapabileceksiniz.
Bunun için “Ayarlar” düğmesine tıklayın. Açılan pencerenin sol panelinden “Paylaşılan Klasörler”i seçin.
Sağ paneldeki simgesine tıklayarak yeni bir paylaşım ekleme penceresi açın.
Bu pencerede Klasör Yolu’ na sanal Makine ile paylaşmak istediğiniz klasörü seçin.
Ben masaüstümdeki kivy
klasöürünü seçtim. Klasör Adı’nı “windows” olarak değiştirin.
Eğer değiştirmez iseniz, sanal makinada paylaşımlar /media/sf_paylasimadi
olarak bağlanacaktır.
Hazırladığım disk görüntüsünde “windows” paylaşımını kivy kullanıcısının ev dizinine
köprülediğimden Klasör Adını’nı “windows” olarak değiştirmenizde fayda var.
“Tamam” düğmesine tıklamadan önce “Otomatik-bağla” seçeneğini işaretlemeyi unutmayın (Şekil 7.7).
Sanal makinayı başlatmak için sola panledeki Makine ismi üzerine çift tıklayın. Makinanız bir süre sonra açılacaktır. Açılan makinada kivy kullanıcısı oturum açmış durumundadır. root ve kivy kullanıcılarının parolaları kivy123 olarak belirlenmiştir (masaüstündeki OKUBENI.txt dosyasında mevcut). Açılan sanal makineyi Şekil 7.8 ‘de görüyorsunuz. şöyle
Örnek bir derleme yapalım. Bunun için ben metin düzenleyiciyi derlemek istiyorum. Bu nedenle aşağıdaki dosyaları Windows makinamın masaüstündeki kivy klasörüne kaydettim (paylaştığım klasör).
https://github.com/mbaser/kivy-tr/blob/master/docs/programlar/metinDuzenleyici/6/main.py
https://github.com/mbaser/kivy-tr/blob/master/docs/programlar/metinDuzenleyici/6/metinduzenleyici.kv
Sanal makinede “Uçbirim Öykünücüsü” üzerine tıklayın. Bu size komut satırını açacaktır (şu Linux’çuların meşhur siyah ekranı). Windows makinadan paylaşılan klasör sanal makinadaki kivy kullanıcısının ev dizinindeki windows klasörüne köprilendiğinden, komut satırında aşağıdaki komutu işletin
Önce kivy kullanıcısının ev dizininde deneme
isimli bir klasör oluşturalım ve derleyeceğimiz
dosyaları buraya kopyalayalım (baştaki dolar $
işaretleri konulamyacaktır):
$ mkdir deneme
$ cp windows/main.py deneme
$ cp windows/metinduzenleyici.kv deneme
Bu klasöre geçiş yapalım ve buildozer’i başlatalım:
$ cd deneme/
$ buildozer init
buildozer.spec
dosyasını düzenlemek için komut satırında aşağıdaki komutu işletin:
$ mcedit buildozer.spec
Deneme derlemesi için sadece aşağıdaki değişiklikleri yapın
# (str) Title of your application
title = Kivy Metin Duzenleyici
# (str) Package name
package.name = kiviymetinduzenleyici
kaydetmek için klavyeden F2 tuşuna çıkmak için F10 tuşuna basın. Derlemek için komut satırından aşağıdaki komutu çalıştırın.
$ buildozer android release
şu şekilde başlaması gerekiyor:
# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
# Check requirements for android
# Install platform
....
Buradan sonrasını Paket Derleme ‘den takip edebilirsiniz.
Derlenen dosya, derlemeyi başlattığınız klasörün içerisinde oluşturulan bin
klasörüne
kaydedilmiştir. Bizi,m örneğimizde kivy kullanıcısının ev klasöründe bulunan deneme/bin
klasöründe olacaktır.
Bu dosyayı Android cihaza kurmadan önce imzalamanız gerekmektedir. İmzaladıktan sonra
sanal mekinenizin masaüstündeki “Ev” simgesine tıklayarak dosya yöneticisini çalıştırabilir
ve imzalanmış apk dosyasını Windows makinenizden erişmek üzere ev klasörünüzdeki windows
klasörüne
kopyalayabilirsiniz.