Pascal Savaşçısının Yolculuğu
Bilgisayar
kullanan insanlar sık sık söylüyor : Pascal öldü, Pascal bir
oyuncak dil vs. Ama söylediklerinin hiçbir delili yoktur. TIOBE
Programlama endeksinin gösterdiği değerler onun en istikrarlı 20
dil içinde olduğunu göstermektedir. (Ticari ortamda esp.)
kullanıcılarının artan sayısını da göstermektedir. Bu blog
sürekli olarak, genellikle çok zarif şeylerin pascalla yapılabilir
olduğunu ortaya çıkaracaktır.
14
Ekim 2013 Pazartesi.
Arayüze
Özel Çizim yaparak Android ile Programlama
Tamam, Free Pascal ve Lazarus
ile Android uygulamalar yazmanın mümkün olduğunu sana okudum. Sen
doğrudan wiki ye git, oradaki bir sürü adımları takip et ve
sonuç BAŞARISIZLIK !
Sonra şüphesiz söylenmeye
başlar ve şaka olabileceğini düşünürsün.
Beni dinle ahbap, FPC Android
desteği hala geliştirilmekte ve saf arm-android desteği birkaç ay
önce eklendi. Bu hedef FPC'de yeterince deneyimli olanlar için
kullanılabilir (derleyici önyükleyebilir, derleme vs.seçenekleri
ayarlanabilir) ve tüm kurulum yapmak için tembellik sayılmaz. çoğu
sorunlar bu olmayan adımları iyice okumamaktan, belki önemli bir
bölümünü atlamaktan kaynaklanıyor. Yani onlardan biriyseniz, ya
hareket tarzınızı değiştirin veya kararlı sürümün mevcut
desteği çıkana kadar bekleyin.
Ben adım adım FPC gövdesini
ayarlayarak arm-android hedef desteği ile izleyen Android uygulama
inşaa etme desteği için anlatmaya çalışacağım. Tüm linux
(kubuntu 13.04) 32-bit üzerinde yapıldığını unutmayın, ancak
her desteklenen ana bilgisayar
plarformları için çalışması
gerekir.
İlk
şey, son kararlı sürüm FPC
FPC,
önyüklemeli bir derleyiciyle,
son
kararlı sürüm ve sonraki kararlı versiyonlarda gövdeyi inşaa
etmenin mümkün olacağı, garanti edilebilir. Eski sürüm ve
revizyonlarda hiçbir garantisi yoktur, ve bu şeyler gövded
kırılabilir. Bu yazı yazıldığı sırada, FPC nin son kararlı
sürümü 2.6.2 idi. Sizinki değilse hemen kapın.
Sonraki
şey, Android NDK
Arm-Android
hedefi için FPC, oluşturmayı(make) yapmak için harici assembler
ve Android NDK tarafından sağlanan bağlayıcıyı(linkerı)
kullanır. Benimki
hala r8e sürümü, sürüm 9 daki değişikliklere baktığımda iyi
çalışması gerekir. Bunu istediğiniz yere ayıklayarak, biz
{ndk.dir} dizinini bu konuma yönlendiririz. Emin olmak
için,{ndk.dir} altında README.TXT ve RELEASE.TXT olduğu
doğrulanmalı.
En
ihtiyacımız olan araçları tespit edelim :
- {ndk.dir}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-as (assembler)
- {ndk.dir}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ld (linker)
Eğer
isterseniz, androideabi
4.6 veya 4.7 kullanmak istediğiniz durumda, sonra /toolchains/
kısmını değiştirebilirsiniz. Sahip
olduğun {ndk.dir} dizinine karşılık gelen dizine bak.
Açtığın
fpc.cfg dosyanda, aşağıdaki satırı olmalıdır :
-XP$FPCTARGET-
Bu
satır $FPCTARGET-(tire işaretine dikkat edin) adında herhangi
harici araçları başa eklemek için derleyiciyi bilgilendirir,
böylece derleyici arm-android hedef olarak aramak istediğinde,
"arm-android-as" olarak onu arar. Gördüğünüz gibi adı,
NDK araçlarının adıyla tutarsız, aynı değil. Bu çözüm
derleyici tarafından beklenen isimlerle araçlar için sembolik bir
bağlantılar oluşturur. Sembolik
bağlantılar (örneğin Windows) desteklemeyen bilgisayarlar için,
araçlar için küçük bir exe sarmalayıcı(wrapper) oluşturabilir,
yada sadece aracı yeniden adlandırabilirsin. PATH (/usr/bin/ içine
koy) içinde bir yere / sembolik sarmalayıcıları(wrappers) koyun.
ls
-l `which arm-android-<toolname>`
(sadece *nix) çıkışını doğrulayarak geçerliliğinden emin
olun. Benim sistemde bu gibi görünüyor
(gerçek bir dizin {ndk.dir} ile değiştirilir):
$
ls -l `which arm-android-as`
lrwxrwxrwx
1 root root 120 Mar 8 2013 /usr/bin/arm-android-as ->
{ndk.dir}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-as
$
ls -l `which arm-android-ld`
lrwxrwxrwx
1 root root 120 Mar 8 2013 /usr/bin/arm-android-ld ->
{ndk.dir}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ld
Terminalde
veya komut isteminde arm-android-as ve arm-android-ld 'in çalışması
için yürütmeyi deneyin.
Sonraki,
FPC gövde
Ya
svn (Ben svn'nin nasıl kullanılacağını öğretmeye değil, bir
yere öğretici bulmaya gidiyorum) den gelen FPC gövdeden yada Free
Pascal'ın FTP sinden alın. Bu
durumda svn, buradaki “http://svn.freepascal.org/svn/fpc/trunk”
adresinde bulunuyor.
Arm-Android
Hedefi için FPC nin İnşaası
Lütfen
uçbirim terminalini kullanarak, FPC gövde dizine gidin ve aşağıdaki
komutu çalıştırın:
make
crossall OS_TARGET=android CPU_TARGET=arm CROSSOPT='-Cp<ARM Arch>
-Cf<ARM VFP>'
<ARM
Arch> senin derlemen için ARM mimarisini tanımlar, benim cihaz
ARMv6, yani kullanımı -CpARMv6.
<ARM
VFP> en azından mevcut olan ARMv6,VFPv2 ve VFPv3 için, kayan
nokta hesaplaması için kullanmak istediğiniz Vector Floating Point
birimini tanımlar. bu
varsayılan soft-float kullanır, hesaplama yazılımı ile
gerçekleştirilir gibi çok yavaştır. Nadirende
olsa kayan nokta(floatin point) kullanıladan beri, "soft-Float"
benim için gayet iyi, bu yüzden herhangi bir -Cf seçenek
geçmiyorum.
Her
şey yolunda giderse eğer, artık
onu kurma zamanı. Aşağıdakini
(hala aynı FPC gövde klasöre) çalıştırın:
make
crossinstall OS_TARGET=android CPU_TARGET=arm
INSTALL_PREFIX=<directory of your choice>
İstediğiniz
herhangi bir dizini seçmek için çekinmeyin, ancak standart
gereklilikleri karşılamak şartıyla(boşluksuz
dosya yolu). Aynı
ana FPC dizinine yükleme öneririm, böylece kolayca fpc.cfg yi
paylaşabilirsin. FPC dizin yapısı çapraz derleyici yüklemeye ana
bilgisayar derleyici ağaç yapısı benzerliğinde (ve ilgili
birimleri) mümkün olur. Bu
ppc[ross]XXX çağırmak için sorgulamaya fpc sürücü
kullanılabilir.
Her
şey yolunda giderse, derleyici test edin.Aşağıdaki komutu
çalıştırın:
fpc
-Parm -Tandroid
Çıktı
olması gerektiği gibi :
Free
Pascal Compiler version 2.7.1 [2013/09/21] for arm
Copyright
(c) 1993-2013 by Florian Klaempfl and others
Fatal:
No source file name in command line
Fatal:
Compilation aborted
Error:
/usr/bin/ppcrossarm returned an error exitcode
Sonraki,
Android SDK
Eğer
Android SDK
ya sahip değilsen buradan
indir, r22 iyi olmalı.
Bize sadece SDK araçları
gerek,bu yüzden ADT paket indirirken zaman ve bant genişliği
ayrıca gerekir. Ben
{sdk.dir} gibi dizine SDK yüklemesini sevkedeceğim. Doğru
{ndk.dir} altında olmasından emin olmak için SDK README.TXT yi
okumalısın
AndroidLCL
örneğini test etmek, yay !
Lazarus
kurulum dizinine gidin
(ben artık {lazarus.dir} olarak sevkedeceğim) ve
"examples/androidlcl/androidlcltest.lpi" yi açın. Şimdi
Proje-> Proje Seçenekleri menüsünü aç, Hedef platform OS
ayarlanmak için android ayarla ve CPU' yu arm olarak ayarla (yada
sadece kendi inşaa moduna al). Eğer
FPC gövde inşaasında -Cf seçeneğini kullanıyorsanız, diğerinde
de aynı seçeneği belirtin. Ayrıca Tools->Configure Build
Lazarus diyaloğunda ayarlaman gerekebilir. Şimdi
Run->Build menuye Tıkla. Eğer bunu alıyorsanız :
Trying
to use a unit which was compiled with a different FPU mode
Sonra
doğru şekilde-Cf seçeneği koymayın. Hatırladığım
kadarıyla Proje(Proje seçenekleri diyaloğuyla) ve LCL (ve
bağımlılıklarını, Lazarus yapılandırma inşaası yoluyla)
koymanız için gerekli.
Herşey
yolunda giderse, proje klasöründe android/libs/armeabi/liblclapp.so
dosyası olacaktır.
Ant'ı
Edinin
Anroid
SDK apk inşaasında inşaa
aracı ant kullanır, bundan dolayı onu yüklemeniz gerekir.
APK'nın
İnşaası
Androidlcl
proje klasörü altında android klasörüne gidin ve build.xml
dosyasını açın. İçinde,
2 LoadProperties ve 1 property etiketlerini göreceksiniz. Senin
SDK Kurulumunla bu noktaları dosyalara karşılaştırarak
düzenlemen gerekir. Benimki
aşağıda:
<loadproperties
srcFile="local.properties" />
<property
file="ant.properties" />
<loadproperties
srcFile="default.properties" />
{sdk.dir} ile doldurmalısın, sdk.dir içeriğini local.properties ile(elbette gerçek değeri yükledikten sonra ). default.properties hedef android seviyesini içerir. Tam listesi burada görülebilir. Android SDK yöneticisi aracılığıyla ilgili SDK platformunu kurmak zorunda olduğunu unutmayın.
Sizin
apk nın kararlı sürümü için gerekli olan key.alias ve
key.store'u ant.properties içerir. Hata
Ayıklama(debug) sürümü için, bu gerekli değil ve apk inşaa
edici program kendine ait debug anahtarı ataması yapar.
Hepsini
ayarladıysanız çalıştırın :
ant
debug
Android
klasöründe. apk sonuçları android/bin klasöründe
LCLExample-debug.apk isimlendirmesi ile oluşacaktır. Kurun ve
keyfini çıkarın.
Bu
noktadan itibaren, bir şablo olarak androidlcl yapısından
yararlanılabilir. Genel
Java paket yapısı ve Android inşaa bilgi sistemi, paket adını
değiştirmeyi gerektirecektir.
Windows üzerinde Lazarus ide ile Android Yazılım geliştirme Yazısı içi tıklayınız
Durali Kiraz
duralikiraz.blogspot.com
Not:
Bu yazı
http://pascalgeek.blogspot.cz/2013/10/android-programming-with-lazarus.html
sayfasındaki yazının amatör bir çevirisidir. Daha doğru bilgi
edinmek istiyorsanız lüften kaynağındaki yazıyla karşılaştırma
yapınız. Buradaki çeviri şifaen yapılmıştır.
Hiç yorum yok:
Yorum Gönder