Delphi XE5 - pár detailů

vložil Radek Červinka 12. září 2013 22:24

Zkusím napsat několik poznatků co je mi známo ohledně mobilního vývoje.

Nejdříve fakta: ARM kompilátor pro Android je postaven podobně jako pro iOS na bázi LLVM.

c:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin>dccaarm
Embarcadero Delphi for Android compiler version 26.0
Copyright (c) 1983,2013 Embarcadero Technologies, Inc.

Kompilátor se jmenuje dccaarm a momentálně produkuje nativní ARM7 kód. Verze všech kompilátorů je 26, codename je Zephyr.

Tj. staré zařízení s ARM6 nejsou podporována. Navíc procesor musí podporovat NEON instrukce. Jedná se o Advanced SIMD instrukce (tj. podpora pro multimedia atd.). Stejný požadavek má hodně novějších aplikací. NEON instrukce jsou s velkou pravděpodobností ve vašem zařízení obsaženy.

cat /proc/cpuinfo:

    Processor : ARMv7 Processor rev 2 (v7l)
    processor : 0
    BogoMIPS : 13.53

    Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 
…

V XE5 byla vylepšena spolupráce linkeru a kompilátoru což mělo za následek zmenšení velikosti souborů v některých případech až o polovinu (prostě OSS linker je trošku tupější a bylo mu třeba trochu pomoci). Mělo by fungovat i pro iOS. Souvisí to se zavedením {$D0} - {$D2} což je rozšíření {$D+} (doufám, že nekecám).

Další podmínkou je, že Android zařízení musí mít GPU (to má snad každé novější).

Podporované verze

  • JellyBean (Android 4.1.x, 4.2.x, 4.3.x)
  • Ice Cream Sandwich (Android 4.0.3 a 4.0.4)
  • Gingerbread (Android 2.3.3 - 2.3.7)

Verze před Android 2.3.3 nemají v NDK podporu pro Activity, ať už to znamená cokoliv (systém tak pravděpodobně informuje NDK aplikaci).

Není podpora pro Honeycomb (Android 3.x) a Gingerbread emulator.

Instalace

Je celkem balík, zvláště v případě vývoje pro Android, kdy se stahují SDK o velikosti 2x 300M (SDK a NDK) - volí se během instalace. Vaše zařízení musí mít povoleno ladění přes USB a USB driver pro ladění.

Poznámky

Byl vylepšen debugger, kdy při ladění na zařízení lze zkoumat hodnoty properties.

Doufám, že si uvědomujete, že Delphi na Androidu používá stejně jako na iOS pro správu paměti deterministické ARC (automatické počítání odkazů). Všechny ostatní vývojové prostředky používají nedeterministický garbage collector.

V případě, že Vaše aplikace spadne úplně bez výjimky, lze podle zkušenějších použít příkaz adb -d logcat, kde adb je Android debugger nebo za pomocí monitor.bat (Android SDK tools). Tady jen prezentuji co jsem slyšel, určitě někdo zkušenější mi to doplní.

Pro každý projekt se dá nastavit povolení:

povolení Android

a parametry pro vystavení na store

provisioning


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy:

Novinky

Komentáře

13.9.2013 6:45:42 #

pepak

"Activity, ať už to znamená cokoliv" -- Activity je v Androidu zhruba totéž, čím je v Delphi TForm.

pepak

13.9.2013 13:03:52 #

Zdeněk Vašků

Jak je to s Widgety (alias Nástroje)? Dají se dělat?

Zdeněk Vašků

13.9.2013 13:33:42 #

radekc

Nevím

radekc

13.9.2013 19:04:01 #

bullhead

Jinak mé první poznatky:

- ve virtálce (VMware) mi NEjede Android emulátor
...nebo nevím jak ho aktivovat:-) ...ale stejný problém mám z Windows Phone a VS (používám HW zařízení) - tam to nejde proto, že vyžaduje vlastní windows hypervizor, který přišel až z Windows 8 a které nechci používat

- jsem NADŠEN:-)
...jako fakt to funguje - nakopíruji APK a jede (a je to jednodušší než na iOs díky vynechání prostředníků Mac/OsX/XCode)


B.

bullhead

14.9.2013 8:17:02 #

Radek

bullhead: asi to nepomůže protože je to ohledně Windows, ale třeba má ten emulátor stejné požadavky -  http://docwiki.embarcadero.com/RADStudio/XE5/en/FireMonkey_Platform_Prerequisites#Android_Requirements

When run in a virtual machine, the host's GPU must be accessible. Such support is found in the following virtualization products:

    VMware Workstation 7
    VMware Player 3
    VMware Fusion 3

Radek

16.9.2013 15:51:04 #

bullhead

to Radek:

1.
Díky, nevím proč (fakt nevím:-)), asi po půl dne se mi začalo po RUN objevovat "chcete spustit emulátor". ALE stejně se jen spustí, a nic se do něj nenahraje (takže pořád používám HW zařízení - mám jich dost:-)).

2.
Další věc, co mne překvapila (ale je pravda, že jsem to moc nezkoumal), když dám BUILD, tak se APK nevygeneruje, když dám RUN tak se vygeneruje (čekal bych to naopak).

B.

bullhead

17.9.2013 0:13:46 #

JFK

Na samotné vygenerování APK je funkce Project - Deploy.
To proto, aby bylo možno v nouzi zasáhnout ještě do vlastních zdrojů, než se balíček vytvoří.
Dále je lepší (když už) používat Android Emulátor na fyzickém stroji a z VM se k němu připojit vzdáleně. Ale používat tento emulátor je stejně zbytečný druh sebemrskačství a perverze. Navíc mnoho věcí tam "běží", ale na zařízení samotném pak už ne - a to jak obecně, tak zejména ve vztahu k XE5.

JFK

19.9.2013 17:11:29 #

bullhead

Jen pro info aktuální stav komponent k XE5:

- Unidac už je ve verzi 5.1.3 z podporou XE5 a Androidu(!)
...pro ty kdo ještě nepřešli na Firedac, např. já:-)

- TMS zatím pro XE5 updatoval jen drobnosti
...Webmaps, Cloud pack a apod.  - žádný z velkých balíků


...SmartInspect, EurekaLog, FastReport, DevJet Documentation Insight, Hansoft, UniGUI apod. pořád nic

bullhead

20.9.2013 14:16:16 #

JaroB

Tak se mi podařilo dotlačit do XE5 i RxLibrary :) i přes potíže s DPK...
Pokusím se to publikovat co nejdříve.

QuickReport ještě není od autorů v XE5 (je tam kapku nesoulad s msxml), ale taky se mi to podařilo portovat.

JaroB

Komentování ukončeno

Naše nabídka

Partial English version.

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Anketa

Poslední komentáře

Comment RSS