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í:
a parametry pro vystavení na store