Zobrazit nápovědu v souboru
Transkript
Vytváření aplikací prostředí ADOBE® AIR® Právní upozornění Právní upozornění Právní upozornění viz http://help.adobe.com/cs_CZ/legalnotices/index.html. Poslední aktualizace 31.8.2016 iii Obsah Kapitola 1: O prostředí Adobe AIR Kapitola 2: Instalace prostředí Adobe AIR Instalace prostředí Adobe AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Odebrání prostředí Adobe AIR ......................................................................................... 5 Instalace a spuštění ukázkových aplikací AIR Aktualizace prostředí Adobe AIR ............................................................................ 5 ....................................................................................... 6 Kapitola 3: Práce s rozhraními API prostředí AIR Třídy jazyka ActionScript 3.0 specifické pro prostředí AIR ............................................................... 7 Třídy aplikace Flash Player s funkcemi specifickými pro prostředí AIR Komponenty Flex určené pro prostředí AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Kapitola 4: Nástroje řešení Adobe Flash Platform pro vývoj aplikací AIR Instalace sady AIR SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Nastavení sady Flex SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Nastavení externích sad SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Kapitola 5: Vytvoření první aplikace AIR Vytvoření první aplikace Flex AIR pro stolní počítač v aplikaci Flash Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Vytvoření první aplikace AIR pro stolní počítače pomocí aplikace Flash Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Vytvoření první aplikace AIR pro systém Android pomocí aplikace Flash Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Vytvoření první aplikace AIR pro systém iOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Vytvoření první aplikace AIR založené na HTML pomocí programu Dreamweaver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Vytvoření první aplikace AIR založené na HTML pomocí sady AIR SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Vytvoření první aplikace AIR pro stolní počítače pomocí sady Flex SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Vytvoření první aplikace AIR pro systém Android pomocí sady Flex SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Kapitola 6: Vývoj aplikací AIR pro stolní počítače Pracovní postup pro vývoj aplikací AIR pro stolní počítače Nastavení vlastností aplikace pro stolní počítače Ladění aplikace AIR pro stolní počítač. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Balení instalačního souboru aplikace AIR pro stolní počítač Sbalení nativního instalátoru pro stolní počítač . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Zabalení kaptivního balíčku běhového prostředí pro stolní počítače Distribuce balíčků aplikace AIR pro stolní počítače . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Kapitola 7: Vývoj aplikací AIR pro mobilní zařízení Nastavení vývojového prostředí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Faktory ovlivňující návrh mobilních aplikací . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Pracovní postup vytváření aplikací AIR pro mobilní zařízení Nastavení vlastností mobilní aplikace Zabalení mobilní aplikace AIR Ladění mobilní aplikace AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Poslední aktualizace 31.8.2016 iv VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Obsah Instalace prostředí AIR a aplikací AIR v mobilních zařízeních Aktualizace mobilních aplikací AIR Použití nabízených oznámení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Kapitola 8: Vývoj aplikací AIR pro televizní zařízení Možnosti prostředí AIR pro televizní přijímače . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Faktory ovlivňující návrh aplikace AIR pro televizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Pracovní postup pro vývoj aplikace pro platformu AIR for TV Vlastnosti deskriptoru aplikace AIR for TV Zabalení aplikace AIR pro televizi Ladění aplikací AIR pro televizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Kapitola 9: Použití nativních rozšíření pro prostředí Adobe AIR Soubory ANE (AIR Native Extension) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Nativní rozšíření versus třída NativeProcess jazyka ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Nativní rozšíření versus knihovny třídy jazyka ActionScript (soubory SWC) Podporovaná zařízení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Podporované profily zařízení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Seznam úloh pro používání nativního rozšíření . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Deklarujte rozšíření v souboru deskriptoru aplikace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Zahrnutí souboru ANE do cesty ke knihovně aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Zabalení aplikace, která používá nativní rozšíření . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Kapitola 10: Kompilátory jazyka ActionScript O nástrojích příkazového řádku prostředí AIR v sadě Flex SDK Nastavení kompilátoru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Kompilace zdrojových souborů MXML a ActionScript pro aplikaci AIR Kompilace komponenty nebo knihovny kódu aplikace AIR (Flex) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Kapitola 11: Program AIR Debug Launcher (ADL) Použití nástroje ADL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Příklady ADL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Kódy ukončení a chyb nástroje ADL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Kapitola 12: AIR Developer Tool (ADT) Příkazy nástroje ADT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Sady možností nástroje ADT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Chybová hlášení programu ADT Proměnné prostředí nástroje ADT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Kapitola 13: Podepisování aplikací AIR Digitální podepisování souboru AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Vytvoření nepodepsaného přechodného souboru AIR pomocí programu ADT Podpis přechodného souboru AIR pomocí programu ADT Podepisování aktualizované verze aplikace AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Vytvoření certifikátu s vlastním podpisem pomocí programu ADT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Poslední aktualizace 31.8.2016 v VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Obsah Kapitola 14: Soubory deskriptorů aplikací AIR Změny deskriptoru aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Struktura souboru deskriptoru aplikace Elementy deskriptoru aplikace AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Kapitola 15: Profily zařízení Omezení cílových profilů v souboru deskriptoru aplikace Schopnosti různých profilů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Kapitola 16: Rozhraní API integrovaného prohlížeče AIR.SWF Přizpůsobení souboru badge.swf hladké instalace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Použití souboru badge.swf k nainstalování aplikace AIR Načtení souboru air.swf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Kontrola, zda je runtime nainstalováno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Kontrola z webové stránky, zda je aplikace AIR nainstalována. Instalace aplikace AIR z prohlížeče . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Spuštění nainstalované aplikace AIR z prohlížeče . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Kapitola 17: Aktualizace aplikací AIR O aktualizaci aplikací . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 Zobrazení vlastního uživatelského rozhraní pro aktualizaci aplikace Stažení souboru AIR do počítače uživatele Zjištění, zda je aplikace spuštěná poprvé Použití aktualizačního rámce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Kapitola 18: Prohlížení zdrojového kódu Načtení, konfigurace a otevření prohlížeče Source Viewer Uživatelské rozhraní prohlížeče Source Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 Kapitola 19: Ladění pomocí prohlížeče Introspector HTML aplikace AIR O prohlížeči Introspector aplikace AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Načtení kódu prohlížeč Introspector aplikace AIR Prohlížení objektu na záložce Konzola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Konfigurace prohlížeče Introspector aplikace AIR Rozhraní prohlížeče Introspector aplikace AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 Použití prohlížeče Introspector aplikace AIR s obsahem v neaplikační karanténě . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 Kapitola 20: Lokalizace aplikací AIR Lokalizace názvu aplikace a popisu v instalačním programu aplikace AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 Lokalizace obsahu HTML pomocí lokalizačního rámce HTML aplikace AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Kapitola 21: Proměnné prostředí pro cestu Nastavení proměnné PATH v systémech Linux a Mac OS pomocí prostředí Bash Nastavení cesty v systému Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 Poslední aktualizace 31.8.2016 1 Kapitola 1: O prostředí Adobe AIR Prostředí Adobe® AIR® je víceobrazovkový běhový modul pro více operačních systémů, pomocí něhož můžete využít své stávající znalosti v oblasti vyvíjení webů při vytváření a zavádění aplikací RIA (Rich Internet Applications) do počítačů a mobilních zařízení. Aplikace AIR pro stolní počítače, televizory a mobilní zařízení lze vytvářet v jazyce ActionScript 3.0 pomocí prostředí Adobe® Flex a aplikace Adobe® Flash® (na základě souboru SWF). Aplikace AIR pro stolní počítače lze také vytvářet v jazyce HTML, JavaScript® a Ajax (který je založen na kódu HTML). Další informace o začátcích a používání prostředí Adobe AIR naleznete na stránkách Adobe AIR Developer Connection (http://www.adobe.com/devnet/air/). Prostředí AIR vám umožňuje pracovat ve známém prostředí a používat nástroje a postupy, které považujete za nejvhodnější. Díky podpoře aplikací a jazyků Flash, Flex, HTML, JavaScript a Ajax můžete vytvářet ty nejlepší možné zážitky splňující vaše potřeby. Při vývoji aplikací je například možné využít některou z následujících technologií nebo jejich kombinaci: • Flash / Flex / ActionScript • HTML / JavaScript / CSS / Ajax Pro uživatele je interakce s aplikacemi AIR stejná jako s nativními aplikacemi. Běhový modul se jednou nainstaluje v počítači nebo zařízení uživatele a aplikace AIR se pak instalují a spouští stejně jako kterákoliv jiná počítačová aplikace. (V systému iOS se samostatný běhový modul AIR neinstaluje – každá aplikace AIR pro systém iOS je soběstačná.) Běhový modul poskytuje jednotnou platformu nezávislou na operačním systému a pevný rámec pro zavádění aplikací, takže eliminuje testování napříč prohlížeči, neboť zajišťuje jednotnou funkčnost a stejné interakce mezi různými počítači. Místo toho, aby se aplikace vyvíjela pro určitý operační systém, zaměří se běhový modul, což přináší následující výhody: • Aplikace vyvinuté pro aplikaci AIR lze spouštět v různých operačních systémech, aniž by to pro vývojáře znamenalo další práci. Běhový modul zajišťuje jednotnou prezentaci dat a předvídatelné interakce napříč všemi operačními systémy, které aplikace AIR podporuje. • Aplikace můžete vytvářet rychleji pomocí stávajících webových technologií a vzorků návrhů. Působnost webových aplikací můžete rozšířit i na stolní počítače, aniž byste se museli učit tradiční technologie vývoje aplikací pro stolní počítače nebo složitý nativní kód. • Vyvíjení aplikací je jednodušší než při použití jazyků nižší úrovně, například C a C++. Není potřeba spravovat složitá rozhraní API nižší úrovně specifická pro jednotlivé operační systémy. Při vyvíjení aplikací pro aplikaci AIR lze využít pestrou škálu technologií a rozhraní API: • Rozhraní API specifická pro aplikaci AIR, jež poskytuje běhový modul a technologie AIR • Rozhraní API jazyka ActionScript používaná v souborech SWF a v technologii Flex (jakož i v dalších knihovnách a technologiích založených na jazyce ActionScript) • HTML, CSS a JavaScript • Většina technologií Ajax • Nativní rozšíření pro prostředí Adobe AIR, která poskytují rozhraní API ActionScript, poskytují přístup k funkcím specifickým pro danou platformu naprogramovaným v nativním kódu. Nativní rozšíření mohou také poskytnout přístup ke staršímu nativnímu kódu a k nativnímu kód, který poskytuje vyšší výkon. Poslední aktualizace 31.8.2016 2 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR O prostředí Adobe AIR Aplikace AIR výrazně mění způsob vytváření, zavádění a používání aplikací. Získáte více volnosti pro své kreativní záměry a můžete rozšířit aplikace založené na kódu Flash, Flex, HTML a AJAX pro použití ve stolních počítačích, mobilních zařízeních a televizorech. Informace o obsahu každé nové aktualizace prostředí AIR naleznete v poznámkách k vydání – Adobe AIR Release Notes (http://www.adobe.com/go/learn_air_relnotes_cz). Poslední aktualizace 31.8.2016 3 Kapitola 2: Instalace prostředí Adobe AIR Běhové prostředí Adobe® AIR® umožňuje spouštět aplikace AIR. Modul runtime můžete nainstalovat následujícími způsoby: • Samostatnou instalací modulu runtime (aniž byste instalovali i některou aplikaci AIR) • První instalací aplikace AIR prostřednictvím webového instalačního „symbolu“ (budete také vyzváni k instalaci běhového modulu). • Vytvořením vlastního instalačního programu, který nainstaluje aplikace i běhové prostředí. K distribuci běhového prostředí AIR tímto způsobem musíte získat schválení od společnosti Adobe. O schválení můžete požádat na stránce Licencování běhových prostředí Adobe. Upozorňujeme, že společnost Adobe neposkytuje nástroje pro tvorbu takového instalačního programu. K dispozici je však mnoho sad nástrojů pro instalační programy jiných výrobců. • Instalací aplikace AIR, která zabalí prostředí AIR jako kaptivní běhového prostředí. Kaptivní běhové prostředí se používá v balených aplikacích. Neslouží ke spouštění jiných aplikací AIR. Zabalení běhového prostředí je možné v systémech Mac a Windows. V systému iOS mají všechny aplikace přibalený běhový modul. Od verze AIR 3.7 mají ve výchozím nastavení všechny aplikace pro Android přibalený běhový modul (ale můžete použít samostatný běhový modul). • Instalací některého vývojového prostředí AIR, například AIR SDK, Adobe® Flash® Builder™ nebo Adobe Flex® SDK (které zahrnuje vývojové nástroje příkazového řádku aplikace AIR). Běhový modul obsažený v sadě SDK se používá pouze při ladění aplikací – nepoužívá se ke spuštění nainstalovaných aplikací AIR. Podrobné systémové požadavky pro instalaci a spuštění prostředí AIR naleznete zde: Adobe AIR: Systémové požadavky (http://www.adobe.com/cz/products/air/systemreqs/). Instalátor běhového modulu i instalátor aplikace AIR vytváří soubory protokolu při instalaci, aktualizaci nebo odstraňování aplikací AIR nebo samotného běhového modulu AIR. Nastanou-li během instalace nějaké potíže, tyto protokoly vám pomohou stanovit příčinu. Viz Installation logs (Instalační protokoly). Instalace prostředí Adobe AIR Aby mohl uživatel nainstalovat nebo aktualizovat běhový modul, musí mít k počítači oprávnění správce. Instalace běhového modulu v počítači s operačním systémem Windows 1 Stáhněte instalační soubor běhového modulu z adresy http://get.adobe.com/air. 2 Poklepejte na instalační soubor modulu runtime. 3 Instalaci dokončete podle výzev v instalačním okně. Instalace modulu runtime v počítači Macintosh 1 Stáhněte instalační soubor běhového modulu z adresy http://get.adobe.com/air. 2 Poklepejte na instalační soubor modulu runtime. 3 Instalaci dokončete podle výzev v instalačním okně. 4 Pokud se v instalačním programu zobrazí okno Authenticate (Ověřit), zadejte jméno uživatele operačního systému Mac OS a heslo. Poslední aktualizace 31.8.2016 4 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Instalace prostředí Adobe AIR Instalace modulu runtime v počítači s operačním systémem Linux Poznámka: V současnosti nejsou prostředí AIR 2.7 a novější podporována v operačním systému Linux. Aplikace AIR nasazené v systému Linux by měly i nadále používat sadu AIR 2.6 SDK. Pomocí binárního instalačního programu: 1 Vyhledejte binární instalační soubor na webu http://kb2.adobe.com/cps/853/cpsid_85304.html a stáhněte jej. 2 Nastavte oprávnění souboru tak, aby bylo možné spustit instalační program. V příkazovém řádku můžete nastavit oprávnění souboru pomocí: chmod +x AdobeAIRInstaller.bin Některé verze systému Linux umožňují nastavovat oprávnění souborů v dialogovém okně vlastností, které lze otevřít z kontextové nabídky. 3 Instalační program spustíte z příkazového řádku nebo poklepáním na instalační soubor modulu runtime. 4 Instalaci dokončete podle výzev v instalačním okně. Prostředí Adobe AIR se nainstaluje jako nativní balík. Jinými slovy jako rpm v distribuci na základě rpm a deb v distribuci Debian. Prostředí AIR v současnosti nepodporuje žádný jiný formát balíku. Pomocí instalačních programů balíků: 1 Vyhledejte soubor balíčku AIR na webu http://kb2.adobe.com/cps/853/cpsid_85304.html. Podle toho, který formát balíčku váš systém podporuje, stáhněte balíček rpm nebo Debian. 2 V případě potřeby poklepejte na soubor balíku prostředí AIR, čímž balík nainstalujete. Instalaci lze také provést z příkazového řádku: a V systému Debian: sudo dpkg -i <path to the package>/adobeair-2.0.0.xxxxx.deb b V systému na základě rpm: sudo rpm -i <path to the package>/adobeair-2.0.0-xxxxx.i386.rpm Nebo při aktualizaci stávající verze (AIR 1.5.3 nebo novější): sudo rpm -U <path to the package>/adobeair-2.0.0-xxxxx.i386.rpm Instalace aplikací AIR 2 a AIR vyžaduje oprávnění správce v počítači. Prostředí Adobe AIR se nainstaluje do následujícího umístění: /opt/Adobe AIR/Versions/1.0 Prostředí AIR zaregistruje typ mime „application/vnd.adobe.air-application-installer-package+zip“, což znamená, že soubory .air jsou tohoto typu mime a jsou tak zaregistrovány v běhovém modulu prostředí AIR. Instalace běhového modulu v zařízení Android Nejnovější verzi běhového modulu AIR lze nainstalovat z webu Android Market. Vývojové verze běhového modulu AIR můžete nainstalovat pomocí odkazu na webové stránce nebo pomocí příkazu -installRuntime nástroje ADT. Najednou lze nainstalovat pouze jednu verzi běhového modulu AIR; není možné mít nainstalovanou verzi k vydání i vývojovou verzi. Další informace viz „Příkaz installRuntime nástroje ADT“ na stránce 174. Instalace běhového modulu v zařízení iOS Potřebný kód běhového modulu AIR je součástí každé aplikace vytvořené pro zařízení iPhone, iTouch a iPad. Nebudete instalovat samostatnou běhovou komponentu. Poslední aktualizace 31.8.2016 5 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Instalace prostředí Adobe AIR Další témata Nápovědy „Prostředí AIR pro systém iOS“ na stránce 68 Odebrání prostředí Adobe AIR Nainstalovaný modul runtime prostředí AIR můžete odebrat následujícími postupy. Odebrání modulu runtime z počítače s operačním systémem Windows 1 V nabídce Start operačního systému Windows vyberte položku Nastavení > Ovládací panely. 2 Otevřete ovládací panel Programy, Programy a funkce nebo Přidat nebo odebrat programy (v závislosti na používané verzi systému Windows). 3 Chcete-li modul runtime odebrat, vyberte položku Adobe AIR. 4 Klepněte na tlačítko Změnit nebo odebrat. Odebrání modulu runtime z počítače Macintosh • Poklepejte na položku Adobe AIR Uninstaller, která se nachází ve složce /Applications/Utilities. Odebrání modulu runtime z počítače s operačním systémem Linux Proveďte jeden z následujících úkonů: • Z nabídky aplikací vyberte příkaz „Adobe AIR Uninstaller“. • Spusťte binární instalační program prostředí AIR s volbou -uninstall. • Odeberte pomocí správce balíčků balíčky prostředí AIR (adobeair a adobecerts). Odebrání běhového modulu ze zařízení Android 1 Otevřete aplikaci Settings (Nastavení) v zařízení. 2 Klepněte na položku Adobe AIR v nabídce Applications (Aplikace) > Manage Applications (Správa aplikací). 3 Klepněte na tlačítko Uninstall (Odinstalovat). Můžete také použít příkaz -uninstallRuntime nástroje ADT: Další informace viz „Příkaz uninstallRuntime nástroje ADT“ na stránce 176. Odstranění svazku běhového prostředí Chcete-li odstranit kaptivní balíček běhového prostředí, je nutné odebrat aplikaci, se kterou je nainstalován. Všimněte si, že kaptivní běhová prostředí se používají pouze ke spuštění instalované aplikace. Instalace a spuštění ukázkových aplikací AIR Aby mohl uživatel nainstalovat nebo aktualizovat aplikaci AIR, musí mít k počítači oprávnění správce. K dispozici je několik ukázkových aplikací, které slouží k předvádění funkcí prostředí AIR. Pro přístup a instalaci můžete použít následující pokyny: 1 Stáhněte si a spusťte ukázkové aplikace AIR. K dispozici jsou kompilované aplikace i zdrojový kód. Poslední aktualizace 31.8.2016 6 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Instalace prostředí Adobe AIR 2 Chcete-li stáhnout a spustit ukázkovou aplikaci, klepněte na tlačítko ukázkové aplikace Instalovat. Zobrazí se výzva k instalaci a spuštění aplikace. 3 Pokud se rozhodnete stáhnout ukázkové aplikace a spouštět je později, vyberte odkazy na stažení. Aplikace AIR můžete spouštět kdykoli následujícím postupem: • V operačním systému Windows poklepejte na ikonu aplikace na ploše nebo ji vyberte v nabídce Start. • V operačním systému Mac OS poklepejte na ikonu aplikace, která je ve výchozím nastavení nainstalována ve složce Applications (Aplikace) ve vašem uživatelském adresáři (například Macintosh HD/Users/JoeUser/Applications/). Poznámka: Vyhledejte aktualizace těchto pokynů v poznámkách k vydání prostředí AIR na adrese http://www.adobe.com/go/learn_air_relnotes_cz. Aktualizace prostředí Adobe AIR Společnost Adobe pravidelně aktualizuje prostředí Adobe AIR novými funkcemi nebo opravami drobných problémů. Pomocí funkce Automatické upozornění a aktualizace může společnost Adobe uživatele automaticky upozornit, že je k dispozici aktualizovaná verze prostředí Adobe AIR. Aktualizace prostředí Adobe AIR zajišťují jeho správnou funkčnost a často obsahují důležité změny v zabezpečení. Společnost Adobe uživatelům doporučuje, aby aktualizovali prostředí Adobe AIR na nejnovější verzi pokaždé, když je k dispozici nová verze, zejména pokud je zmíněna aktualizace zabezpečení. Po spuštění aplikace AIR běhový modul standardně zjišťuje, zda je k dispozici aktualizace. Tuto kontrolu provede, jestliže poslední kontrola aktualizací proběhla před více než dvěma týdny. Pokud je k dispozici aktualizace, aplikace AIR stáhne aktualizaci na pozadí. Uživatelé mohou funkci automatické aktualizace vypnout pomocí aplikace AIR SettingsManager. Aplikace AIR SettingsManager je k dispozici ke stažení na stránce http://airdownload.adobe.com/air/applications/SettingsManager/SettingsManager.air. Běžný instalační proces prostředí Adobe AIR zahrnuje připojení k webu http://airinstall.adobe.com, kam odešle základní informace o instalačním prostředí, jako je např. verze operačního systému a jazyk. Tyto informace se přenáší při každé instalaci pouze jednou a společnost Adobe se může jejich prostřednictvím ujistit, že instalace proběhla úspěšně. Žádné osobní identifikovatelné informace nejsou shromažďovány ani přenášeny. Aktualizace kaptivních běhových prostředí Pokud distribuujete aplikaci pomocí kaptivního balíčku běhového prostředí, není toto prostředí aktualizováno automaticky. Za účelem zabezpečení uživatelů je nutné sledovat aktualizace publikované společností Adobe a aktualizovat aplikaci novou verzí běhového prostředí, jakmile bude publikována relevantní změna zabezpečení. Poslední aktualizace 31.8.2016 7 Kapitola 3: Práce s rozhraními API prostředí AIR Prostředí Adobe® AIR® obsahuje funkce, které nejsou dostupné pro obsah SWF spuštěný v přehrávači Adobe® Flash® Player. Vývojáři používající jazyk ActionScript 3.0 Dokumentaci k rozhraním API prostředí Adobe AIR naleznete v těchto dvou knihách: • Příručka pro vývojáře jazyka ActionScript 3.0 • Referenční příručka jazyka ActionScript 3.0 pro platformu Adobe Flash Vývojáři používající jazyk HTML Pokud vytváříte aplikace AIR založené na jazyce HTML, jsou rozhraní API dostupná v jazyce JavaScript prostřednictvím souboru AIRAliases.js (viz Přístup k třídám prostředí AIR rostřednictvím prozhraní API z jazyka JavaScript) zdokumentována v těchto dvou knihách: • Příručka vývojáře jazyka HTML pro prostředí Adobe AIR • Referenční příručka rozhraní API prostředí Adobe AIR pro vývojáře jazyka HTML Třídy jazyka ActionScript 3.0 specifické pro prostředí AIR Následující tabulka obsahuje třídy běhového modulu specifické pro prostředí Adobe AIR. Nejsou dostupné pro obsah SWF spuštěný v přehrávači Adobe® Flash® Player v prohlížeči. Vývojáři používající jazyk HTML Třídy dostupné v jazyce JavaScript prostřednictvím souboru AIRAliases.js jsou uvedeny v části Referenční příručka rozhraní API prostředí Adobe AIR pro vývojáře jazyka HTML. Třída Balík jazyka ActionScript 3.0 Přidány ve verzi AIR ARecord flash.net.dns 2.0 AAAARecord flash.net.dns 2.0 ApplicationUpdater air.update 1.5 ApplicationUpdaterUI air.update 1.5 AudioPlaybackMode flash.media 3.0 AutoCapitalize flash.text 3.0 BrowserInvokeEvent flash.events 1.0 CameraPosition flash.media 3.0 Poslední aktualizace 31.8.2016 8 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Práce s rozhraními API prostředí AIR Třída Balík jazyka ActionScript 3.0 Přidány ve verzi AIR CameraRoll flash.media 2.0 CameraRollBrowseOptions flash.media 3.0 CameraUI flash.media 2.5 CertificateStatus flash.security 2.0 CompressionAlgorithm flash.utils 1.0 DatagramSocket flash.net 2.0 DatagramSocketDataEvent flash.events 2.0 DNSResolver flash.net.dns 2.0 DNSResolverEvent flash.events 2.0 DockIcon flash.desktop 1.0 DownloadErrorEvent air.update.events 1.5 DRMAuthenticateEvent flash.events 1.0 DRMDeviceGroup flash.net.drm 3.0 DRMDeviceGroupErrorEvent flash.net.drm 3.0 DRMDeviceGroupEvent flash.net.drm 3.0 DRMManagerError flash.errors 1.5 EncryptedLocalStore flash.data 1.0 ExtensionContext flash.external 2.5 File flash.filesystem 1.0 FileListEvent flash.events 1.0 FileMode flash.filesystem 1.0 FileStream flash.filesystem 1.0 FocusDirection flash.display 1.0 GameInput flash.ui 3.0 GameInputControl flash.ui 3.0 GameInputControlType flash.ui 3.6 a starší; vynecháno od verze 3.7 GameInputDevice flash.ui 3.0 GameInputEvent flash.ui 3.0 GameInputFinger flash.ui 3.6 a starší; vynecháno od verze 3.7 GameInputHand flash.ui 3.6 a starší; vynecháno od verze 3.7 Geolocation flash.sensors 2.0 GeolocationEvent flash.events 2.0 HTMLHistoryItem flash.html 1.0 Poslední aktualizace 31.8.2016 9 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Práce s rozhraními API prostředí AIR Třída Balík jazyka ActionScript 3.0 Přidány ve verzi AIR HTMLHost flash.html 1.0 HTMLLoader flash.html 1.0 HTMLPDFCapability flash.html 1.0 HTMLSWFCapabiltiy flash.html 2.0 HTMLUncaughtScriptExceptionEvent flash.events 1.0 HTMLWindowCreateOptions flash.html 1.0 Icon flash.desktop 1.0 IFilePromise flash.desktop 2.0 ImageDecodingPolicy flash.system 2.6 InteractiveIcon flash.desktop 1.0 InterfaceAddress flash.net 2.0 InvokeEvent flash.events 1.0 InvokeEventReason flash.desktop 1.5.1 IPVersion flash.net 2.0 IURIDereferencer flash.security 1.0 LocationChangeEvent flash.events 2.5 MediaEvent flash.events 2.5 MediaPromise flash.media 2.5 MediaType flash.media 2.5 MXRecord flash.net.dns 2.0 NativeApplication flash.desktop 1.0 NativeDragActions flash.desktop 1.0 NativeDragEvent flash.events 1.0 NativeDragManager flash.desktop 1.0 NativeDragOptions flash.desktop 1.0 NativeMenu flash.display 1.0 NativeMenuItem flash.display 1.0 NativeProcess flash.desktop 2.0 NativeProcessExitEvent flash.events 2.0 NativeProcessStartupInfo flash.desktop 2.0 NativeWindow flash.display 1.0 NativeWindowBoundsEvent flash.events 1.0 NativeWindowDisplayState flash.display 1.0 NativeWindowDisplayStateEvent flash.events 1.0 Poslední aktualizace 31.8.2016 10 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Práce s rozhraními API prostředí AIR Třída Balík jazyka ActionScript 3.0 Přidány ve verzi AIR NativeWindowInitOptions flash.display 1.0 NativeWindowRenderMode flash.display 3.0 NativeWindowResize flash.display 1.0 NativeWindowSystemChrome flash.display 1.0 NativeWindowType flash.display 1.0 NetworkInfo flash.net 2.0 NetworkInterface flash.net 2.0 NotificationType flash.desktop 1.0 OutputProgressEvent flash.events 1.0 PaperSize flash.printing 2.0 PrintMethod flash.printing 2.0 PrintUIOptions flash.printing 2.0 PTRRecord flash.net.dns 2.0 ReferencesValidationSetting flash.security 1.0 ResourceRecord flash.net.dns 2.0 RevocationCheckSettings flash.security 1.0 Screen flash.display 1.0 ScreenMouseEvent flash.events 1.0 SecureSocket flash.net 2.0 SecureSocketMonitor air.net 2.0 ServerSocket flash.net 2.0 ServerSocketConnectEvent flash.events 2.0 ServiceMonitor air.net 1.0 SignatureStatus flash.security 1.0 SignerTrustSettings flash.security 1.0 SocketMonitor air.net 1.0 SoftKeyboardType flash.text 3.0 SQLCollationType flash.data 1.0 SQLColumnNameStyle flash.data 1.0 SQLColumnSchema flash.data 1.0 SQLConnection flash.data 1.0 SQLError flash.errors 1.0 SQLErrorEvent flash.events 1.0 SQLErrorOperation flash.errors 1.0 Poslední aktualizace 31.8.2016 11 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Práce s rozhraními API prostředí AIR Třída Balík jazyka ActionScript 3.0 Přidány ve verzi AIR SQLEvent flash.events 1.0 SQLIndexSchema flash.data 1.0 SQLMode flash.data 1.0 SQLResult flash.data 1.0 SQLSchema flash.data 1.0 SQLSchemaResult flash.data 1.0 SQLStatement flash.data 1.0 SQLTableSchema flash.data 1.0 SQLTransactionLockType flash.data 1.0 SQLTriggerSchema flash.data 1.0 SQLUpdateEvent flash.events 1.0 SQLViewSchema flash.data 1.0 SRVRecord flash.net.dns 2.0 StageAspectRatio flash.display 2.0 StageOrientation flash.display 2.0 StageOrientationEvent flash.events 2.0 StageText flash.text 3.0 StageTextInitOptions flash.text 3.0 StageWebView flash.media 2.5 StatusFileUpdateErrorEvent air.update.events 1.5 StatusFileUpdateEvent air.update.events 1.5 StatusUpdateErrorEvent air.update.events 1.5 StatusUpdateEvent air.update.events 1.5 StorageVolume flash.filesystem 2.0 StorageVolumeChangeEvent flash.events 2.0 StorageVolumeInfo flash.filesystem 2.0 SystemIdleMode flash.desktop 2.0 SystemTrayIcon flash.desktop 1.0 TouchEventIntent flash.events 3.0 UpdateEvent air.update.events 1.5 Updater flash.desktop 1.0 URLFilePromise air.desktop 2.0 Poslední aktualizace 31.8.2016 12 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Práce s rozhraními API prostředí AIR Třída Balík jazyka ActionScript 3.0 Přidány ve verzi AIR URLMonitor air.net 1.0 URLRequestDefaults flash.net 1.0 XMLSignatureValidator flash.security 1.0 Třídy aplikace Flash Player s funkcemi specifickými pro prostředí AIR Následující třídy jsou dostupné pro obsah SWF běžící v prohlížeči, ale aplikace AIR poskytuje ještě další vlastnosti nebo metody: Balíček Třída Vlastnost, metoda nebo událost Přidány ve verzi AIR flash.desktop Clipboard supportsFilePromise 2.0 ClipboardFormats BITMAP_FORMAT 1.0 FILE_LIST_FORMAT 1.0 FILE_PROMISE_LIST_FORMAT 2.0 URL_FORMAT 1.0 childSandboxBridge 1.0 parentSandboxBridge 1.0 assignFocus() 1.0 autoOrients 2.0 deviceOrientation 2.0 nativeWindow 1.0 orientation 2.0 událost orientationChange 2.0 událost orientationChanging 2.0 setAspectRatio 2.0 setOrientation 2.0 softKeyboardRect 2.6 supportedOrientations 2.6 supportsOrientationChange 2.0 owner 2.6 listOwnedWindows 2.6 owner 2.6 flash.display LoaderInfo Stage NativeWindow NativeWindowInitOptions Poslední aktualizace 31.8.2016 13 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Práce s rozhraními API prostředí AIR Balíček Třída Vlastnost, metoda nebo událost Přidány ve verzi AIR flash.events Event CLOSING 1.0 DISPLAYING 1.0 PREPARING 2.6 EXITING 1.0 HTML_BOUNDS_CHANGE 1.0 HTML_DOM_INITIALIZE 1.0 HTML_RENDER 1.0 LOCATION_CHANGE 1.0 NETWORK_CHANGE 1.0 STANDARD_ERROR_CLOSE 2.0 STANDARD_INPUT_CLOSE 2.0 STANDARD_OUTPUT_CLOSE 2.0 USER_IDLE 1.0 USER_PRESENT 1.0 HTTP_RESPONSE_STATUS 1.0 responseHeaders 1.0 responseURL 1.0 commandKey 1.0 controlKey 1.0 HTTPStatusEvent KeyboardEvent Poslední aktualizace 31.8.2016 14 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Práce s rozhraními API prostředí AIR Balíček Třída Vlastnost, metoda nebo událost Přidány ve verzi AIR flash.net FileReference extension 1.0 událost httpResponseStatus 1.0 uploadUnencoded() 1.0 událost drmAuthenticate 1.0 událost onDRMContentData 1.5 preloadEmbeddedData( 1.5 resetDRMVouchers() 1.0 setDRMAuthenticationCredent ials() 1.0 authenticate 1.0 cacheResponse 1.0 followRedirects 1.0 idleTimeout 2.0 manageCookies 1.0 useCache 1.0 userAgent 1.0 URLStream httpResponseStatus event 1.0 PrintJob active 2.0 copies 2.0 firstPage 2.0 isColor 2.0 jobName 2.0 lastPage 2.0 maxPixelsPerInch 2.0 paperArea 2.0 printableArea 2.0 printer 2.0 printers 2.0 selectPaperSize() 2.0 showPageSetupDialog() 2.0 start2() 2.0 supportsPageSetupDialog 2.0 terminate() 2.0 pixelsPerInch 2.0 printMethod 2.0 NetStream URLRequest flash.printing PrintJobOptions Poslední aktualizace 31.8.2016 15 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Práce s rozhraními API prostředí AIR Balíček Třída Vlastnost, metoda nebo událost Přidány ve verzi AIR flash.system Capabilities languages 1.1 LoaderContext allowLoadBytesCodeExecution 1.0 Security APPLICATION 1.0 KeyLocation D_PAD 2.5 flash.ui Většina z těchto nových vlastností a metod je dostupných pouze pro obsah v karanténě zabezpečení aplikace AIR. Avšak nové položky v třídě URLRequest jsou dostupné také pro obsah běžící v jiných karanténách. Metody ByteArray.compress() a ByteArray.uncompress() obsahují nový parametr algorithm, který umožňuje volbu mezi komprimačním algoritmem deflate a zlib. Tento parametr je dostupný pouze pro obsah spuštěný v prostředí AIR. Komponenty Flex určené pro prostředí AIR Při vývoji obsahu pro prostředí Adobe AIR jsou k dispozici následující komponenty MX aplikace Adobe® Flex™: • FileEvent • FileSystemComboBox • FileSystemDataGrid • FileSystemEnumerationMode • FileSystemHistoryButton • FileSystemList • FileSystemSizeDisplayMode • FileSystemTree • FlexNativeMenu • HTML • Window • WindowedApplication • WindowedSystemManager Kromě toho zahrnuje aplikace Flex 4 následující komponenty Spark prostředí AIR: • Window • WindowedApplication Další informace týkající se komponent aplikace AIR Flex naleznete v tématu Použití komponent aplikace Flex AIR. Poslední aktualizace 31.8.2016 16 Kapitola 4: Nástroje řešení Adobe Flash Platform pro vývoj aplikací AIR Aplikace AIR lze vyvíjet pomocí následujících vývojových nástrojů řešení Adobe Flash Platform. Pro vývojáře pracující v jazyce ActionScript 3.0 (Flash a Flex): • Adobe Flash Professional (viz Publishing for AIR (Publikování pro prostředí AIR)) • Sady SDK Adobe Flex 3.x a 4.x (další informace v tématech „Nastavení sady Flex SDK“ na stránce 18 a „AIR Developer Tool (ADT)“ na stránce 163) • Adobe Flash Builder (viz Developing AIR Applications with Flash Builder (Vývoj aplikací AIR pomocí aplikace Flash Builder)) Pro vývojáře pracující v jazycích HTML a Ajax: • Sada SDK prostředí Adobe AIR (další informace v tématech „Instalace sady AIR SDK“ na stránce 16 a „AIR Developer Tool (ADT)“ na stránce 163) • Adobe Dreamweaver CS3, CS4, CS5 (viz část Rozšíření aplikace AIR pro program Dreamweaver) Instalace sady AIR SDK Sada SDK prostředí Adobe AIR obsahuje následující nástroje příkazového řádku, které lze použít ke spuštění nebo sbalení aplikací: Program AIR Debug Launcher (ADL) Umožňuje spustit aplikace AIR bez nutnosti jejich předchozí instalace. Viz část „Program AIR Debug Launcher (ADL)“ na stránce 157. AIR Development Tool (ADT) Sbalí aplikaci AIR do distribuovatelných instalačních balíků. Viz část„AIR Developer Tool (ADT)“ na stránce 163. Nástroje příkazového řádku aplikace AIR vyžadují v počítači instalované prostředí Java. Lze použít modul Java Virtual Machine buď z prostředí JRE, nebo JDK (veze 1.5 nebo novější). Prostředí Java JRE a Java JDK jsou k dispozici na stránce http://java.sun.com/. Ke spuštění nástroje ADT jsou třeba alespoň 2 GB paměti počítače. Poznámka: Ke spuštění aplikací AIR není nutné, aby měli koncoví uživatelé nainstalované prostředí Java. Rychlý přehled vytvoření aplikace AIR pomocí sady AIR SDK naleznete v části „Vytvoření první aplikace AIR založené na HTML pomocí sady AIR SDK“ na stránce 32. Stažení a instalace sady AIR SDK Sadu AIR SDK lze stáhnout a instalovat pomocí následujících pokynů: Instalace sady AIR SDK v systému Windows • Stáhněte instalační soubor sady AIR SDK. Poslední aktualizace 31.8.2016 17 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Nástroje řešení Adobe Flash Platform pro vývoj aplikací AIR • Sada AIR SDK je distribuována jako standardní archiv souborů. Chcete-li instalovat prostředí AIR, rozbalte obsah sady SDK do složky v počítači (například: C:\Program Files\Adobe\AIRSDK nebo C:\AIRSDK). • Nástroje ADL a ADT jsou v sadě AIR SDK obsaženy ve složce bin. Přidejte cestu k této složce do proměnné prostředí PATH. Instalace sady AIR SDK v systému Mac OS X • Stáhněte instalační soubor sady AIR SDK. • Sada AIR SDK je distribuována jako standardní archiv souborů. Chcete-li instalovat prostředí AIR, rozbalte obsah sady SDK do složky v počítači (například: /Users/<jménoUživatele>/Applications/AIRSDK). • Nástroje ADL a ADT jsou v sadě AIR SDK obsaženy ve složce bin. Přidejte cestu k této složce do proměnné prostředí PATH. Instalace sady AIR SDK v systému Linux • Sada SDK je k dispozici ve formátu tbz2. • Chcete-li instalovat sadu SDK, vytvořte složku, do níž se má sada SDK rozbalit a potom použijte následující příkaz: tar-jxvf-<cesta k souboru AIR-SDK.tbz2> Informace týkající se použití nástrojů sady AIR SDK naleznete v části Vytvoření aplikace AIR pomocí nástrojů příkazového řádku. Co zahrnuje sada AIR SDK Následující tabulka popisuje účel souborů obsažených v sadě AIR SDK: Složka SDK Popis souborů/nástrojů bin Program AIR Debug Launcher (ADL) umožňuje spustit aplikaci AIR bez předchozího zabalení a instalace. Další informace o použití tohoto nástroje naleznete v části „Program AIR Debug Launcher (ADL)“ na stránce 157. Program AIR Development Tool (ADT) sbalí aplikaci jako soubor AIR k distribuci. Informace o použití tohoto nástroje naleznete v části „AIR Developer Tool (ADT)“ na stránce 163. frameworks Adresář libs obsahuje knihovny kódu k použití v aplikacích AIR. Adresář projects obsahuje kód pro kompilované knihovny SWF a SWC. include Adresář include obsahuje soubor záhlaví v jazyce C pro zápis nativního rozšíření. install Adresář install obsahuje ovladače USB systému Windows pro zařízení Android. (Jedná se o ovladače poskytované společností Google v rámci sady Android SDK). lib Obsahuje podpůrný kód pro sadu AIR SDK. Poslední aktualizace 31.8.2016 18 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Nástroje řešení Adobe Flash Platform pro vývoj aplikací AIR Složka SDK Popis souborů/nástrojů runtimes Běhová prostředí AIR pro stolní počítače a pro mobilní zařízení. Běhové prostředí pro stolní počítače slouží programu ADL ke spuštění aplikací AIR před jejich sbalením či instalací. Běhová prostředí AIR pro Android (balíčky APK) lze nainstalovat do zařízení Android nebo jejich emulátorů pro vývoj a testování. Samostatné balíčky APK slouží pro zařízení a emulátory. (Veřejné běhové prostředí AIR pro zařízení Android je k dispozici na tržišti Android Market.) samples Tato složka obsahuje soubor deskriptoru vzorové aplikace, vzor plynulé instalace (badge.swf) a výchozí ikony aplikace AIR. templates descriptor-template.xml – Šablona souboru deskriptoru aplikace, která je vyžadována pro každou aplikaci AIR. Podrobný popis souboru deskriptoru aplikace naleznete v tématu „Soubory deskriptorů aplikací AIR“ na stránce 202. Dále v této složce naleznete také soubory schémat pro strukturu XML deskriptoru aplikace pro jednotlivé verze prostředí AIR. Nastavení sady Flex SDK Chcete-li vyvíjet aplikace Adobe® AIR® pomocí prostředí Adobe® Flex™, máte následující možnosti: • Můžete stáhnout a nainstalovat prostředí Adobe® Flash® Builder™, které poskytuje integrované nástroje k vytváření projektů Adobe AIR a ke zkoušení, ladění a sbalení aplikací AIR. Další informace naleznete v tématu „Vytvoření první aplikace Flex AIR pro stolní počítač v aplikaci Flash Builder“ na stránce 20. • Můžete stáhnout sadu SDK prostředí Adobe® Flex™ a vyvíjet aplikace Flex AIR pomocí oblíbeného textového editoru a nástrojů příkazové řádky. Rychlý přehled vytvoření aplikace AIR pomocí sady Flex SDK naleznete v části „Vytvoření první aplikace AIR pro stolní počítače pomocí sady Flex SDK“ na stránce 36. Instalace sady Flex SDK Sestavování aplikací AIR pomocí nástrojů příkazového řádku vyžaduje, aby bylo v počítači instalováno prostředí Java. Lze použít modul Java Virtual Machine buď z prostředí JRE, nebo JDK (veze 1.5 nebo novější). Sady Java JRE a JDK jsou k dispozici na adrese http://java.sun.com/. Poznámka: Ke spuštění aplikací AIR není nutné, aby měli koncoví uživatelé nainstalované prostředí Java. Sada Flex SDK poskytuje rozhraní AIR API a nástroje příkazového řádku, které lze použít ke sbalení, kompilaci a ladění aplikací AIR. 1 Pokud jste to ještě neudělali, stáhněte sadu Flex SDK z adresy http://opensource.adobe.com/wiki/display/flexsdk/Downloads. 2 Umístěte obsah SDK do složky (například Flex SDK). 3 Zkopírujte obsah sady AIR SDK k souborům ve složce Flex SDK. Poznámka: Pracujete-li na platformě Mac, ujistěte se, že kopírujete nebo nahrazujete jednotlivé soubory ve složkách SDK – nikoli celé adresáře. Ve výchozím nastavení v systému Mac odstraní zkopírování adresáře do adresáře se stejným názvem existující soubory v cílovém adresáři. Nesloučí tedy obsah obou adresářů. Příkaz ditto můžete použít v okně terminálu ke sloučení sady AIR SDK se sadou Flex SDK:ditto air_sdk_folder flex_sdk_folder 4 Nástroje příkazového řádku AIR se nacházejí ve složce bin. Poslední aktualizace 31.8.2016 19 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Nástroje řešení Adobe Flash Platform pro vývoj aplikací AIR Nastavení externích sad SDK Vývoj aplikací pro platformy Android a iOS vyžaduje stažení souborů pro zprovoznění, sad SDK a dalších vývojářských nástrojů od tvůrců platformy. Informace o stažení a instalaci sady Android SDK naleznete v částiVývojáři pro Android: Instalace sady SDK. Od verze AIR 2.6 není nutné sadu Android SDK stahovat. Sada AIR SDK nově zahrnuje základní součásti potřebné k instalaci a spouštění balíčků APK. Sada Android SDK však může přesto být užitečná u různých vývojářských úloh, včetně vytváření a spouštění softwarových emulátorů a pořizování kopií obrazovek zařízení. K vývoji na platformě iOS není nutná externí sada SDK. Jsou však třeba zvláštní certifikáty a profily pro zprovozňování. Další informace naleznete v tématu Získání vývojářských souborů od společnosti Apple. Poslední aktualizace 31.8.2016 20 Kapitola 5: Vytvoření první aplikace AIR Vytvoření první aplikace Flex AIR pro stolní počítač v aplikaci Flash Builder Toto téma nabízí rychlé a praktické znázornění toho, jakým způsobem pracuje prostředí Adobe ® AIR®. Postupujte podle pokynů a pomocí vývojového nástroje Adobe® Flash® Builder vytvořte a sbalte jednoduchou aplikaci AIR „Hello World“ založenou na souboru SWF. Pokud jste to ještě neudělali, stáhněte si a nainstalujte aplikaci Flash Builder. Rovněž si stáhněte a nainstalujte nejnovější verzi prostředí Adobe AIR, které se nachází zde: www.adobe.com/go/air. Vytvoření projektu v prostředí AIR Aplikace Flash Builder zahrnuje nástroje potřebné k vyvíjení a sbalení aplikací AIR. V prostředí Flash Builder nebo Flex Builder začnete vytvářet aplikace AIR stejným způsobem, jakým vytváříte ostatní projekty aplikace s architekturou Flex: definováním nového projektu. 1 Spusťte aplikaci Flash Builder. 2 Zvolte možnost Soubor > Nový > Projekt Flex. 3 Jako název projektu zadejte AIRHelloWorld. 4 V prostředí Flex jsou aplikace AIR považovány za typ aplikace. Máte dva typy možností: • webová aplikace, která běží v přehrávači Adobe® Flash® Player • aplikace pro stolní počítače, která běží v prostředí Adobe AIR Jako typ aplikace zvolte možnost Pro stolní počítače. 5 Kliknutím na tlačítko Dokončit vytvořte projekt. Projekty AIR zpočátku tvoří dva soubory: hlavní soubor MXML a soubor XML aplikace (označovaný jako soubor deskriptoru aplikace). Druhý soubor určuje vlastnosti aplikace. Další informace naleznete v tématu Vývoj aplikací AIR pomocí nástroje Flex Builder. Zápis kódu aplikace AIR Když chcete zapsat kód aplikace „Hello World“, upravíte soubor MXML aplikace (AIRHelloWorld.mxml), který je otevřený v editoru. (Není-li tento soubor otevřený, otevřete jej pomocí Navigátoru projektů.) Aplikace Flex AIR ve stolním počítači jsou umístěny uvnitř tagu MXML WindowedApplication. Tag MXML WindowedApplication vytvoří jednoduché okno obsahující základní ovládací prvky okna, např. titulní pruh a zavírací tlačítko. 1 Přidejte komponentě WindowedApplication atribut title a přiřaďte mu hodnotu „Hello World": Poslední aktualizace 31.8.2016 21 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" title="Hello World"> </s:WindowedApplication> 2 Přidejte do aplikace komponentu Label (umístěte ji do tagu WindowedApplication). Nastavte vlastnost text komponenty Label na hodnotu „Hello AIR" a nastavte omezení rozvržení tak, aby byla stále uprostřed, jak je znázorněno zde: <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" title="Hello World"> <s:Label text="Hello AIR" horizontalCenter="0" verticalCenter="0"/> </s:WindowedApplication> 3 Hned za počáteční tag WindowedApplication a ještě před tag právě zadané komponenty label přidejte následující blok stylu: <fx:Style> @namespace s "library://ns.adobe.com/flex/spark"; s|WindowedApplication { skinClass:ClassReference("spark.skins.spark.SparkChromeWindowedApplicationSkin"); background-color:#999999; background-alpha:"0.7"; } </fx:Style> Tato nastavení stylu platí pro celou aplikaci a vykreslují pozadí okna mírně průhlednou šedou barvou. Kód aplikace nyní vypadá takto: <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" title="Hello World"> <fx:Style> @namespace s "library://ns.adobe.com/flex/spark"; s|WindowedApplication { skinClass:ClassReference("spark.skins.spark.SparkChromeWindowedApplicationSkin"); background-color:#999999; background-alpha:"0.7"; } </fx:Style> <s:Label text="Hello AIR" horizontalCenter="0" verticalCenter="0"/> </s:WindowedApplication> Poslední aktualizace 31.8.2016 22 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR Nyní změníte některá nastavení v deskriptoru aplikace, aby daná aplikace mohla být průhledná: 1 V okně Navigátor prostředí Flex vyhledejte ve zdrojovém adresáři projektu soubor deskriptoru aplikace. Pokud jste projekt nazvali AIRHelloWorld, má tento soubor název AIRHelloWorld-app.xml. 2 Poklepejte na soubor deskriptoru aplikace, aby jej bylo možné upravovat v prostředí Flash Builder. 3 V kódu XML vyhledejte řádky s komentářem pro vlastnosti systemChrome a transparent (vlastnosti initialWindow). Komentář odstraňte. (Odstraňte oddělovače komentáře „<!--" a „-->".) 4 Nastavte textovou hodnotu vlastnosti systemChrome na možnost none jako v následujícím kódu: <systemChrome>none</systemChrome> 5 Nastavte textovou hodnotu vlastnosti transparent na možnost true jako v následujícím kódu: <transparent>true</transparent> 6 Uložte soubor. Testování aplikace AIR Jestliže chcete otestovat právě vytvořený kód aplikace, spusťte jej v režimu ladění. 1 Klepněte na tlačítko Ladění na hlavním panelu nástrojů aplikace Rovněž můžete zvolit příkaz Spustit > Ladění > AIRHelloWorld. Výsledná aplikace AIR by měla vypadat jako v následujícím příkladu: 2 Pomocí vlastností horizontalCenter a verticalCenter ovládacího prvku Label se text umístí do středu okna. Přesuňte okno nebo změňte jeho velikost jako u jakékoliv jiné počítačové aplikace. Poznámka: Jestliže se aplikace nezkompiluje, opravte chyby v syntaxi nebo hláskování, jež byly neúmyslně zadány do kódu. Chyby a upozornění se v aplikaci Flash Builder zobrazují v náhledu Problémy. Poslední aktualizace 31.8.2016 23 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR Sbalení, podepsání a spuštění aplikace AIR Nyní jste připraveni sbalit aplikaci „Hello World“ do souboru AIR určeného k distribuci. Soubor AIR je archivní soubor obsahující soubory aplikace, což jsou všechny soubory obsažené ve složce bin daného projektu. V tomto jednoduchém příkladu se jedná o soubory SWF a soubory XML aplikace. Balík AIR předáte uživatelům, kteří jej použijí k instalaci aplikace. Povinným krokem v tomto procesu je jeho opatření digitálním podpisem. 1 Ujistěte se, že aplikace neobsahuje žádné chyby kompilace a funguje podle očekávání. 2 Zvolte možnost Projekt > Export sestavení vydání. 3 Zkontrolujte, zda jako projekt a aplikace jsou uvedeny projekt AIRHelloWorld a aplikace AIRHelloWorld.mxml. 4 Vyberte možnost Export as signed AIR package (Exportovat jako podepsaný balíček AIR). Potom klepněte na tlačítko Next (Další). 5 Jestliže máte existující digitální certifikát, pomocí tlačítka Procházet jej vyhledejte a vyberte. 6 Pokud je třeba vytvořit nový digitální certifikát s vlastním podpisem, zvolte možnost Vytvořit. 7 Zadejte požadované informace a klikněte na tlačítko OK. 8 Kliknutím na tlačítko Dokončit vygenerujte balík aplikace AIR, který bude mít název AIRHelloWorld.air. Nyní lze nainstalovat a spustit aplikaci z Navigátoru projektů v aplikaci Flash Builder nebo ze souborového systému poklepáním na soubor AIR. Vytvoření první aplikace AIR pro stolní počítače pomocí aplikace Flash Professional Toto téma nabízí rychlou a praktickou demonstraci toho, jakým způsobem pracuje prostředí Adobe® AIR®. Postupujte podle pokynů a pomocí programu Adobe® Flash® Professional vytvořte a zabalte jednoduchou aplikaci „Hello World“. Pokud jste to ještě neudělali, stáhněte a nainstalujte si prostředí Adobe AIR, které je umístěno zde: www.adobe.com/go/air_cz. Vytvoření aplikace „Hello World“ v programu Flash Vytvoření aplikace Adobe AIR v programu Flash se velice podobá vytvoření jakéhokoli jiného souboru FLA. Následující postup vás provede procesem vytvoření jednoduché aplikace „Hello World“ pomocí programu Flash Professional. Vytvoření aplikace „Hello World“ 1 Spusťte program Flash. 2 Klepněte na úvodní obrazovce na položku AIR, abyste vytvořili prázdný soubor FLA s nastavením publikování prostředí Adobe AIR. 3 Vyberte v panelu Nástroje textový nástroj a vytvořte ve středu vymezené plochy pole statického textu (výchozí volba). Pole musí být dostatečně široké, aby obsáhlo 15–20 znaků. 4 Zadejte do tohoto textového pole text „Hello World“. 5 Uložte soubor a pojmenujte ho (například HelloAIR). Poslední aktualizace 31.8.2016 24 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR Testování aplikace 1 Chcete-li aplikaci otestovat v prostředí Adobe AIR, stiskněte klávesy Ctrl+Enter nebo vyberte příkaz Ovládání- >Testovat film->Testovat. 2 Abyste mohli použít funkci Ladit film, musíte nejdříve do aplikace přidat kód jazyka ActionScript. Toho rychle dosáhnete, když přidáte příkaz trace, jako je například tento: trace("Running AIR application using Debug Movie"); 3 Chcete-li aplikaci spustit s funkcí Ladit film, stiskněte klávesy Ctrl+Shift+Enter nebo vyberte příkaz Ladění->Ladit film->Ladit. Aplikace „Hello World“ vypadá jako v této ukázce: Sbalení aplikace 1 Vyberte příkaz Soubor > Publikovat. 2 Podepište balík Adobe AIR pomocí existujícího digitálního certifikátu nebo podle následujícího postupu vytvořte certifikát podepsaný sebou samým: a Klepněte na tlačítko Nový vedle pole Certifikát. b Vyplňte položky Jméno vydavatele, Útvar organizace, Název organizace, E-mail, Země, Heslo a Potvrzení hesla. c Určete typ certifikátu. Volba Typ certifikátu označuje úroveň zabezpečení: 1024-RSA používá 1024bitový klíč (méně zabezpečený) a 2048-RSA používá 2048bitový klíč (více zabezpečený). d Uložte informaci do souboru certifikátu – vyplňte položku Uložit jako nebo přejděte do umístění složky po klepnutí na tlačítko Procházet. (Například C:/Temp/mujcert.pfx.) Po skončení klikněte na tlačítko OK. e Program Flash vás vrátí do dialogového okna Digitální podpis. V textovém poli Certifikát se objeví cesta a název souboru certifikátu s vlastním podpisem, který jste vytvořili. Pokud k tomu nedojde, zadejte cestu a název souboru nebo je najděte a vyberte po klepnutí na tlačítko Procházet. f Do pole Heslo dialogového okna Digitální podpis zadejte stejné heslo, jež bylo přiřazeno v kroku b. Další informace o podepisování aplikací Adobe AIR naleznete v části „Digitální podepisování souboru AIR“ na stránce 187. Poslední aktualizace 31.8.2016 25 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR 3 Vytvořte soubor aplikace a instalátoru klepnutím na tlačítko Publikovat. (Ve verzích Flash CS4 a CS5 klepněte na tlačítko OK.) Abyste vytvořili soubory SWF a soubory .xml aplikace před vytvořením souboru AIR, musíte spustit příkaz Testovat film nebo Ladit film. 4 Chcete-li aplikaci nainstalovat, poklepejte na soubor AIR (aplikace.air), který je umístěný ve stejné složce, do které jste svou aplikaci uložili. 5 V dialogovém okně Instalace aplikace klepněte na tlačítko Instalovat. 6 Zkontrolujte nastavení instalačních předvoleb a umístění a ujistěte se, zda je zaškrtnuto zaškrtávací políčko Spustit aplikaci po dokončení instalace. Pak klepněte na tlačítko Pokračovat. 7 Až se objeví zpráva o dokončení instalace, klepněte na tlačítko Dokončit. Vytvoření první aplikace AIR pro systém Android pomocí aplikace Flash Professional Chcete-li vyvíjet aplikace AIR pro systém Android, je nutné si stáhnout rozšíření aplikace Flash Professional CS5 pro systém Android z webu Adobe Labs. Také je nutné si z webu pro systém Android stáhnout a nainstalovat sadu Android SDK, jak je popsáno zde: Vývojáři systému Android: Instalace sady SDK. Vytvoření projektu 1 Spusťte aplikaci Flash CS5. 2 Vytvořte nový projekt AIR pro systém Android. Domovská obrazovka aplikace Flash Professional obsahuje odkaz umožňující vytvořit aplikaci AIR pro systém Android. Můžete také vybrat položky Soubor > Nový a poté vybrat šablonu AIR pro systém Android. 3 Uložte dokument jako soubor HelloWorld.fla. Zápis kódu Protože se tato výuková lekce ve skutečnosti nezabývá psaním kódu, napište na plochu pomocí nástroje Text jen „Hello, World!“. Nastavení vlastností aplikace 1 Vyberte položky Soubor > Nastavení aplikace AIR Android. 2 Na záložce Všeobecné proveďte následující nastavení: • Výstupní soubor: HelloWorld.apk • Název aplikace: HelloWorld • ID aplikace: HelloWorld • Číslo verze: 0.0.1 • Poměr stran: Na výšku 3 Na záložce Nasazení proveďte následující nastavení: • Certifikát: Nastavte odkaz na platný certifikát pro podepisování kódu AIR. Klepnutím na tlačítko Vytvořit můžete vytvořit nový certifikát. (Aplikace pro systém Android nasazované prostřednictvím webu Android Marketplace musejí mít certifikát s platností nejméně do roku 2033.) Do pole Heslo zadejte heslo certifikátu. Poslední aktualizace 31.8.2016 26 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR • Typ nasazení zařízení Android: Ladění • Po publikování: Vyberte obě možnosti. • Zadejte cestu k nástroji ADB v podadresáři tools sady Android SDK. 4 Zavřete dialogové okno nastavení Android klepnutím na tlačítko OK. Aplikace v této fázi vývoje nepotřebuje ikony ani oprávnění. Většina aplikací AIR pro systém Android vyžaduje určitá oprávnění pro přístup k chráněným funkcím. Měli byste nastavit pouze ta oprávnění, která daná aplikace skutečně vyžaduje, protože uživatelé mohou aplikaci odmítnout v případě, že vyžaduje příliš mnoho oprávnění. 5 Uložte soubor. Zabalení a instalace aplikace v zařízení Android 1 Ujistěte se, zda je v zařízení povoleno ladění přes port USB. Ladění přes port USB můžete zapnout v aplikaci Settings (Nastavení) v části Applications (Aplikace) > Development (Vývoj). 2 Připojte zařízení k počítači pomocí kabelu USB. 3 Nainstalujte běhový modul AIR, pokud jste tak dosud neučinili, a to tak, že přejdete na web Android Market a stáhnete prostředí Adobe AIR. (Prostředí AIR můžete také nainstalovat místně pomocí „Příkaz installRuntime nástroje ADT“ na stránce 174. Balíčky systému Android pro použití v zařízeních Android a příslušných emulátorech jsou součástí sady AIR SDK.) 4 Vyberte příkaz Soubor > Publikovat. Aplikace Flash Professional vytvoří soubor APK, nainstaluje aplikaci na připojené zařízení Android a spustí ji. Vytvoření první aplikace AIR pro systém iOS Prostředí AIR 2.6 nebo novější, systém iOS 4.2 nebo novější Základní funkce aplikace pro systém iOS můžete kódovat, vytvářet a testovat pouze pomocí nástrojů od společnosti Adobe. Instalace aplikace pro systém iOS v zařízení a její distribuce však vyžaduje, abyste se připojili k programu Apple iOS Developer (což je placená služba). Jakmile se k programu iOS Developer připojíte, získáte přístup k portálu iOS Provisioning Portal, kde můžete od společnosti Apple získat následující položky a soubory, které jsou nutné pro instalaci aplikace v zařízení za účelem testování a pro následnou distribuci. Tyto položky a soubory zahrnují: • vývojářské a distribuční certifikáty, • ID aplikací, • prováděcí soubory pro vývoj a distribuci. Vytvoření obsahu aplikace Vytvořte soubor SWF, který zobrazuje text „Hello world!“. Tento úkol můžete provést pomocí aplikace Flash Professional či Flash Builder nebo jiného prostředí IDE. V tomto příkladu se jednoduše používá textový editor a kompilátor souboru SWF na příkazovém řádku, který je součástí sady Flex SDK. 1 Ve vhodném umístění vytvořte adresář pro ukládání souborů aplikace. Vytvořte soubor s názvem HelloWorld.as a upravte jej v oblíbeném editoru kódu. 2 Přidejte následující kód: Poslední aktualizace 31.8.2016 27 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR package{ import import import import flash.display.Sprite; flash.text.TextField; flash.text.TextFormat; flash.text.TextFieldAutoSize; public class HelloWorld extends Sprite { public function HelloWorld():void { var textField:TextField = new TextField(); textField.text = "Hello World!"; textField.autoSize = TextFieldAutoSize.LEFT; var format:TextFormat = new TextFormat(); format.size = 48; textField.setTextFormat ( format ); this.addChild( textField ); } } } 3 Zkompilujte třídu pomocí kompilátoru amxmlc: amxmlc HelloWorld.as Ve stejné složce se vytvoří soubor SWF HelloWorld.swf. Poznámka: V tomto příkladu se předpokládá, že jste nastavili proměnnou prostředí pro cestu tak, aby zahrnovala adresář obsahující kompilátor amxmlc. Informace o nastavení cesty naleznete v části „Proměnné prostředí pro cestu“ na stránce 301. Alternativou je zadání úplné cesty ke kompilátoru amxmlc a jiným nástrojům příkazového řádku použitým v tomto příkladu. Vytvoření obrazu ikony a úvodní obrazovky pro aplikaci Všechny aplikace pro systém iOS obsahují ikony, které budou zobrazeny na uživatelském rozhraní aplikace iTunes i na obrazovce zařízení. 1 Vytvořte pod složkou projektu složku s názvem icons (Ikony). 2 Ve složce ikon vytvořte tři soubory PNG. Pojmenujte je Icon_29.png, Icon_57.png a Icon_512.png. 3 Tyto soubory PNG upravte a vytvořte pro svou aplikaci příslušné obrazy. Je třeba, aby soubory měly velikost 29 x 29 obr. bodů, 57 x 57 obr. bodů a 512 x 512 obr. bodů. V rámci tohoto testu můžete obrazy jednoduše nahradit plnobarevnými čtverci. Poznámka: Při odeslání aplikace do obchodu App Store společnosti Apple použijete u souboru s 512 obr. body verzi ve formátu JPEG (a nikoli verzi ve formátu PNG). Verze ve formátu PNG slouží k testování vývojových verzí aplikace. Všechny aplikace pro zařízení iPhone při načítání aplikace do zařízení iPhone zobrazují počáteční obraz. Počáteční obraz definujte jako soubor PNG: 1 V hlavní vývojové složce vytvořte soubor PNG s názvem Default.png. (Tento soubor neumísťujte do podsložky ikon. Je nezbytné, abyste jako název souboru použili výraz „Default“, kde „D“ bude velké písmeno.) 2 Rozměry souboru upravte na šířku 320 obr. bodů a výšku 480 obr. bodů. Obsahem může být zatím prostý bílý obdélník. (To změníme později.) Poslední aktualizace 31.8.2016 28 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR Podrobné informace o této grafice naleznete v části „Ikony aplikace“ na stránce 84. Vytvoření souboru deskriptoru aplikace Vytvořte soubor deskriptoru aplikace, která určuje základní vlastnosti aplikace. Tento úkol můžete provést pomocí prostředí IDE, jako je aplikace Flash Builder nebo textový editor. 1 Ve složce projektu, která obsahuje soubor HelloWorld.as, vytvořte soubor XML s názvem HelloWorld-app.xml. Upravte tento soubor ve svém oblíbeném editoru XML. 2 Přidejte následující kód XML: <?xml version="1.0" encoding="utf-8" ?> <application xmlns="http://ns.adobe.com/air/application/2.7" minimumPatchLevel="0"> <id>change_to_your_id</id> <name>Hello World iOS</name> <versionNumber>0.0.1</versionNumber> <filename>HelloWorld</filename> <supportedProfiles>mobileDevice</supportedProfiles> <initialWindow> <content>HelloWorld.swf</content> <title>Hello World!</title> </initialWindow> <icon> <image29x29>icons/AIRApp_29.png</image29x29> <image57x57>icons/AIRApp_57.png</image57x57> <image512x512>icons/AIRApp_512.png</image512x512> </icon> </application> V zájmu zjednodušení se v tomto příkladu nastavuje pouze několik dostupných vlastností. Poznámka: Pokud používáte prostředí AIR 2 nebo starší, je nutné použít element <version> namísto elementu <versionNumber>. 3 Změňte ID aplikace tak, aby odpovídalo ID aplikace určenému na portálu iOS Provisioning Portal. (Nezahrnujte náhodnou část představující zdroj balíku na začátku ID.) 4 Otestujte aplikaci pomocí programu ADL: adl HelloWorld-app.xml -screensize iPhone Program ADL by měl otevřít okno ve stolním počítači, ve kterém se zobrazí text: Hello World!. Pokud jej neotevře, zkontrolujte zdrojový kód a deskriptor aplikace z hlediska možných chyb. Kompilace souboru IPA Nyní můžete pomocí nástroje ADT zkompilovat soubor instalátoru IPA. Musíte mít vývojářský certifikát od společnosti Apple a soukromý klíč ve formátu souboru P12 a prováděcí profil pro vývoj od společnosti Apple. Spusťte nástroj ADT s následujícími možnostmi, přičemž hodnoty keystore, storepass a provisioning-profile nahraďte vlastními: adt -package -target ipa-debug -keystore iosPrivateKey.p12 -storetype pkcs12 -storepass qwerty12 -provisioning-profile ios.mobileprovision HelloWorld.ipa HelloWorld-app.xml HelloWorld.swf icons Default.png Poslední aktualizace 31.8.2016 29 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR (Použijte jediný příkazový řádek; tento příklad je rozdělen na řádky pouze s cílem usnadnit jeho čtení.) Nástroj ADT vygeneruje soubor instalátoru aplikace pro systém iOS, HelloWorld.ipa, v adresáři projektu. Kompilace souboru IPA může několik minut trvat. Instalace aplikace v zařízení Instalace aplikace pro systém iOS pro testování: 1 Otevřete aplikaci iTunes. 2 Pokud jste tak ještě neučinili, přidejte do aplikace iTunes prováděcí soubor pro svou aplikaci. V aplikaci iTunes vyberte položky File (Soubor) > Add to Library (Přidat do knihovny). Poté vyberte soubor prováděcího profilu (bude označen jako typ souboru mobileprovision). K testování aplikace ve vývojářském zařízení zatím používejte vývojový prováděcí profil. Až budete později aplikaci distribuovat do obchodu iTunes Store, použijte distribuční profil. Chcete-li aplikaci distribuovat ad hoc (do více různých zařízení a bez obchodu iTunes Store), použijte ad hoc prováděcí profil. Další informace o prováděcích profilech naleznete v části „Nastavení systému iOS“ na stránce 64. 3 Některé verze aplikace iTunes aplikaci nenahradí, pokud je již nainstalována stejná verze aplikace. V takovém případě svou aplikaci odstraňte ze zařízení i ze seznamu aplikací v aplikaci iTunes. 4 Poklepejte na soubor IPA aplikace. Aplikace by se měla objevit v seznamu aplikací v aplikaci iTunes. 5 Připojte zařízení k portu USB v počítači. 6 V aplikaci iTunes vyhledejte zařízení na záložce Application (Aplikace) a ujistěte se, že je aplikace vybrána v seznamu aplikací určených k instalaci. 7 Vyberte zařízení v levém seznamu aplikace iTunes. Poté klepněte na tlačítko Sync (Synchronizovat). Aplikace Hello World se po dokončení synchronizace objeví v zařízení iPhone. Pokud není nová verze nainstalována, odstraňte ji ze zařízení i ze seznamu aplikací v aplikaci iTunes a následně celý tento postup opakujte. K této situaci může dojít, pokud aktuálně nainstalovaná verze používá stejné ID i verzi aplikace. Úprava grafiky úvodní obrazovky Před zkompilováním aplikace jste vytvořili soubor Default.png. (Další informace naleznete v části „Vytvoření obrazu ikony a úvodní obrazovky pro aplikaci“ na stránce 27. Tento soubor PNG slouží jako počáteční obraz během načítání aplikace. Možná jste si během testování aplikace v zařízení iPhone všimli při spouštění této prázdné obrazovky. Tento obraz doporučujeme změnit tak, aby odpovídal úvodní obrazovce aplikace („Hello World!“).: 1 Spusťte v zařízení aplikaci. Až bude poprvé zobrazen text „Hello World“, stiskněte a podržte tlačítko Domů pod obrazovkou. Stále držte tlačítko Domů a stiskněte v horní části zařízení iPhone tlačítko Napájení/režim spánku. Tímto postupem pořídíte snímek obrazovky a odešlete jej do složky Camera Roll. 2 Obraz převeďte do vývojového počítače. Použijte k tomu převod fotografií z aplikace iPhoto nebo jiné aplikace umožňující převod fotografií. (V systému MacOS můžete také použít aplikaci Image Capture.) Stejně tak můžete fotografii do vývojového počítače odeslat e-mailem: • Otevřete aplikaci Photos (Fotografie). • Otevřete složku Camera Roll. • Otevřete zachycený snímek obrazovky. Poslední aktualizace 31.8.2016 30 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR • Poklepejte na obraz a poté poklepejte v levém dolním rohu na tlačítko (šipku) vpřed. Poté klepněte na tlačítko Email Photo (Odeslat fotografii e-mailem) a odešlete obraz sami sobě. 3 Soubor Default.png (ve vývojové složce) nahraďte verzí obrazu zachycené obrazovky ve formátu PNG. 4 Znovu aplikaci zkompilujte (další informace naleznete v části „Kompilace souboru IPA“ na stránce 28) a aplikaci v zařízení přeinstalujte. Aplikace bude nyní během načítání používat novou úvodní obrazovku. Poznámka: Pro soubor Dafault.png můžete vytvořit libovolnou grafiku se správnými rozměry (320 x 480 obr. bodů). Často je ale nejlepší, pokud obraz v souboru Default.png odpovídá počátečnímu stavu aplikace. Vytvoření první aplikace AIR založené na HTML pomocí programu Dreamweaver Toto téma nabízí rychlé a praktické znázornění toho, jakým způsobem pracuje prostředí Adobe ® AIR®. Postupujte podle pokynů a pomocí rozšíření aplikace Adobe® AIR® pro program Dreamweaver® vytvořte a sbalte jednoduchou aplikaci AIR „Hello World“ založenou na HTML. Pokud jste to ještě neudělali, stáhněte a nainstalujte si prostředí Adobe AIR, které je umístěno zde: www.adobe.com/go/air_cz. Pokyny k instalaci rozšíření aplikace Adobe AIR pro program Dreamweaver naleznete v části Instalace rozšíření aplikace AIR pro program Dreamweaver. Přehled rozšíření, včetně systémových požadavků, naleznete v části Rozšíření aplikace AIR pro program Dreamweaver. Poznámka: Aplikace AIR založené na jazyce HTML lze vyvíjet pouze pro profily desktop a extendedDesktop. Mobilní profil není podporovaný. Příprava souborů aplikace Aplikace Adobe AIR musí mít na webovém místě programu Dreamweaver definovanou úvodní stránku i všechny ostatní stránky: 1 Spusťte program Dreamweaver a ujistěte se, že máte definované webové místo. 2 Otevřete novou stránku HTML: zvolte možnost Soubor > Nový, ve sloupci Typ stránky vyberte možnost HTML, ve sloupci Rozvržení zvolte možnost Žádný a klikněte na tlačítko Vytvořit. 3 Na novou stránku zadejte Hello World! Tento příklad je extrémně jednoduchý, ale pokud chcete změnit styl textu podle vlastního přání, přidejte na stránku další obsah, propojte s touto úvodní stránkou další stránky atd. 4 Uložte soubor (Soubor > Uložit) jako hello_world.html. Ujistěte se, že je soubor uložen na webovém místě programu Dreamweaver. Další informace o webových místech programu Dreamweaver naleznete v Nápovědě programu Dreamweaver. Vytvoření aplikace Adobe AIR 1 Ujistěte se, že je v okně Dokument programu Dreamweaver otevřena stránka hello_world.html. (Pokyny k jeho vytvoření naleznete v předchozí části.) Poslední aktualizace 31.8.2016 31 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR 2 Zvolte možnost Webové místo > Nastavení aplikace AIR. Většina požadovaných nastavení v aplikaci AIR a v dialogovém okně Nastavení se doplní automaticky. Nicméně je třeba vybrat počáteční obsah (neboli úvodní stránku) aplikace. 3 Kliknutím na tlačítko Procházet umístěné u volby Počáteční obsah přejděte na stránku hello_world.html a vyberte ji. 4 Vedle volby Digitální podpis klikněte na tlačítko Nastavit. Digitální podpis poskytuje záruku, že kód aplikace nebyl od vytvoření autorem softwaru změněn ani poškozen, a je vyžadován u všech aplikací Adobe AIR. 5 V dialogovém okně Digitální podpis zvolte možnost Podepsat balík AIR pomocí digitálního certifikátu a klikněte na tlačítko Vytvořit. (Pokud již máte přístup k digitálnímu certifikátu, můžete jej vybrat pomocí tlačítka Procházet.) 6 Doplňte vyžadovaná pole v dialogovém okně Digitální certifikát s vlastním podpisem. Musíte zadat své jméno, zadat heslo a potvrdit je a zadat název souboru digitálního certifikátu. Program Dreamweaver uloží digitální certifikát do kořene webového místa. 7 Klepnutím na tlačítko OK přejděte zpět do dialogového okna Digitální podpis. 8 V dialogovém okně Digitální podpis zadejte heslo, které jste přiřadili digitálnímu podpisu a klikněte na tlačítko OK. Doplněné dialogové okno Nastavení aplikace AIR a instalátoru může vypadat například takto: Poslední aktualizace 31.8.2016 32 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR Další vysvětlení všech možností dialogových oken a způsobů jejich úprav naleznete v části Vytvoření aplikace AIR v programu Dreamweaver. 9 Klikněte na tlačítko Vytvořit soubor AIR. Program Dreamweaver vytvoří soubor aplikace Adobe AIR a uloží jej do kořenové složky daného webového místa. Kromě toho program Dreamweaver vytvoří soubor application.xml a uloží jej na stejné místo. Tento soubor slouží jako manifest definující různé vlastnosti aplikace. Instalace aplikace ve stolním počítači Když je nyní vytvořen soubor aplikace, lze jej instalovat v libovolném stolním počítači. 1 Přesuňte soubor aplikace Adobe AIR z webového místa programu Dreamweaver do vlastního či jiného počítače. Tento krok je volitelný. Ve skutečnosti je možné novou aplikaci instalovat v počítači přímo z adresáře webového místa programu Dreamweaver. 2 Dvakrát klikněte na proveditelný soubor aplikace (soubor .air) a nainstalujte aplikaci. Náhled aplikace Adobe AIR Stránky, jež budou součástí aplikací AIR, lze kdykoliv zobrazit v náhledu. To znamená, že není nutné aplikaci sbalit, aby bylo možné zkontrolovat, jak bude vypadat po instalaci. 1 Ujistěte se, že je v okně Dokument programu Dreamweaver otevřena stránka hello_world.html. 2 Na panelu nástrojů Dokument klikněte na tlačítko Náhled/Ladění v prohlížeči a zvolte možnost Náhled v aplikaci AIR. Rovněž lze stisknout klávesy Ctrl+Shift+F12 (Windows) nebo Cmd+Shift+F12 (Macintosh). V náhledu této stránky v podstatě vidíte to, co uvidí uživatel jako úvodní stránku aplikace po nainstalování aplikace ve stolním počítači. Vytvoření první aplikace AIR založené na HTML pomocí sady AIR SDK Toto téma nabízí rychlé a praktické znázornění toho, jakým způsobem pracuje prostředí Adobe ® AIR®. Postupujte podle pokynů a vytvořte a sbalte jednoduchou aplikaci AIR „Hello World“ založenou na HTML. Nejprve je nutné mít nainstalovaný běhový modul a nastavenou sadu AIR SDK. V této výukové lekci použijete programy AIR Debug Launcher (ADL) a AIR Developer Tool (ADT). ADL a ADT jsou pomocné programy příkazového řádku, které naleznete v adresáři bin sady AIR SDK (další informace v tématu „Instalace sady AIR SDK“ na stránce 16). Tato výuková lekce předpokládá, že jste již obeznámeni se spouštěním programů z příkazového řádku a víte, jak se nastavují nezbytné proměnné prostředí cest pro daný operační systém. Poznámka: Jste-li uživatelem programu Adobe® Dreamweaver®, přečtěte si část „Vytvoření první aplikace AIR založené na HTML pomocí programu Dreamweaver“ na stránce 30. Poznámka: Aplikace AIR založené na jazyce HTML lze vyvíjet pouze pro profily desktop a extendedDesktop. Mobilní profil není podporovaný. Poslední aktualizace 31.8.2016 33 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR Vytvoření souborů projektu Každý projekt AIR založený na HTML musí zahrnovat následující dva soubory: soubor deskriptoru aplikace, který určuje metadata aplikace, a stránku HTML nejvyšší úrovně. Kromě těchto vyžadovaných souborů zahrnuje tento projekt také soubor s kódem JavaScript AIRAliases.js, který definuje vhodné proměnné zástupců pro třídy rozhraní API aplikace AIR. 1 Vytvořte adresář s názvem HelloWorld, v němž budou uloženy soubory projektu. 2 Vytvořte soubor XML s názvem HelloWorld-app.xml. 3 Vytvořte soubor HTML s názvem HelloWorld.html. 4 Zkopírujte soubor AIRAliases.js ze složky rámců sady AIR SDK do adresáře projektu. Vytvoření souboru deskriptoru aplikace AIR Aby bylo možné zahájit vytváření aplikace AIR, vytvořte soubor XML deskriptoru aplikace s následující strukturou: <application xmlns="..."> <id>…</id> <versionNumber>…</versionNumber> <filename>…</filename> <initialWindow> <content>…</content> <visible>…</visible> <width>…</width> <height>…</height> </initialWindow> </application> 1 Otevřete soubor HelloWorld-app.xml k provádění úprav. 2 Přidejte kořenový element <application> včetně atributu jmenného prostoru aplikace AIR: <application xmlns="http://ns.adobe.com/air/application/2.7"> Poslední segment jmenného prostoru „2.7“ určuje verzi běhového modulu vyžadovaného aplikací. 3 Přidejte element <id>: <id>examples.html.HelloWorld</id> ID aplikace jednoznačně označuje aplikaci spolu s ID vydavatele (které aplikace AIR získá z certifikátu použitého k podepsání balíku aplikace). ID aplikace slouží k instalaci, přístupu k adresáři úložiště systému souborů soukromé aplikace, přístupu k soukromému šifrovanému úložišti a komunikaci mezi aplikacemi. 4 Přidejte element <versionNumber>: <versionNumber>0.1</versionNumber> Pomáhá uživatelům určit, jakou verzi aplikace instalují. Poznámka: Pokud používáte prostředí AIR 2 nebo starší, je nutné použít element <version> namísto elementu <versionNumber>. 5 Přidejte element <filename>: <filename>HelloWorld</filename> Název použitý pro spustitelný soubor aplikace, instalační adresář a další odkazy na aplikaci v operačním systému. 6 Přidejte element <initialWindow> obsahující následující podřízené elementy, jež určí vlastnosti úvodního okna aplikace: <content>HelloWorld.html</content> Určuje kořenový soubor HTML, který má aplikace AIR načíst. Poslední aktualizace 31.8.2016 34 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR <visible>true</visible> Ihned okno zviditelní. <width>400</width> Nastavuje šířku okna (v obrazových bodech). <height>200</height> Nastavuje výšku okna. 7 Uložte soubor. Dokončený soubor deskriptoru aplikace by měl vypadat následovně: <?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://ns.adobe.com/air/application/2.7"> <id>examples.html.HelloWorld</id> <versionNumber>0.1</versionNumber> <filename>HelloWorld</filename> <initialWindow> <content>HelloWorld.html</content> <visible>true</visible> <width>400</width> <height>200</height> </initialWindow> </application> V tomto příkladu se nastaví jen několik možných vlastností aplikace. Kompletní sadu vlastností aplikace, pomocí nichž lze určit například systémové prvky okna, velikost okna, průhlednost, výchozí instalační adresář, přiřazené typy souborů a ikony aplikace, naleznete v části „Soubory deskriptorů aplikací AIR“ na stránce 202. Vytvoření stránky HTML aplikace Je třeba vytvořit jednoduchou stránku HTML, která bude sloužit jako hlavní soubor pro aplikaci AIR. 1 Otevřete soubor HelloWorld.html k provádění úprav. Přidejte následující kód HTML: <html> <head> <title>Hello World</title> </head> <body onLoad="appLoad()"> <h1>Hello World</h1> </body> </html> 2 Do části <head> kódu HTML importujte soubor AIRAliases.js: <script src="AIRAliases.js" type="text/javascript"></script> Aplikace AIR definuje u objektu okna HTML vlastnost s názvem runtime. Vlastnost runtime poskytuje přístup k vestavěným třídám AIR pomocí úplného názvu balíku třídy. Pokud byste například chtěli vytvořit objekt AIR File, mohli byste přidat následující příkaz v jazyce JavaScript: var textFile = new runtime.flash.filesystem.File("app:/textfile.txt"); Soubor AIRAliases.js definuje vhodné zástupce pro nejužitečnější rozhraní API aplikace AIR. Pomocí souboru AIRAliases.js lze zkrátit odkaz na třídu File následovně: var textFile = new air.File("app:/textfile.txt"); 3 Pod tag scriptu AIRAliases přidejte další tag scriptu obsahující funkci JavaScript pro zpracování události onLoad: Poslední aktualizace 31.8.2016 35 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR <script type="text/javascript"> function appLoad(){ air.trace("Hello World"); } </script> Funkce appLoad() jednoduše zavolá funkci air.trace(). Zpráva trace se tiskne do příkazové konzoly při spuštění aplikace pomocí programu ADL. Příkazy trace mohou být velmi užitečné při ladění. 4 Uložte soubor. Soubor HelloWorld.html by teď měl vypadat následovně: <html> <head> <title>Hello World</title> <script type="text/javascript" src="AIRAliases.js"></script> <script type="text/javascript"> function appLoad(){ air.trace("Hello World"); } </script> </head> <body onLoad="appLoad()"> <h1>Hello World</h1> </body> </html> Testování aplikace Chcete-li aplikaci spustit a otestovat z příkazového řádku, použijte pomocný program ADL (AIR Debug Launcher). Proveditelný soubor programu ADL naleznete v adresáři bin sady AIR SDK. Pokud jste ještě nenainstalovali sadu AIR SDK, podívejte se na téma „Instalace sady AIR SDK“ na stránce 16. 1 Otevřete příkazovou konzolu nebo interpreta shell. Přejděte do adresáře, který jste vytvořili pro tento projekt. 2 Spusťte následující příkaz. adl HelloWorld-app.xml Otevře se okno aplikace AIR, v němž bude zobrazena nová aplikace. V okně konzoly se rovněž zobrazí výsledná zpráva volání funkce air.trace(). Další informace naleznete v části „Soubory deskriptorů aplikací AIR“ na stránce 202. Vytvoření instalačního souboru aplikace AIR Po úspěšném spuštění aplikace můžete pomocí pomocného programu ADL aplikaci sbalit do instalačního souboru AIR. Instalační soubor AIR je archivní soubor obsahující všechny soubory aplikace, který lze předat uživatelům. Před instalací sbaleného souboru AIR je nutné instalovat aplikaci Adobe AIR. Aby byla zajištěna bezpečnost aplikace, musí být všechny instalační soubory AIR opatřeny digitálním podpisem. Pro účely vývoje aplikace lze pomocí programu ADT či jiného nástroje pro generování certifikátů vygenerovat základní certifikát s vlastním podpisem. Rovněž je možné zakoupit komerční certifikát pro podpis kódu od komerční certifikační autority, např. VeriSign nebo Thawte. Když uživatel instaluje soubor AIR s vlastním podpisem, zobrazuje se vydavatel během procesu instalace jako „neznámý“. Je tomu tak proto, že certifikát s vlastním podpisem zaručuje Poslední aktualizace 31.8.2016 36 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR pouze to, že soubor AIR nebyl od svého vytvoření změněn. Proti tomu, aby někdo připojil vlastní podpis k fingovanému souboru AIR a vydával jej za vaši aplikaci, neexistuje žádná obrana. Pro veřejně vydávané soubory AIR se rozhodně doporučuje použít ověřitelný komerční certifikát. Přehled otázek týkajících se zabezpečení aplikace AIR naleznete v tématu Zabezpečení aplikace AIR (pro vývojáře používající jazyk ActionScript) nebo Zabezpečení aplikace AIR (pro vývojáře používající jazyk HTML). Generování certifikátu s vlastním podpisem a klíče ❖ Z příkazového řádku zadejte následující příkaz (proveditelný soubor programu ADT je umístěn v adresáři bin sady AIR SDK): adt -certificate -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword Program ADT vygeneruje soubor keystore s názvem sampleCert.pfx, který obsahuje certifikát a odpovídající soukromý klíč. V tomto příkladu se použije minimální počet atributů, které lze nastavit pro certifikát. Typ klíče musí být buď 1024RSA nebo 2048-RSA (viz „Podepisování aplikací AIR“ na stránce 187). Vytvoření instalačního souboru aplikace AIR ❖ Z příkazového řádku zadejte následující příkaz (na jediném řádku): adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air HelloWorld-app.xml HelloWorld.html AIRAliases.js Budete vyzváni k zadání hesla souboru keystore. Argument HelloWorld.air je soubor AIR vytvořený programem ADT. HelloWorld-app.xml je soubor deskriptoru aplikace. Následné argumenty jsou soubory používané aplikací. V tomto příkladu jsou použity pouze dva soubory, ale lze zahrnout libovolný počet souborů a adresářů. Nástroj ADT ověří, zda je hlavní soubor obsahu, HelloWorld.html, součástí balíčku, ale pokud jste zapomněli zahrnout soubor AIRAliases.js, pak aplikace jednoduše nebude fungovat. Po vytvoření balíku AIR je možné instalovat a spustit aplikaci dvojitým kliknutím na soubor balíku. Název souboru AIR lze rovněž zadat jako příkaz do interpreta shell nebo do příkazového okna. Další postup V aplikaci AIR se kód HTML a JavaScript obvykle chová stejně jako v běžném webovém prohlížeči. (Aplikace AIR ve skutečnosti používá stejný vykreslovací modul WebKit jako webový prohlížeč Safari.) Nicméně zde existuje několik důležitých rozdílů, které je při vývoji aplikací HTML v prostředí AIR nutné znát. Více informací o těchto rozdílech a další důležitá témata naleznete v článku Programování v jazyce HTML a JavaScript. Vytvoření první aplikace AIR pro stolní počítače pomocí sady Flex SDK Pro rychlé a praktické znázornění práce prostředí Adobe® AIR® použijte tyto pokyny k vytvoření jednoduché aplikace AIR „Hello World“ založené na formátu SWF pomocí sady Flex SDK. V této výukové lekci se dozvíte, jak zkompilovat, otestovat a zabalit aplikaci AIR pomocí nástrojů příkazového řádku, které jsou k dispozici v sadě Flex SDK (sada Flex SDK obsahuje sadu AIR SDK). Poslední aktualizace 31.8.2016 37 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR Nejprve je nutné nainstalovat běhový modul a nastavit aplikaci Adobe® Flex™. V této výukové lekci se používá kompilátor AMXMLC, aplikace AIR Debug Launcher (ADL) a nástrojAIR Developer Tool (ADT). Tyto programy naleznete v adresáři bin sady Flex SDK ( viz „Nastavení sady Flex SDK“ na stránce 18). Vytvoření souboru deskriptoru aplikace AIR V této části je popsán postup vytvoření deskriptoru aplikace, což je soubor XML s touto strukturou: <application xmlns="..."> <id>...</id> <versionNumber>...</versionNumber> <filename>…</filename> <initialWindow> <content>…</content> <visible>…</visible> <width>…</width> <height>…</height> </initialWindow> </application> 1 Vytvořte soubor XML s názvem HelloWorld-app.xml a uložte jej do adresáře projektu. 2 Přidejte element <application> včetně atributu jmenného prostoru aplikace AIR: <application xmlns="http://ns.adobe.com/air/application/2.7"> Poslední segment jmenného prostoru „2.7“ určuje verzi běhového modulu vyžadovaného aplikací. 3 Přidejte element <id>: <id>samples.flex.HelloWorld</id> ID aplikace jednoznačně určuje aplikaci spolu s ID vydavatele (které aplikace AIR získá z certifikátu použitého k podepsání balíku aplikace). Doporučovaný tvar je řetězec s hodnotami oddělenými tečkou v obráceném stylu DNS, například "com.company.AppName". ID aplikace slouží k instalaci, přístupu k adresáři úložiště systému souborů soukromé aplikace, přístupu k soukromému šifrovanému úložišti a komunikaci mezi aplikacemi. 4 Přidejte element <versionNumber>: <versionNumber>1.0</versionNumber> Pomáhá uživatelům určit, jakou verzi aplikace instalují. Poznámka: Pokud používáte prostředí AIR 2 nebo starší, je nutné použít element <version> namísto elementu <versionNumber>. 5 Přidejte element <filename>: <filename>HelloWorld</filename> Název použitý pro spustitelný soubor aplikace, instalační adresář a obdobný pro odkazy v operačním systému. 6 Přidejte element <initialWindow> obsahující následující podřízené elementy, jež určí vlastnosti úvodního okna aplikace: <content>HelloWorld.swf</content> Určuje kořenový soubor SWF, který má prostředí AIR načíst. <visible>true</visible> Ihned okno zviditelní. <width>400</width> Nastavuje šířku okna (v obrazových bodech). <height>200</height> Nastavuje výšku okna. 7 Uložte soubor. Úplný soubor deskriptoru aplikace by měl vypadat takto: Poslední aktualizace 31.8.2016 38 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR <?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://ns.adobe.com/air/application/2.7"> <id>samples.flex.HelloWorld</id> <versionNumber>0.1</versionNumber> <filename>HelloWorld</filename> <initialWindow> <content>HelloWorld.swf</content> <visible>true</visible> <width>400</width> <height>200</height> </initialWindow> </application> V tomto příkladu se nastaví jen několik možných vlastností aplikace. Kompletní sadu vlastností aplikace, pomocí nichž lze určit například systémové prvky okna, velikost okna, průhlednost, výchozí instalační adresář, přiřazené typy souborů a ikony aplikace, naleznete v části „Soubory deskriptorů aplikací AIR“ na stránce 202. Zápis kódu aplikace Poznámka: Aplikace AIR založené na formátu SWF mohou využívat hlavní třídu definovanou pomocí jazyka MXML nebo Adobe® ActionScript® 3.0. V tomto příkladu je k určení hlavní třídy použit soubor MXML. Proces vytváření aplikace AIR s hlavní třídou jazyka ActionScript je podobný. Namísto kompilace souboru MXML do souboru SWF zkompilujete soubor třídy jazyka ActionScript. Používáte-li jazyk ActionScript, hlavní třída musí rozšiřovat třídu flash.display.Sprite. Podobně jako všechny aplikace vytvořené v prostředí Flex, aplikace AIR sestavené v prostředí Flex obsahují hlavní soubor MXML. Aplikace AIR pro stolní počítače využívají jako kořenový element komponentu WindowedApplication a nikoli komponentu Application. Komponenta WindowedApplication poskytuje vlastnosti, metody a události pro řízení aplikace a jejího úvodního okna. V platformách a profilech, pro něž prostředí AIR nepodporuje více oken, používejte nadále komponentu Application. V mobilních aplikacích Flex můžete používat také komponentu View nebo TabbedViewNavigatorApplication. Následující procedura vytvoří aplikaci Hello World: 1 Pomocí textového editoru vytvořte soubor s názvem HelloWorld.mxml a přidejte tento kód MXML: <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" title="Hello World"> </s:WindowedApplication> 2 Pak přidejte do aplikace komponentu Label (umístěte ji dovnitř tagu WindowedApplication). 3 Vlastnost text komponenty Label nastavte na řetězec "Hello AIR". 4 Omezení rozvržení nastavte tak, aby bylo stále zachováno vystředění. Následující příklad zobrazuje dosavadní kód: <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" title="Hello World"> <s:Label text="Hello AIR" horizontalCenter="0" verticalCenter="0"/> </s:WindowedApplication> Poslední aktualizace 31.8.2016 39 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR Kompilace aplikace Než budete moci aplikaci spustit a ladit, zkompilujte kód MXML pomocí kompilátoru amxmlc do souboru SWF. Kompilátor amxmlc naleznete v adresáři bin sady Flex SDK. Podle potřeby můžete nastavit prostředí cesty počítače tak, aby zahrnovalo adresář bin sady Flex SDK. Nastavení cesty usnadňuje spuštění utilit na příkazovém řádku. 1 Spusťte příkazové prostředí nebo terminál a přejděte do složky projektu aplikace AIR. 2 Zadejte následující příkaz: amxmlc HelloWorld.mxml Spuštěním kompilátoru amxmlc vytvoříte soubor HelloWorld.swf, který obsahuje zkompilovaný kód aplikace. Poznámka: Pokud se aplikace nezkompiluje, opravte syntaktické nebo pravopisné chyby. Chyby a upozornění se zobrazí v okně konzoly, které slouží ke spouštění kompilátoru amxmlc. Další informace naleznete v tématu „Kompilace zdrojových souborů MXML a ActionScript pro aplikaci AIR“ na stránce 153. Testování aplikace Chcete-li spouštět a testovat aplikaci pomocí příkazového řádku, použijte program AIR Debug Launcher (ADL) ke spuštění aplikace s použitím jejího souboru deskriptoru aplikace. (Program ADL naleznete v adresáři bin sady Flex SDK.) ❖ Pomocí příkazového řádku zadejte tento příkaz: adl HelloWorld-app.xml Výsledná aplikace AIR vypadá podobně jako na tomto obrázku: Pomocí vlastností horizontalCenter a verticalCenter ovládacího prvku Label se text umístí do středu okna. Přesuňte okno nebo změňte jeho velikost jako u jakékoliv jiné počítačové aplikace. Další informace naleznete v části „Program AIR Debug Launcher (ADL)“ na stránce 157. Vytvoření instalačního souboru aplikace AIR Po úspěšném spuštění aplikace můžete pomocí pomocného programu ADL aplikaci sbalit do instalačního souboru AIR. Instalační soubor AIR je archivní soubor obsahující všechny soubory aplikace, který lze předat uživatelům. Před instalací sbaleného souboru AIR je nutné instalovat aplikaci Adobe AIR. Aby byla zajištěna bezpečnost aplikace, musí být všechny instalační soubory AIR opatřeny digitálním podpisem. Pro účely vývoje aplikace lze pomocí programu ADT či jiného nástroje pro generování certifikátů vygenerovat základní certifikát s vlastním podpisem. Můžete také zakoupit komerční certifikát pro podpis kódu od komerční certifikační autority. Když uživatel instaluje soubor AIR s vlastním podpisem, zobrazuje se vydavatel během procesu instalace jako „neznámý“. Je tomu tak proto, že certifikát s vlastním podpisem zaručuje pouze to, že soubor AIR nebyl od svého Poslední aktualizace 31.8.2016 40 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR vytvoření změněn. Proti tomu, aby někdo připojil vlastní podpis k fingovanému souboru AIR a vydával jej za vaši aplikaci, neexistuje žádná obrana. Pro veřejně vydávané soubory AIR se rozhodně doporučuje použít ověřitelný komerční certifikát. Přehled otázek týkajících se zabezpečení aplikace AIR naleznete v tématu Zabezpečení aplikace AIR (pro vývojáře používající jazyk ActionScript) nebo Zabezpečení aplikace AIR (pro vývojáře používající jazyk HTML). Generování certifikátu s vlastním podpisem a klíče ❖ Z příkazového řádku zadejte následující příkaz (spustitelný soubor programu ADT je umístěn v adresáři bin sady Flex SDK): adt -certificate -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword V tomto příkladu se použije minimální počet atributů, které lze nastavit pro certifikát. Typ klíče musí být buď 1024RSA nebo 2048-RSA (viz „Podepisování aplikací AIR“ na stránce 187). Vytvoření balíčku AIR ❖ Z příkazového řádku zadejte následující příkaz (na jediném řádku): adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air HelloWorld-app.xml HelloWorld.swf Budete vyzváni k zadání hesla souboru keystore. Zadejte heslo a stiskněte klávesu Enter. Znaky hesla nebudou z bezpečnostních důvodů zobrazeny. Argument HelloWorld.air je soubor AIR vytvořený programem ADT. HelloWorld-app.xml je soubor deskriptoru aplikace. Následné argumenty jsou soubory používané aplikací. V tomto příkladu jsou použity pouze tři soubory, ale lze zahrnout libovolný počet souborů a adresářů. Po vytvoření balíku AIR je možné instalovat a spustit aplikaci dvojitým kliknutím na soubor balíku. Název souboru AIR lze rovněž zadat jako příkaz do interpreta shell nebo do příkazového okna. Další informace naleznete v tématu „Balení instalačního souboru aplikace AIR pro stolní počítač“ na stránce 52. Vytvoření první aplikace AIR pro systém Android pomocí sady Flex SDK Nejprve musíte mít nainstalovány a nastaveny sady AIR SDK a Flex SDK. V této výukové lekci se používá kompilátor AMXMLC ze sady Flex SDK a nástroje AIR Debug Launcher (ADL) a AIR Developer Tool (ADT) ze sady AIR SDK. Viz „Nastavení sady Flex SDK“ na stránce 18. Také je nutné si z webu pro systém Android stáhnout a nainstalovat sadu Android SDK, jak je popsáno zde: Vývojáři systému Android: Instalace sady SDK. Poznámka: Informace o vývoji pro zařízení iPhone naleznete v tématu Creating a Hello World iPhone application with Flash Professional CS5 (Vytvoření aplikace Hello World pro zařízení pomocí aplikace iPhone Flash Professional CS5). Vytvoření souboru deskriptoru aplikace AIR V této části je popsán postup vytvoření deskriptoru aplikace, což je soubor XML s touto strukturou: Poslední aktualizace 31.8.2016 41 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR <application xmlns="..."> <id>...</id> <versionNumber>...</versionNumber> <filename>…</filename> <initialWindow> <content>…</content> </initialWindow> <supportedProfiles>...</supportedProfiles> </application> 1 Vytvořte soubor XML s názvem HelloWorld-app.xml a uložte jej do adresáře projektu. 2 Přidejte element <application> včetně atributu jmenného prostoru aplikace AIR: <application xmlns="http://ns.adobe.com/air/application/2.7"> Poslední segment jmenného prostoru „2.7“ určuje verzi běhového modulu vyžadovaného aplikací. 3 Přidejte element <id>: <id>samples.android.HelloWorld</id> ID aplikace jednoznačně označuje aplikaci spolu s ID vydavatele (které aplikace AIR získá z certifikátu použitého k podepsání balíku aplikace). Doporučovaný tvar je řetězec s hodnotami oddělenými tečkou v obráceném stylu DNS, například "com.company.AppName". 4 Přidejte element <versionNumber>: <versionNumber>0.0.1</versionNumber> Pomáhá uživatelům určit, jakou verzi aplikace instalují. 5 Přidejte element <filename>: <filename>HelloWorld</filename> Název použitý pro spustitelný soubor aplikace, instalační adresář a obdobný pro odkazy v operačním systému. 6 Přidejte element <initialWindow> obsahující následující podřízené elementy, jež určí vlastnosti úvodního okna aplikace: <content>HelloWorld.swf</content> Určuje kořenový soubor HTML, který má prostředí AIR načíst. 7 Přidejte element <supportedProfiles>: <supportedProfiles>mobileDevice</supportedProfiles> Určuje, že se aplikace spustí pouze v mobilním profilu. 8 Uložte soubor. Úplný soubor deskriptoru aplikace by měl vypadat takto: <?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://ns.adobe.com/air/application/2.7"> <id>samples.android.HelloWorld</id> <versionNumber>0.0.1</versionNumber> <filename>HelloWorld</filename> <initialWindow> <content>HelloWorld.swf</content> </initialWindow> <supportedProfiles>mobileDevice</supportedProfiles> </application> V tomto příkladu se nastaví jen několik možných vlastností aplikace. K dispozici jsou další nastavení, která můžete v souboru deskriptoru aplikace použít. Například můžete přidat položku <fullScreen>true</fullScreen> do elementu initialWindow, čímž vytvoříte celoobrazovkovou aplikaci. Chcete-li povolit vzdálené ladění a funkce s řízeným přístupem v systému Android, bude rovněž nutné do deskriptoru aplikace přidat oprávnění systému Android. Pro tuto jednoduchou aplikaci nejsou oprávnění potřebná, takže není nutné je nyní přidávat. Další informace naleznete v tématu „Nastavení vlastností mobilní aplikace“ na stránce 69. Poslední aktualizace 31.8.2016 42 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR Zápis kódu aplikace Vytvořte soubor s názvem HelloWorld.as a pomocí textového editoru přidejte následující kód: package { import flash.display.Sprite; import flash.text.TextField; public class HelloWorld extends Sprite { public function HelloWorld() { var textField:TextField = new TextField(); textField.text = "Hello, World!"; stage.addChild( textField ); } } } Kompilace aplikace Než budete moci aplikaci spustit a ladit, zkompilujte kód MXML pomocí kompilátoru amxmlc do souboru SWF. Kompilátor amxmlc naleznete v adresáři bin sady Flex SDK. Podle potřeby můžete nastavit prostředí cesty počítače tak, aby zahrnovalo adresář bin sady Flex SDK. Nastavení cesty usnadňuje spuštění utilit na příkazovém řádku. 1 Spusťte příkazové prostředí nebo terminál a přejděte do složky projektu aplikace AIR. 2 Zadejte následující příkaz: amxmlc HelloWorld.as Spuštěním kompilátoru amxmlc vytvoříte soubor HelloWorld.swf, který obsahuje zkompilovaný kód aplikace. Poznámka: Pokud se aplikace nezkompiluje, opravte syntaktické nebo pravopisné chyby. Chyby a upozornění se zobrazí v okně konzoly, které slouží ke spouštění kompilátoru amxmlc. Další informace naleznete v tématu „Kompilace zdrojových souborů MXML a ActionScript pro aplikaci AIR“ na stránce 153. Testování aplikace Chcete-li spouštět a testovat aplikaci pomocí příkazového řádku, použijte program AIR Debug Launcher (ADL) ke spuštění aplikace s použitím jejího souboru deskriptoru aplikace. (Program ADL naleznete v adresáři bin sady AIR SDK a Flex SDK.) ❖ Pomocí příkazového řádku zadejte tento příkaz: adl HelloWorld-app.xml Další informace naleznete v části „Simulace zařízení pomocí programu ADL“ na stránce 98. Vytvoření souboru balíčku APK Po úspěšném spuštění aplikace můžete pomocí programu ADL aplikaci sbalit do souboru balíčku APK. Soubor balíčku APK je nativní formát souboru aplikace Android, který můžete distribuovat uživatelům. Poslední aktualizace 31.8.2016 43 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vytvoření první aplikace AIR Všechny aplikace AIR musejí být podepsané. Na rozdíl od souborů AIR je zvykem podepisovat aplikace pro systém Android certifikátem s vlastním podpisem. Operační systém Android se nepokusí zjistit totožnost vývojáře aplikace. K podepsání balíčků pro systém Android můžete použít certifikát generovaný nástrojem ADT. Certifikáty použité pro aplikace odesílané na web Android Market musejí mít dobu platnosti nejméně 25 let. Generování certifikátu s vlastním podpisem a klíče ❖ Z příkazového řádku zadejte následující příkaz (spustitelný soubor programu ADT je umístěn v adresáři bin sady Flex SDK): adt -certificate -validityPeriod 25 -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword V tomto příkladu se použije minimální počet atributů, které lze nastavit pro certifikát. Typ klíče musí být buď 1024RSA nebo 2048-RSA (viz „Příkaz certificate nástroje ADT“ na stránce 171). Vytvoření balíčku AIR ❖ Z příkazového řádku zadejte následující příkaz (na jediném řádku): adt -package -target apk -storetype pkcs12 -keystore sampleCert.p12 HelloWorld.apk HelloWorld-app.xml HelloWorld.swf Budete vyzváni k zadání hesla souboru keystore. Zadejte heslo a stiskněte klávesu Enter. Další informace naleznete v tématu „Zabalení mobilní aplikace AIR“ na stránce 91. Instalace běhového modulu AIR Nejnovější verzi běhového modulu AIR můžete do svého zařízení nainstalovat z webu Android Market. Můžete také nainstalovat běhový modul, který je součástí sady SDK, a to buď do zařízení, nebo do emulátoru systému Android. ❖ Z příkazového řádku zadejte následující příkaz (na jediném řádku): adt -installRuntime -platform android -platformsdk Příznak -platformsdk nastavte na adresář sady Android SDK (zadejte nadřazený adresář složky tools). Nástroj ADT nainstaluje soubor Runtime.apk, který je součástí sady SDK. Další informace naleznete v části „Instalace běhového modulu AIR a aplikací pro vývoj“ na stránce 105. Instalace aplikace AIR ❖ Z příkazového řádku zadejte následující příkaz (na jediném řádku): adt -installApp -platform android -platformsdk path-to-android-sdk -package path-to-app Příznak -platformsdk nastavte na adresář sady Android SDK (zadejte nadřazený adresář složky tools). Další informace naleznete v části „Instalace běhového modulu AIR a aplikací pro vývoj“ na stránce 105. Aplikaci můžete spustit klepnutím na ikonu aplikace na obrazovce zařízení nebo emulátoru. Poslední aktualizace 31.8.2016 44 Kapitola 6: Vývoj aplikací AIR pro stolní počítače Pracovní postup pro vývoj aplikací AIR pro stolní počítače Základní pracovní postup pro vývoj aplikace AIR je stejný jako většina tradičních vývojových modelů: vytvoření kódu, kompilace, test a na konci cyklu zabalení do instalačního souboru. Kód aplikace můžete napsat pomocí jazyků Flash, Flex a ActionScript a zkompilovat jej pomocí nástroje Flash Professional, Flash Builder nebo kompilátorů příkazového řádku mxmlc a compc. Kód aplikace můžete napsat také pomocí jazyka HTML a JavaScript a krok kompilace přeskočit. Aplikace AIR pro stolní počítače můžete testovat pomocí nástroje ADL, který spustí aplikaci bez nutnosti předchozího zabalení a instalace. Programy Flash Professional, Flash Builder, Dreamweaver a Aptana IDE jsou integrovány s debuggerem Flash. Ladicí program, FDB, lze spustit také ručně pomocí nástroje ADL z příkazového řádku. Samotný nástroj ADL nezobrazí chyby a výstup příkazu trace. Všechny aplikace AIR musí být zabaleny do instalačního souboru. Formát souboru AIR pro více platforem se nedoporučuje v následujících případech: • Potřebujete získat přístup k rozhraním API závislým na platformě, jako je třída NativeProcess. • Aplikace používá nativní rozšíření. V takových případech můžete vytvořit balíček aplikace AIR jako nativní instalační soubor specifický pro platformu. Aplikace založené na SWF 1 Napište kód v jazyce MXML nebo ActionScript. 2 Vytvořte potřebné prostředky, jako bitmapové soubory ikon. 3 Vytvořte deskriptor aplikace. 4 Zkompilujte kód jazyka ActionScript. 5 Otestujte aplikaci. 6 Zabalte a podepište jako soubor AIR pomocí cíle air. Aplikace založené na jazyce HTML 1 Napište kód HTML a JavaScript. 2 Vytvořte potřebné prostředky, jako bitmapové soubory ikon. 3 Vytvořte deskriptor aplikace. 4 Otestujte aplikaci. 5 Zabalte a podepište jako soubor AIR pomocí cíle air. Poslední aktualizace 31.8.2016 45 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače Vytváření nativních instalačních programů pro aplikace AIR 1 Napište kód (ActionScript nebo HTML a JavaScript). 2 Vytvořte potřebné prostředky, jako bitmapové soubory ikon. 3 Vytvořte deskriptor aplikace určující profil extendedDesktop. 4 Zkompilujte všechen kód jazyka ActionScript. 5 Otestujte aplikaci. 6 Zabalte aplikaci na jednotlivých cílových platformách pomocí cíle native. Poznámka: Nativní instalační program pro cílovou platformu musí být vytvořen na dané platformě. Není například možné vytvořit instalační soubor systému Windows v počítači Mac. Můžete použít virtuální počítač, například VMWare, pro spuštění více platforem na stejném počítačovém hardwaru. Vytváření aplikací AIR s kaptivním balíčkem běhového prostředí 1 Napište kód (ActionScript nebo HTML a JavaScript). 2 Vytvořte potřebné prostředky, jako bitmapové soubory ikon. 3 Vytvořte deskriptor aplikace určující profil extendedDesktop. 4 Zkompilujte všechen kód jazyka ActionScript. 5 Otestujte aplikaci. 6 Zabalte aplikaci na jednotlivých cílových platformách pomocí cíle bundle. 7 Vytvořte instalační program pomocí souborů svazku. (Sada AIR SDK neposkytuje nástroje pro vytváření takového instalačního programu, ale k dispozici je řada sad nástrojů jiných výrobců.) Poznámka: Svazek pro cílovou platformu musí být vytvořen na dané platformě. Není například možné vytvořit svazek systému Windows v počítači Mac. Můžete použít virtuální počítač, například VMWare, pro spuštění více platforem na stejném počítačovém hardwaru. Nastavení vlastností aplikace pro stolní počítače Nastavte základní vlastnosti aplikace v souboru deskriptoru aplikace. Tato část obsahuje vlastnosti týkající se aplikací AIR pro stolní počítače. Elementy soubor deskriptoru aplikace jsou kompletně popsány v tématu „Soubory deskriptorů aplikací AIR“ na stránce 202. Vyžadovaná verze běhového modulu AIR Určete verzi běhového modulu AIR požadovanou pro aplikaci využívající obor názvů souboru deskriptoru aplikace. Obor názvů, přiřazený elementu application, určuje z velké části, které funkce může daná aplikace používat. Například pokud aplikace používá obor názvů AIR 1.5 a uživatel má nainstalovánu aplikaci AIR 3.0, vidí aplikace chování verze AIR 1.5 (a to i v případě, že bylo chování ve verzi AIR 3.0 změněno). Aplikace získá přístup k novému chování a funkcím pouze v případě, že změníte obor názvů a publikujete aktualizaci. Primárními výjimkami této zásady jsou změny zabezpečení a sady WebKit. Určete obor názvů pomocí atributu xmlns kořenového elementu application: <application xmlns="http://ns.adobe.com/air/application/3.0"> Poslední aktualizace 31.8.2016 46 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače Další témata Nápovědy „application“ na stránce 208 Identita aplikace Několik nastavení by mělo být jedinečných pro každou aplikaci, kterou publikujete. Jedinečná nastavení zahrnují ID, název a název souboru. <id>com.example.MyApplication</id> <name>My Application</name> <filename>MyApplication</filename> Další témata Nápovědy „id“ na stránce 223 „filename“ na stránce 218 „name“ na stránce 231 Verze aplikace Ve verzích prostředí AIR starších než verze 2.5 zadejte aplikaci v elementu version. Můžete použít libovolný řetězec. Běhové prostředí AIR neinterpretuje řetězec; 2.0 není považována za vyšší verzi než 1.0. <!-- AIR 2 or earlier --> <version>1.23 Beta 7</version> V prostředí AIR 2.5 a novějších zadejte verzi aplikace do elementu versionNumber. Element version již není možné používat. Při zadávání hodnoty elementu versionNumber je nutné použít posloupnost až tří čísel oddělených tečkami, například: „0.1.2“. Každý segment čísla verze může mít až tři číslice. (Jinými slovy, nejvyšší přípustné číslo verze je „999.999.999“.) Není nutné uvést všechny tři segmenty čísla; hodnoty „1“ a „1.0“ jsou také přípustná čísla verzí. Můžete také zadat popisek verze pomocí elementu versionLabel. Při přidání popisku verze se popisek zobrazí místo čísla verze na takových místech, jako jsou dialogová okna instalačního programu aplikace AIR. <!-- AIR 2.5 and later --> <versionNumber>1.23.7<versionNumber> <versionLabel>1.23 Beta 7</versionLabel> Další témata Nápovědy „version“ na stránce 239 „versionLabel“ na stránce 239 „versionNumber“ na stránce 239 Vlastnosti hlavního okna Po spuštění vytvoří aplikace AIR na ploše okno a načte do něj hlavní soubor SWF nebo stránku HTML. Aplikace AIR použije podřízené elementy elementu initialWindow k řízení úvodního vzhledu a chování tohoto počátečního okna aplikace. • content – hlavní soubor SWF aplikace v podřízeném elementu content elementu initalWindow. K identifikaci zařízení v profilu stolního počítače můžete použít soubor SWF nebo soubor HTML. Poslední aktualizace 31.8.2016 47 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače <initialWindow> <content>MyApplication.swf</content> </initialWindow> Soubor je nutné zahrnout do balíčku AIR (pomocí nástroje ADT nebo vašeho prostředí IDE). Prosté uvedení názvu v deskriptoru aplikace nevede k automatickému zahrnutí souboru do balíčku. • depthAndStencil – určuje, zda se má použít vyrovnávací paměť pro hloubku nebo šablonu. Tyto vyrovnávací paměti se běžně používají při práci s 3D obsahem. <depthAndStencil>true</depthAndStencil> • height – výška úvodního okna. • maximizable – zda je zobrazen systémový styl okolí pro maximalizaci okna. • maxSize – maximální povolená velikost. • minimizable – zda je zobrazen systémový styl okolí pro minimalizaci okna. • minSize – minimální povolená velikost. • renderMode – V prostředí AIR 3 nebo novější lze režim vykreslování v případě aplikací pro stolní počítače nastavit na auto, cpu, direct či gpu. Ve starších verzích aplikace AIR je toto nastavení ignorováno na platformách stolních počítačů. Nastavení renderMode nelze provést za běhu. • auto – v podstatě stejný jako režim cpu. • CPU – objekty zobrazení jsou vykresleny a zkopírovány do paměti zobrazení v softwaru. Možnost StageVideo je dostupná, pouze když je okno v režimu na celou obrazovku. Možnost Stage3D používá softwarové vykreslení. • direct – objekty zobrazení jsou vykresleny softwarem běhového prostředí, ale kopírování vykresleného snímku do paměti zobrazení (blitting) je hardwarově akcelerováno. StageVideo je k dispozici. Možnost Stage3D využívá hardwarovou akceleraci, pokud je to jinak možné. Pokud je průhlednost okna nastavena na hodnotu true, posune se okno zpět do softwarového vykreslování a blittingu. Poznámka: Aby bylo možné využít akceleraci obsahu Flash pomocí GPU v prostředí AIR pro mobilní platformy, společnost Adobe doporučuje, abyste použili volbu renderMode="direct" (tzn. Stage3D) a nikoli renderMode="gpu". Společnost Adobe oficiálně podporuje a doporučuje tato prostředí založená na rozhraní Stage3D – Starling (2D) a Away3D (3D). Podrobnější informace o rozhraní Stage3D a prostředí Starling/Away3D naleznete na webu http://gaming.adobe.com/getstarted/. • gpu – pokud je k dispozici, použije se hardwarová akcelerace. • requestedDisplayResolution – Určuje, zda má vaše aplikace v počítačích MacBook Pro s displeji s vysokým rozlišením používat režim rozlišení standard nebo high. Ve všech ostatních platformách je tato hodnota ignorována. Pokud je určena hodnota standard, každý obrazový bod plochy se vykreslí jako čtyři obrazové body na displeji. Pokud je určena hodnota high, každý obrazový bod plochy odpovídá jednomu fyzickému obrazovému bodu na displeji. Zadané hodnota se používá pro všechna okna aplikace. Element requestedDisplayResolution lze používat pro aplikace AIR pro stolní počítače (jako podřízený prvek elementu intialWindow) v prostředí AIR 3.6 a novějších. • resizable – určuje, zda je zobrazen systémový styl okolí pro změnu velikosti okna. • systemChrome – zda je použit standardní vzhled okna operačního systému. Nastavení systemChrome okna nelze změnit za běhu. • title – název okna. • transparent – Určuje, zda je okno prolnuté proti pozadí pomocí prolnutí alfa. Okno nemůže používat systémový styl okolí, pokud je zapnuta průhlednost. Nastavení průhlednosti okna nelze změnit za běhu. Poslední aktualizace 31.8.2016 48 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače • visible – zda se okno zobrazí hned po vytvoření. Ve výchozím nastavení se okno na začátku nezobrazí, aby aplikace mohla vykreslit jeho obsah dříve, než se zviditelní. • width – šířka okna. • x – vodorovné umístění okna. • y – svislé umístění okna. Další témata Nápovědy „content“ na stránce 213 „depthAndStencil“ na stránce 215 „height“ na stránce 222 „maximizable“ na stránce 229 „maxSize“ na stránce 230 „minimizable“ na stránce 230 „minimizable“ na stránce 230 „minSize“ na stránce 230 „renderMode“ na stránce 233 „requestedDisplayResolution“ na stránce 233 „resizable“ na stránce 235 „systemChrome“ na stránce 237 „title“ na stránce 238 „transparent“ na stránce 238 „visible“ na stránce 240 „width“ na stránce 240 „x“ na stránce 241 „y“ na stránce 241 Funkce pro stolní počítač Následující elementy řídí funkce instalace a aktualizace na ploše stolního počítače. • customUpdateUI – umožňuje zadat vlastní dialogová okna pro aktualizaci aplikace. Pokud je nastaven na výchozí hodnotu false, budou použita standardní dialogová okna aplikace AIR. • fileTypes – určuje typy souborů, které chce aplikace zaregistrovat jako výchozí aplikace pro otevírání. Pokud je jiná aplikace již nastavena jako výchozí pro otevírání určitého typu souborů, aplikace AIR nepřepíše stávající registraci. Aplikace však může změnit registraci za běhu pomocí metody setAsDefaultApplication() objektu NativeApplication. Je vhodné požádat uživatele o povolení před přepsáním stávajících přidružení typů souboru. Poznámka: Registrace typu souboru je ignorována při zabalení aplikace jako kaptivního balíčku běhového prostředí (pomocí cíle -bundle). K registraci daného typu souboru, je nutné vytvořit instalační program, který provede registrací. Poslední aktualizace 31.8.2016 49 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače • installFolder – Určuje relativní cestu ke standardní instalační složce aplikace, do které je aplikace nainstalována. Toto nastavení lze použít k zadání názvu vlastní složky i ke seskupení více aplikací do společné složky. • programMenuFolder – určuje hierarchii nabídky pro nabídku Všechny programy systému Windows. Toto nastavení slouží k seskupení více aplikací do společné nabídky. Pokud není zadána žádná složka nabídek, bude zástupce aplikace přidán přímo do hlavní nabídky. Další témata Nápovědy „customUpdateUI“ na stránce 214 „fileTypes“ na stránce 220 „installFolder“ na stránce 227 „programMenuFolder“ na stránce 232 Podporované profily Pokud má vaše aplikace smysl pouze ve stolním počítači, můžete zabránit její instalaci do zařízení v jiném profilu vyloučením tohoto profilu ze seznamu podporovaných profilů. Pokud aplikace používá třídu NativeProcess nebo nativní rozšíření, musí podporovat profil extendedDesktop. Ponecháte-li prvek supportedProfile mimo deskriptor aplikace, pak se předpokládá, že aplikace podporuje všechny definované profily. Chcete-li omezit přístup aplikace na určitý seznam profilů, zadejte seznam profilů oddělený mezerou: <supportedProfiles>desktop extendedDesktop</supportedProfiles> Seznam tříd jazyka ActionScript podporovaných v profilu desktop a extendedDesktop naleznete v tématu „Schopnosti různých profilů“ na stránce 243. Další témata Nápovědy „supportedProfiles“ na stránce 236 Požadovaná nativní rozšíření Aplikace, které podporují profil extendedDesktop, mohou využívat nativní rozšíření. Deklarujte všechna nativní rozšířená, která aplikace AIR používá, v deskriptoru aplikace. Následující příklad ukazuje syntaxi pro zadání dvou požadovaných nativních rozšíření: <extensions> <extensionID> com.example.extendedFeature</extensionID> <extensionID> com.example.anotherFeature</extensionID> </extensions> Element extensionID má stejnou hodnotu jako element id v souboru deskriptoru rozšíření. Soubor deskriptoru rozšíření je soubor XML s názvem extension.xml. Je zabalen v souboru ANE, který obdržíte od vývojáře nativního rozšíření. Ikony aplikace Ve stolním počítači se ikony zadané v deskriptoru aplikace používají jako soubor aplikace, zástupce a ikony v nabídce programů. Ikona aplikace by měla být dodána jako sada obrázků PNG o rozměrech 16 x 16, 32 x 32, 48 x 48 a 128 x 128 obrazových bodů. Cestu k souborům ikon určete v elementu icon v souboru deskriptoru aplikace: Poslední aktualizace 31.8.2016 50 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače <icon> <image16x16>assets/icon16.png</image16x16> <image32x32>assets/icon32.png</image32x32> <image48x48>assets/icon48.png</image48x48> <image128x128>assets/icon128.png</image128x128> </icon> Pokud nezadáte ikonu dané velikosti, bude použita další největší velikost a přizpůsobena rozměrům. Pokud nezadáte žádné ikony, bude použita výchozí ikona systému. Další témata Nápovědy „icon“ na stránce 222 „imageNxN“ na stránce 223 Ignorovaná nastavení Aplikace ve stolním počítači bude ignorovat nastavení aplikace, která platí pro funkce mobilního profilu. Ignorována nastavení zahrnují: • android • aspectRatio • autoOrients • fullScreen • iPhone • renderMode (před vydáním verze prostředí AIR 3) • requestedDisplayResolution • softKeyboardBehavior Ladění aplikace AIR pro stolní počítač. Pokud vyvíjíte aplikaci pomocí prostředí IDE, například Flash Builder, Flash Professional nebo Dreamweaver, jsou obvykle jeho součástí ladicí nástroje. Aplikaci můžete jednoduše ladit spuštěním v režimu ladění. Pokud nepoužíváte prostředí IDE podporující ladění přímo, můžete použít nástroje AIR Debug Launcher (ADL) a Flash Debugger (FDB), které vám pomohou při ladění aplikace. Další témata Nápovědy De Monsters: Monster Debugger „Ladění pomocí prohlížeče Introspector HTML aplikace AIR“ na stránce 279 Spuštění aplikace pomocí nástroje ADL Aplikaci AIR můžete spustit bez zabalení a instalace pomocí nástroje ADL. Soubor deskriptoru aplikace předejte nástroji ADL jako parametr, jak je znázorněno v následujícím příkladu (kód ActionScript v aplikaci musí být nejprve kompilován): adl myApplication-app.xml Poslední aktualizace 31.8.2016 51 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače Nástroj ADL vytiskne příkazy trace, výjimky běhového modulu a chyby analyzátoru HTML v okně terminálu. Pokud proces FDB čeká na příchozí připojení, připojí se nástroj ADL k debuggeru. Pomocí nástroje ADL se lze rovněž ladit aplikaci AIR, která používá nativní rozšíření. Například: adl -extdir extensionDirs myApplication-app.xml Další témata Nápovědy „Program AIR Debug Launcher (ADL)“ na stránce 157 Tisk příkazů trace Chcete-li tisknout příkazy trace do konzoly použité ke spuštění programu ADL, přidejte příkazy trace do kódu pomocí funkce trace(). Poznámka: Pokud se příkazy trace() nezobrazí v konzole, zkontrolujte, zda jste v souboru mm.cfg neurčili vlastnost ErrorReportingEnable nebo TraceOutputFileEnable. Další informace o umístěních tohoto souboru specifických pro platformu naleznete v článku Úpravy souboru mm.cfg. Příklad jazyka ActionScript: //ActionScript trace("debug message"); Příklad jazyka JavaScript: //JavaScript air.trace("debug message"); V kódu JavaScript lze pomocí funkcí alert() a confirm() zobrazit zprávy ladění z vlastní aplikace. Mimo to se do konzoly vytisknou čísla řádků pro chyby syntaxe, jakož i jakékoliv nezachycené výjimky jazyka JavaScript. Poznámka: Pokud chcete použít předponu air znázorněnou v příkladu jazyka JavaScript, musíte do stránky importovat soubor AIRAliases.js. Tento soubor je umístěn v adresáři frameworks sady AIR SDK. Připojení k programu Flash Debugger (FDB) Chcete-li aplikaci AIR ladit pomocí nástroje Flash Debugger, spusťte relaci programu FDB a poté spusťte aplikaci pomocí programu ADL. Poznámka: V aplikacích AIR založených na SWF je třeba zkompilovat zdrojové soubory ActionScript s příznakem debug. (V aplikaci Flash Professional zkontrolujte v dialogovém okně Nastavení publikování volbu Povolit ladění.) 1 Spusťte program FDB. Program FDB naleznete v adresáři bin sady Flex SDK. Konzola zobrazí výzvu programu FDB: <fdb> 2 Spusťte příkaz run: <fdb>run [Enter] 3 V odlišném příkazu nebo konzole skořepiny spusťte verzi ladění své aplikace: adl myApp.xml 4 Pomocí příkazů programu FDB nastavte dle potřeby body rozdělení. 5 Zadejte: continue [Enter] Pokud aplikace AIR vychází z formátu SWF, ovládá ladicí program pouze spuštění kódu jazyka ActionScript. Pokud aplikace AIR vychází z jazyka HTML, pak ovládá ladicí program pouze spuštění kódu jazyka JavaScript. Chcete-li nástroj ARL spustit a přitom se nepřipojovat k ladicímu programu, zařaďte do příkazu volbu -nodebug: Poslední aktualizace 31.8.2016 52 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače adl myApp.xml -nodebug Potřebujete-li základní informace o příkazech programu FDB, spusťte příkaz help: <fdb>help [Enter] Podrobnosti o příkazech programu FDB naleznete v dokumentaci aplikace Flex v tématu Using the command-line debugger commands (Používání ladicích příkazů příkazového řádku). Balení instalačního souboru aplikace AIR pro stolní počítač Každá aplikace AIR musí mít minimálně soubor deskriptoru aplikace a hlavní soubor SWF nebo HTML. Jakékoliv další datové zdroje, které mají být s aplikací nainstalovány, musí být rovněž zabaleny do souboru AIR. Tento článek pojednává o balení aplikace AIR pomocí nástrojů příkazového řádku, které jsou součástí sady SDK. Informace o balení aplikace pomocí některého z nástrojů vytváření aplikace Adobe naleznete v následujících dokumentech: • Adobe® Flex® Builder™, viz téma Balení aplikací AIR pomocí nástroje Flex Builder. • Adobe® Flash® Builder™, viz téma Balení aplikací AIR pomocí nástroje Flash Builder. • Adobe® Flash® Professional, viz téma Publikování pro prostředí Adobe Air. • Adobe® Dreamweaver® viz téma Vytvoření aplikace AIR v programu Dreamweaver. Všechny soubory instalátoru AIR musí být podepsány pomocí digitálního certifikátu. Instalátor AIR používá podpis k ověření, zda váš soubor aplikace nebyl od podepsání pozměněn. Můžete použít certifikát podpisu kódu z certifikační autority nebo certifikát s vlastním podpisem. Když použijete certifikát vydaný důvěryhodnou autoritou poskytnete uživatelům vaší aplikace určité záruky vaší totožnosti jako vydavatele. Dialog instalace obsahuje informace, že vaše identita byla ověřena certifikační autoritou: Dialog potvrzení instalace pro aplikaci, která je podepsána důvěryhodným certifikátem Když použijete certifikát podepsaný svým držitelem, uživatelé nemohou ověřit vaši identitu jako podepisující osoba. Certifikát podepsaný svým držitelem rovněž oslabuje záruku toho, že balík nebyl změněn. (Protože než se legitimní instalační soubor dostal k uživateli, mohl být nahrazen nepravým souborem.) Instalační dialog obsahuje informaci, že identitu vydavatele nelze ověřit. Když uživatelé vaši aplikaci nainstalují, podstupují vyšší riziko. Poslední aktualizace 31.8.2016 53 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače Dialog potvrzení instalace pro aplikaci, která je podepsána certifikátem podepsaným svým držitelem Soubor AIR můžete zabalit a podepsat v jediném kroku pomocí příkazu ADT -package. Pomocí příkazu preparemůžete také vytvořit dočasný nepodepsaný balík a tento přechodný balík můžete podepsat pomocí příkazu sign v samostatném kroku. Poznámka: Jazyk Java verze 1.5 a vyšší nepřijímá hesla obsahující znaky high-ASCII pro ochranu souborů certifikátů PKCS12. Když vytvoříte nebo exportujete kód podepisující soubor certifikátu, používejte v heslu pouze znaky ze sady ASCII. Při podepisování balíku instalace připojit ADT automaticky autoritu časové známky pro ověření času. Informace časové známky je obsažena v souboru AIR. Soubor AIR, který obsahuje ověřenou časovou známku, lze nainstalovat kdykoliv v budoucnosti. Jestliže se ADT nemůže připojit k serveru časové známky, je zabalení zrušeno. Volbu časové známky můžete potlačit, ale bez časové známky nelze aplikaci AIR po vypršení certifikátu použitého k podepsání instalačního souboru nainstalovat. Pokud vytváříte balík k aktualizaci stávající aplikace AIR, musí být tento balík podepsán stejným certifikátem jako původní aplikace. Pokud byl původní certifikát obnoven, jeho platnost v posledních 180 dnech vypršela, nebo pokud chcete provést změnu na nový certifikát, můžete použít podpis migrace. Podpis migrace zahrnuje podepsání souboru aplikace AIR novým i starým certifikátem. Použijte příkaz -migrate k použití podpisu migrace, jak je popsáno v tématu „Příkaz migrate nástroje ADT“ na stránce 171. Důležité: Striktně je stanovena doba odkladu 180 dní k použití podpisu migrace po vypršení platnosti původního certifikátu. Bez podpisu migrace musí stávající uživatelé před instalací nové verze odinstalovat svoji stávající aplikaci. Období odkladu se vztahuje pouze na aplikace, které mají ve jmenném prostoru deskriptoru aplikace uvedenu verzi prostředí AIR 1.5.3 nebo vyšší. Doba odkladu není stanovena, když se zaměříte na dřívější verze běhového modulu AIR. Před verzí AIR 1.1 nebyly podpisy migrace podporovány. Chcete-li použít podpis migrace, musíte sbalit aplikaci se sadou SDK verze 1.1 nebo novější. Aplikace rozmístěné pomocí souborů AIR jsou známy jako aplikace s profilem plochy. Nemůžete použít ADT k zabalení nativního instalátoru pro aplikaci AIR, pokud soubor deskriptoru aplikace nepodporuje profil plochy. Tento profil nemůžete omezit pomocí prvku supportedProfiles v souboru deskriptoru aplikace. Viz témata „Profily zařízení“ na stránce 242 a „supportedProfiles“ na stránce 236. Poznámka: Nastavení v souboru deskriptoru aplikace určuje identitu aplikace AIR a její výchozí cestu instalace. Viz „Soubory deskriptorů aplikací AIR“ na stránce 202. ID vydavatele Od verze AIR 1.5.3 jsou ID vydavatele nepřípustné. Nové aplikace (původně publikované s verzí AIR 1.5.3 nebo novější) nepotřebují a neměly by určovat ID vydavatele. Poslední aktualizace 31.8.2016 54 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače Při aktualizaci aplikací publikovaných s předchozími verzemi AIR musíte v souboru deskriptoru aplikace určit původní ID vydavatele. V opačném případě budou nainstalovaná verze aplikace a aktualizovaná verze považovány za různé aplikace. Použijete-li různé ID nebo vynecháte tag publisherID, uživatel musí před instalací nové verze odinstalovat předchozí verzi. Chcete-li zjistit původní ID vydavatele, vyhledejte soubor publisherid v podadresáři META-INF/AIR, kde je nainstalována původní aplikace. Řetězec uvnitř tohoto souboru je ID vydavatele. Deskriptor vaší aplikace musí určovat běhový modul AIR 1.5.3 (nebo novější) v deklaraci jmenného prostoru deskriptoru aplikace, aby bylo možné zadat ID vydavatele ručně. Pro aplikace publikované ve starších verzích než AIR 1.5.3, nebo publikované pomocí verze AIR 1.5.3 SDK s určenou předchozí verzí AIR ve jmenném prostoru deskriptoru aplikace je ID vydavatele vypočítáno na základě podpisového certifikátu. Toto ID je použito spolu s ID aplikace ke stanovení identity aplikace. ID vydavatele, pokud je přítomno, slouží k těmto účelům: • Ověření, zda je soubor AIR aktualizací spíše než nově instalovanou aplikací • Jako součást šifrovacího klíče pro šifrované místní úložiště • Jako součást cesty pro adresář úložiště aplikace • Jako součást připojovacího řetězce pro místní připojení • Jako součást řetězce identity používaného k vyvolání aplikace pomocí rozhraní API v prohlížeči prostředí AIR • Jako součást specifikace OSID (používané při vytváření vlastních instalačních a odinstalačních programů) Před verzí AIR 1.5.3 bylo možné změnit ID vydavatele, pokud jste podepsali aktualizaci aplikace podpisem migrace pomocí nového nebo obnoveného certifikátu. Když se změní ID vydavatele, změní se i chování veškerých funkcí prostředí AIR, které na tomto ID závisí. Například data ve stávajícím zašifrovaném úložišti již nejsou přístupná a veškeré instance prostředí Flash nebo AIR, které vytvářejí místní připojení k aplikaci, musí v připojovacím řetězci používat nové ID. Ve verzi AIR 1.5.3 nebo novější je ID vydavatele založeno na podpisovém certifikátu a je přiřazeno, pouze pokud je tag publisherID obsažen v deskriptoru aplikace. Aplikaci nelze aktualizovat, pokud ID se vydavatele, které je určeno pro aktualizační balík AIR, neshoduje s aktuálním ID vydavatele. Zabalení pomocí nástroje ADT Ke sbalení aplikace AIR můžete použít nástroj příkazového řádku ADT. Před zabalením musí být zkompilován veškerý kód ActionScript a MXML a případných rozšíření. Musíte také mít certifikát pro podepsání kódu. Podrobné informace o příkazech a možnostech nástroje ADT naleznete v části věnované „AIR Developer Tool (ADT)“ na stránce 163. Vytvoření balíčku AIR Chcete-li vytvořit balíček aplikace AIR, použijte příkaz package nástroje ADT s nastavením typu cíle air pro výsledná sestavení. adt -package -target air -storetype pkcs12 -keystore ../codesign.p12 myApp.air myApp-app.xml myApp.swf icons V příkladu se předpokládá, že cesta k nástroji ADT se nachází v definici cesty v prostředí příkazového řádku. (Nápovědu naleznete v části „Proměnné prostředí pro cestu“ na stránce 301.) Příkaz je nutné spustit z adresáře obsahujícího soubory aplikace. Soubory aplikace v uvedeném příkladu jsou myAppapp.xml (soubor deskriptoru aplikace), myApp.swf a adresář icons. Poslední aktualizace 31.8.2016 55 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače Při spuštění příkazu, jak je uveden, vás nástroj ADT vyzve k zadání hesla pro úložiště klíčů. (Znaky hesla nejsou vždy zobrazeny; po dokončení zadávání stiskněte klávesu Enter.) Vytvoření balíčku aplikace AIR ze souboru AIRI Můžete vytvořit podepsaný soubor AIRI za účelem vytvoření instalačního balíčku aplikace AIR: adt -sign -storetype pkcs12 -keystore ../codesign.p12 myApp.airi myApp.air Sbalení nativního instalátoru pro stolní počítač Od verze AIR 2 můžete použít nástroj ADT k vytvoření nativních instalátorů aplikace pro distribuci aplikací AIR. Můžete například sestavit soubor instalátoru ve formátu EXE k distribuci aplikace AIR v operačním systému Windows. Můžete sestavit soubor instalátoru ve formátu DMG k distribuci aplikace AIR v operačním systému Mac OS. V prostředí AIR 2.5 a AIR 2.6 můžete sestavit soubor instalátoru ve formátu DEB nebo RPM k distribuci aplikace AIR v operačním systému Linux. Aplikace instalované pomocí nativního instalátoru aplikace jsou označovány jako aplikace s rozšířeným profilem plochy. Nemůžete použít ADT k zabalení nativního instalátoru pro aplikaci AIR, pokud soubor deskriptoru aplikace nepodporuje rozšířený profil plochy. Tento profil nemůžete omezit pomocí prvku supportedProfiles v souboru deskriptoru aplikace. Viz témata „Profily zařízení“ na stránce 242 a „supportedProfiles“ na stránce 236. Nativní verzi instalátoru aplikace AIR můžete sestavit dvěma způsoby: • Nativní instalátor můžete sestavit na základě souboru deskriptoru aplikace a dalších zdrojových souborů. (Ostatní zdrojové soubory mohou obsahovat soubory SWF, HTML a další datové zdroje.) • Nativní instalátor můžete sestavit na základě souboru AIR nebo na základě souboru AIRI. ADT musíte používat ve stejném operačním systému, jako je ten, pro který chcete generovat soubor nativního instalátoru. Chcete-li tedy vytvořit soubor EXE pro Windows, spusťte ADT v operačním systému Windows. Chceteli vytvořit soubor DMG pro Mac OS, spusťte ADT v operačním systému Mac OS. Chcete-li vytvořit soubor DEB nebo RPG pro Linux, spusťte ADT ze sady AIR 2.6 SDK v operačním systému Linux. Když vytvoříte nativní instalátor k distribuování aplikace AIR, tato aplikace získá následující schopnosti: • Pomocí třídy NativeProcess může spouštět a ovlivňovat nativní procesy. Podrobnosti najdete v následujících zdrojích: • Komunikace s nativními procesy v prostředí AIR (pro vývojáře pracující s jazykem ActionScript) • Komunikace s nativními procesy v AIR (pro vývojáře pracující s jazykem HTML) • Může použít nativní rozšíření. • Může použít metodu File.openWithDefaultApplication() k otevření libovolného souboru pomocí výchozí systémové aplikace definované k jeho otevření bez ohledu na jeho typ souboru. (Existují omezení pro aplikace, které nejsou instalovány pomocí nativního instalátoru. Podrobnosti najdete v referenční příručce v části týkající se metody File.openWithDefaultApplication().) Pokud je však soubor zabalen jako nativní instalační program, ztrácí aplikace některé výhody formátu souborů AIR. Jeden soubor již nelze distribuovat do všech stolních počítačů. Integrované funkce aktualizace (ani rozhraní aktualizačního programu) nefungují. Poslední aktualizace 31.8.2016 56 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače Když uživatel poklepe na soubor nativního instalátoru, aplikaci AIR nainstaluje. Pokud není zatím v počítači nainstalována požadovaná verze Adobe AIR, instalátor ji nejdříve stáhne ze sítě a nainstaluje. Není-li k dispozici síťové připojení, ze kterého by bylo možné správnou verzi Adobe AIR (podle potřeby) získat, instalace se nezdaří. Instalace se rovněž nezdaří, pokud operační systém není podporován v aplikaci Adobe AIR 2. Poznámka: Chcete-li, aby byl soubor spustitelný ve vaší nainstalované aplikaci, přesvědčte se, zda je spustitelný v systému souborů, až budete balit aplikaci. (V operačních systémech Mac a Linux můžete podle potřeby nastavit příznak spustitelného souboru pomocí příkazu chmod.) Vytváření nativního instalátoru ze zdrojových souborů aplikace Chcete-li sestavit nativní instalátor ze zdrojových souborů dané aplikace, použijte příkaz -package s následující syntaxí (na jednom příkazovém řádku): adt -package AIR_SIGNING_OPTIONS -target native [WINDOWS_INSTALLER_SIGNING_OPTIONS] installer_file app_xml [file_or_dir | -C dir file_or_dir | -e file dir ...] ... Tato syntaxe je podobná pro balík souboru AIR (bez nativního instalátoru). Existuje však několik rozdílů: • Můžete k příkazu přidat možnost -target native. (Pokud určíte -target air, ADT vygeneruje soubor AIR namísto souboru nativního instalátoru.) • Můžete určit cílový soubor DMG nebo EXE jako installer_file. • Volitelně můžete v operačním systému Windows přidat druhou sadu možností podepsání, které jsou ve výpisu syntaxe označeny jako [WINDOWS_INSTALLER_SIGNING_OPTIONS]. V operačním systému Windows můžete podepsat nejen soubor AIR, ale také soubor instalátoru. Použijte stejný typ certifikátu a syntaxi možností podepsání, které byste použili k podepsání souboru AIR (další informace v tématu „Možnosti podpisu kódu nástroje ADT“ na stránce 177). Můžete použít stejný certifikát k podepsání souboru AIR i souboru instalátoru, nebo můžete určit různé certifikáty. Když uživatel stáhne podepsaný soubor instalátoru pro Windows z internetu, operační systém Windows rozpozná zdroj souboru na základě tohoto certifikátu. Podrobné informace o dalších možnostech ADT kromě možnosti -target naleznete v tématu „AIR Developer Tool (ADT)“ na stránce 163. Následující příklad vytvoří soubor DMG (soubor nativního instalátoru pro Mac OS): adt -package -storetype pkcs12 -keystore myCert.pfx -target native myApp.dmg application.xml index.html resources Následující příklad vytvoří soubor EXE (soubor nativního instalátoru pro Windows): adt -package -storetype pkcs12 -keystore myCert.pfx -target native myApp.exe application.xml index.html resources Poslední aktualizace 31.8.2016 57 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače Následující příklad vytvoří soubor EXE a podepíše ho: adt -package -storetype pkcs12 -keystore myCert.pfx -target native -storetype pkcs12 -keystore myCert.pfx myApp.exe application.xml index.html resources Vytváření nativního instalačního programu pro aplikaci, která používá nativní rozšíření Můžete sestavit nativní instalátor ze zdrojových souborů pro danou aplikaci a balíčky nativního rozšíření, které aplikace požaduje. Použijte příkaz -package s následující syntaxí (na jediném příkazovém řádku): adt -package AIR_SIGNING_OPTIONS -migrate MIGRATION_SIGNING_OPTIONS -target native [WINDOWS_INSTALLER_SIGNING_OPTIONS] installer_file app_xml -extdir extension-directory [file_or_dir | -C dir file_or_dir | -e file dir ...] ... Tato syntaxe je stejná jako syntaxe používaná při balení nativního instalátoru, je ale doplněna o další dvě volby. Pomocí možnosti-extdir extension-directory určíte adresář obsahující soubory ANE (nativní rozšíření), které bude aplikace používat. Volitelný příznak -migrate a parametry MIGRATION_SIGNING_OPTIONS použijte k podpisu aktualizace pro aplikaci s podpisem přenosu, když se prvotní podpisový certifikát kódu liší od certifikátu používaného předchozí verzí. Další informace naleznete v části „Podepisování aktualizované verze aplikace AIR“ na stránce 197. Podrobnosti o možnostech programu ADT naleznete v části „AIR Developer Tool (ADT)“ na stránce 163. Následující příklad vytvoří soubor DMG (soubor nativního instalačního programu pro Mac OS) pro aplikaci, která používá nativní rozšíření: adt -package -storetype pkcs12 -keystore myCert.pfx -target native myApp.dmg application.xml -extdir extensionsDir index.html resources Vytváření nativního instalátoru ze souboru AIR nebo AIRI Program ADT můžete použít k vygenerování souboru nativního instalátoru na základě souboru AIR nebo na základě souboru AIRI. Chcete-li sestavit nativní instalátor na základě souboru AIR, použijte příkaz -package s následující syntaxí (na jednom příkazovém řádku): adt -package -target native [WINDOWS_INSTALLER_SIGNING_OPTIONS] installer_file air_file Poslední aktualizace 31.8.2016 58 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače Tato syntaxe je podobná syntaxi k vytváření nativního instalátoru na základě zdrojových souborů pro aplikaci AIR. Existuje však několik rozdílů: • Jako zdroj určete soubor AIR a ne soubor deskriptoru aplikace a další zdrojové soubory pro aplikaci AIR. • Neurčujte pro soubor AIR možnosti podepsání, protože je již podepsán. Chcete-li sestavit nativní instalátor na základě souboru AIRI, použijte příkaz -package s následující syntaxí (na jednom příkazovém řádku): adt AIR_SIGNING_OPTIONS -package -target native [WINDOWS_INSTALLER_SIGNING_OPTIONS] installer_file airi_file Tato syntaxe je podobná syntaxi k vytváření nativního instalátoru na základě souboru AIR. Existuje však několik rozdílů: • Jako zdroj určete soubor AIRI. • Určete možnosti podepsání pro cílovou aplikaci AIR. Následující příklad vytvoří soubor DMG (soubor nativního instalátoru pro Mac OS) založený na souboru AIR: adt -package -target native myApp.dmg myApp.air Následující příklad vytvoří soubor EXE (soubor nativního instalátoru pro Windows) založený na souboru AIR: adt -package -target native myApp.exe myApp.air Následující příklad vytvoří soubor EXE (založený na souboru AIR) a podepíše ho: adt -package -target native -storetype pkcs12 -keystore myCert.pfx myApp.exe myApp.air Následující příklad vytvoří soubor DMG (soubor nativního instalátoru pro Mac OS) založený na souboru AIRI: adt -storetype pkcs12 -keystore myCert.pfx -package -target native myApp.dmg myApp.airi Následující příklad vytvoří soubor EXE (soubor nativního instalátoru pro Windows) založený na souboru AIRI: adt -storetype pkcs12 -keystore myCert.pfx -package -target native myApp.exe myApp.airi Následující příklad vytvoří soubor EXE (založený na souboru AIRI) a podepíše jej podpisem AIR i nativním podpisem systému Windows: adt -package -storetype pkcs12 -keystore myCert.pfx -target native -storetype pkcs12 -keystore myCert.pfx myApp.exe myApp.airi Zabalení kaptivního balíčku běhového prostředí pro stolní počítače Kaptivní balíček běhového prostředí je balíček, který obsahuje kód aplikace spolu s vyhrazenou verzí běhového prostředí. Aplikace zabalená tímto způsobem používá běhové prostředí svazku, nikoli sdílené běhové prostředí nainstalováno někde jinde v počítači uživatele. Vytvořený svazek je samostatná složka souborů aplikace v systému Windows a svazek .app v systému Mac OS. Musíte vytvořit svazek pro cílový operační systém při spouštění v tomto operačním systému. (Virtuální počítač, například je VMWare, lze používat ke spouštění více operačních systémů na jednom počítači.) Poslední aktualizace 31.8.2016 59 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače Aplikace může se měl spouštět z této složky nebo svazku bez instalace. Výhody • Vytváří samostatnou aplikaci. • Pro instalaci není vyžadován přístup k Internetu. • Aplikace je izolována od aktualizací běhového prostředí. • Organizace mohou certifikovat specifické kombinace aplikace a běhového prostředí. • Podporuje tradiční model nasazení softwaru. • Není nutné samostatná redistribuce běhového prostředí. • Může používat rozhraní API NativeProcess. • Může používat nativní rozšíření. • Může používat funkci File.openWithDefaultApplication() bez omezení. • Může být spuštěna z disku USB nebo optického disku bez instalace. Nevýhody • Důležité opravy zabezpečení nejsou uživatelům k dispozici utomaticky, když společnost Adobe publikuje opravu zabezpečení. • Nemůže používat formát souboru .air. • V případě potřeby je nutné vytvořit vlastní instalační program. • Aktualizace prostředí AIR v rozhraní API a rozhraní nejsou podporovány. • Rozhraní API integrovaného prohlížeče aplikace AIR pro instalaci a spuštění aplikace AIR z webové stránky není podporováno. • Registrace souboru v systému Windows musí být provedeny instalačním programem. • Otisk disku větší aplikace Vytvoření kaptivního balíčku běhového prostředí v systému Windows Chcete-li vytvořit kaptivní balíček běhového prostředí systému Windows, je nutné zabalit aplikace při spuštění v operačním systému Windows. Zabalte aplikaci pomocí cíle bundle nástroje ADT: adt -package -keystore ..\cert.p12 -storetype pkcs12 -target bundle myApp myApp-app.xml myApp.swf icons resources Tento příkaz vytvoří svazek v adresáři s názvem myApp. Adresář obsahuje soubory pro vaši aplikaci spolu se soubory běhového prostředí. Program bude možné spouštět přímo ze složky. Chcete-li však vytvořit položku nabídky programu, zaregistrovat typy souborů nebo obslužné rutiny schématu URI, je nutné vytvořit instalační program, který nastaví požadované položky registru). Sady AIR SDK nezahrnují nástroje pro vytváření takových instalačních programů, ale k dispozici je několik programy jiných výrobců, včetně komerčních i bezplatných sad nástrojů instalačního programu s otevřeným kódem. Poslední aktualizace 31.8.2016 60 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače Nativní spustitelné soubory můžete podepsat v systému Windows zadáním druhé sady možností podpisu za položku -target bundlena příkazovém řádku. Tyto možnosti podpisu určují osobní klíč a přidružené certifikáty, které se použijí při použití nativního podpisu systému Windows. (Obvykle lze použít certifikát podpisu kódu prostředí AIR.) Podepsán bude pouze primární spustitelný soubor. Žádné další spustitelné soubory zabalené s aplikací nebudou tímto procesem podepsány. Přiřazení typu souboru Chcete-li aplikaci přiřadit veřejné nebo vlastní typy souborů v systému Windows, musí instalační program nastavit správné položky registru. Typy souborů by měly být uvedeny také v elementu fileTypes souboru deskriptoru aplikace. Další informace o typech souborů systému Windows naleznete v části Knihovna MSDN: Typy souborů a přiřazení souborů Registrace obslužné rituny URI Aby mohla aplikace zpracovat spuštění adresy URL pomocí daného schématu URI, musí instalační program nastavit požadované položky registru. Další informace o registraci aplikace pro zpracování schématu URI naleznete v tématu Knihovna MSDN: Registrace aplikace v protokolu URL Vytvoření kaptivního balíčku běhového prostředí v systému Mac OS X Chcete-li vytvořit kaptivní balíček běhového prostředí systému Mac OS X, je nutné zabalit aplikace při spuštění v operačním systému Macintosh. Zabalte aplikaci pomocí cíle bundle nástroje ADT: adt -package -keystore ../cert.p12 -storetype pkcs12 -target bundle myApp.app myApp-app.xml myApp.swf icons resources Tento příkaz vytvoří svazek aplikace s názvem myApp.app. Svazek obsahuje soubory pro vaši aplikaci spolu se soubory běhového prostředí. Můžete spustit aplikaci dvojitým kliknutím na ikonu myApp.app a nainstalovat ji přetažením do vhodného umístění, například do složky Applications (Aplikace). Pokud ale chcete zaregistrovat typy souborů nebo obslužné rutiny schématu URI, je nutné upravit soubor seznamu vlastností uvnitř balíku aplikace. Za účelem distribuce můžete vytvořit soubor bitové kopie disku (.dmg). Sada SDK prostředí Adobe AIR neposkytuje nástroje pro vytváření souboru DMG pro kaptivní balíček běhového prostředí. Přiřazení typu souboru Chcete-li přiřadit aplikaci k veřejným nebo vlastním typům souborů v systému Mac OS X, musíte upravit soubor info.plist ve svazku na nastavení vlastnosti CFBundleDocumentTypes. Viz Knihovna vývojáře Mac OS X: reference klíčů seznamu informačních vlastností, CFBundleURLTypes. Registrace obslužné rituny URI Aby mohla aplikace zpracovat spouštění adresy URL daného schématu URI, je nutné upravit soubor info.plist ve svazku na nastavení vlastnosti CFBundleURLTypes. Viz Knihovna vývojáře Mac OS X: reference klíčů seznamu informačních vlastností, CFBundleURLTypes. Poslední aktualizace 31.8.2016 61 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače Distribuce balíčků aplikace AIR pro stolní počítače Aplikace AIR mohou být distribuovány jako balíček AIR, který obsahuje kód aplikace a veškeré prostředky. Tento balíček můžete distribuovat prostřednictvím jakýchkoliv obvyklých prostředků, například stažením, odesláním emailem, nebo pomocí fyzických médií, například disku CD-ROM. Uživatelé mohou aplikaci nainstalovat poklepáním na soubor AIR. Můžete použít rozhraní API integrovaného prohlížeče AIR (knihovnu jazyka ActionScript založenou na webu) k povolení instalace aplikace AIR (a v případě potřeby prostředí Adobe® AIR®) pro uživatele kliknutím na jeden odkaz na webové stránce. Aplikaci AIR lze také zabalit a distribuovat jako nativní instalační program (jinými slovy, jako soubory EXE v systému Windows, soubory DMG v systému Mac a soubory DEB nebo RPM v systému Linux). Nativní instalační balíčky můžete distribuovat a na instalovat podle příslušných konvencí platformy. Při distribuci aplikace jako nativního balíčku dojde ke ztrátě některých výhod formátu souboru AIR. Konkrétně, jediný instalační soubor již nelze použít na většině platforem, nelze již použít rozhraní aktualizace AIR a rozhraní API integrovaného prohlížeče. Instalace a spuštění aplikace AIR v počítači Soubor AIR můžete jednoduše odeslat příjemci. Soubor AIR můžete například odeslat jako přílohu e-mailu nebo jako odkaz na webové stránce. Jakmile si uživatel stáhne aplikaci AIR, řídí se pro instalaci těmito pokyny: 1 Poklepejte na soubor AIR. Prostředí Adobe AIR musí již být v počítači nainstalováno. 2 V okně instalace ponechte zvolené výchozí nastavení a klepněte na tlačítko Pokračovat. V OS Windows provede AIR automaticky následující: • Nainstaluje aplikaci do adresáře Program Files • Vytvoří pro aplikaci odkaz na pracovní ploše • Vytvoří odkaz v nabídce Start • Přidá záznam pro aplikaci do ovládacího panelu Přidat / Odebrat programy V OS Mac je aplikace implicitně přidána do adresáře Aplikace. Jestliže je aplikace již nainstalovaná, umožní instalátor uživateli vybrat si mezi spuštěním stávající verze aplikace nebo aktualizací na verzi ve staženém souboru AIR. Instalátor určí aplikaci pomocí ID aplikace a ID vydavatele v souboru AIR. 3 Po dokončení instalace klepněte na možnost Dokončit. V OS Mac potřebuje uživatel pro instalaci aktualizované verze aplikace odpovídající systémová oprávnění pro instalaci do adresáře aplikace. V systémech Windows a Linux potřebuje uživatel oprávnění správce. Aplikace může také nainstalovat novou verzi skrze jazyk ActionScript nebo JavaSript. Další informace naleznete v části „Aktualizace aplikací AIR“ na stránce 255. Jakmile je aplikace AIR nainstalována, uživatel jednoduše poklepe na ikonu aplikace pro její spuštění, jako v případě jakékoliv jiné aplikace pracovní plochy. • V OS Windows poklepejte na ikonu aplikace (která je buď nainstalovaná na pracovní ploše nebo ve složce) nebo vyberte aplikaci z nabídky Start. • V systému Linux poklepejte na ikonu aplikace (která je buď nainstalovaná na pracovní ploše nebo ve složce) nebo vyberte aplikaci z nabídky aplikací. Poslední aktualizace 31.8.2016 62 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro stolní počítače • V OS Mac poklepejte na aplikaci ve složce, do které byla nainstalovaná. Výchozím instalačním adresářem je adresář /Aplikace. Poznámka: V operačním systému Linux lze instalovat pouze aplikace AIR vyvinuté pro prostředí AIR 2.6 nebo starší. Funkce AIR hladká instalace umožňuje uživateli nainstalovat aplikaci AIR klepnutím na odkaz na webové stránce. Funkce AIR iniciace prohlížečeumožňuje uživateli spustit nainstalovanou aplikaci AIR klepnutím na odkaz na webové stránce. Tyto funkce jsou popsány v následující části. Instalace a spuštění aplikací AIR pro stolní počítač z webové stránky Rozhraní API integrovaného prohlížeče aplikace AIR umožňuje nainstalovat a spustit aplikaci AIR z webové stránky. Rozhraní API integrovaného prohlížeče aplikace AIR je k dispozici v knihovně SWF, air.swf, která je hostována systémem Adobe. Sada AIR SDK obsahuje ukázkovou štítkovou aplikaci používající tuto knihovnu k instalaci, aktualizaci nebo spuštění aplikace AIR (a v případě potřeby i běhového modulu). Můžete upravit zadanou ukázkovou štítkovou aplikaci nebo vytvořit vlastní webovou aplikaci využívající knihovnu online air.swf přímo. Libovolnou aplikaci AIR lze nainstalovat prostřednictvím štítku webové stránky. Pomocí webového štítku však lze spustit pouze aplikace, které obsahují element <allowBrowserInvocation>true</allowBrowserInvocation> ve svém souboru deskriptoru aplikace. Další témata Nápovědy „Rozhraní API integrovaného prohlížeče AIR.SWF“ na stránce 246 Nasazení v podnikovém prostředí pro stolní počítače IT správci mohou nainstalovat runtime Adobe AIR a aplikace AIR tiše pomocí standardních nástrojů nasazení plochy. IT správci mohou provést následující: • Tiše nainstalovat runtime Adobe AIR pomocí nástrojů, například Microsoft SMS, IBM Tivoli, nebo jakýchkoliv nástrojů nasazení, které umožňují tiché instalace používající počáteční zavádění. • Tiše nainstalovat aplikaci AIR pomocí stejných nástrojů použitých k nasazení runtime Více informací naleznete v tématu Příručky správce Adobe AIR (http://www.adobe.com/go/learn_air_admin_guide_cz). Protokoly o instalaci pro stolní počítače Protokoly o instalaci se zaznamenávají buď při instalaci samotného běhového modulu AIR nebo aplikace AIR. Chceteli stanovit příčiny jakýchkoliv problémů, které mohou při instalaci nebo aktualizaci nastat, prozkoumejte soubory protokolů. Soubory protokolů se vytvoří v následujících místech: • Mac: standardní systémový protokol (/private/var/log/system.log) Protokol systému Mac můžete zobrazit otevřením aplikace konzoly (obvykle se nachází ve složce Nástroje). • Windows XP: C:\Documents and Settings\<jméno uživatele>\Local Settings\Application Data\Adobe\AIR\logs\Install.log • Windows Vista, Windows 7: C:\Users\<jméno • Linux: /home/<jméno uživatele>\AppData\Local\Adobe\AIR\logs\Install.log uživatele>/.appdata/Adobe/AIR/Logs/Install.log Poznámka: Tyto soubory protokolu nebyly vytvářeny ve starších verzích AIR než AIR 2. Poslední aktualizace 31.8.2016 63 Kapitola 7: Vývoj aplikací AIR pro mobilní zařízení Aplikace AIR v mobilních zařízeních se nasazují jako nativní aplikace. Používají formát aplikace zařízení, nikoli formát souboru AIR. Aktuálně prostředí AIR podporuje balíčky Android APK a balíčky iOS IPA. Po vytvoření prodejní verze balíčku aplikace můžete aplikaci distribuovat prostřednictvím standardního mechanismu platformy. V případě systému Android to obvykle znamená Android Market; v případě systému iOS se jedná o Apple App Store. K vytváření aplikací AIR pro mobilní zařízení můžete použít sadu AIR SDK a aplikaci Flash Professional, Flash Builder nebo jiný nástroj pro vývoj jazyka ActionScript. Mobilní aplikace AIR založené na jazyce HTML nejsou aktuálně podporovány. Poznámka: Pro tablet BlackBerry Playbook poskytuje společnost Research In Motion (RIM) vlastní sadu SDK pro vývoj aplikací AIR. Informace o vývoji pro tablety Playbook naleznete v tématu RIM: BlackBerry Tablet OS Development (RIM: Vývoj operačního systému pro tablet BlackBerry). Poznámka: Tento dokument popisuje, jak vyvíjet aplikace pro systém iOS pomocí sady AIR 2.6 SDK nebo novější. Aplikace vytvořené pomocí prostředí AIR 2.6+ lze instalovat do zařízení iPhone 3G, iPhone 4 a iPad se systémem iOS 4 nebo novějším. K vývoji aplikací AIR pro starší verze systému iOS je nutné použít nástroj AIR 2 Packager for iPhone, jak je popsáno v tématu Vytváření aplikací pro zařízení iPhone. Další informace o doporučených postupech při ochraně osobních údajů najdete v příručce k ochraně osobních údajů pro sadu Adobe AIR SDK. Úplné požadavky na systém pro spouštění aplikací AIR naleznete v tématu Systémové požadavky prostředí Adobe AIR. Nastavení vývojového prostředí Mobilní platformy mají další požadavky na nastavení, a to nad rámec obvyklého nastavení vývojového prostředí AIR, Flex a Flash. (Další informace o nastavení základního vývojového prostředí AIR naleznete v části „Nástroje řešení Adobe Flash Platform pro vývoj aplikací AIR“ na stránce 16.) Nastavení systému Android V prostředí AIR 2.6+ normálně není vyžadováno žádné speciální nastavení pro Android. Nástroj ADB pro Android je obsažený v sadě SDK pro prostředí AIR (ve složce lib/android/bin). Sada AIR SDK využívá nástroj ADB k instalaci, odinstalaci a spuštění balíčků aplikací v zařízení. Nástroj ADB můžete také použít k zobrazení systémových protokolů. Chcete-li vytvořit a spustit emulátor systému Android, je nutné stáhnout samostatnou sadu Android SDK. Pokud aplikace přidá k elementu <manifestAdditions> v deskriptoru aplikace elementy, které současná verze prostředí AIR nerozpozná jako platné, bude třeba nainstalovat novější verzi sady Android SDK. Nastavte proměnnou prostředí AIR_ANDROID_SDK_HOME nebo parametr příkazového řádku -platformsdk na cestu k sadě SDK. Balicí nástroj pro aplikace AIR, ADT, použije tuto sadu SDK k ověření položek v elementu <manifestAdditions>. V prostředí AIR 2.5 je nutné stáhnout samostatnou kopii sady Android SDK ze služby Google. Proměnnou prostředí AIR_ANDROID_SDK_HOME můžete nastavit tak, aby odkazovala na složku Android SDK. Pokud tuto proměnnou prostředí nenastavíte, je třeba zadat cestu k sadě Android SDK v argumentu -platformsdk příkazového řádku nástroje ADT. Poslední aktualizace 31.8.2016 64 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Další témata Nápovědy „Proměnné prostředí nástroje ADT“ na stránce 185 „Proměnné prostředí pro cestu“ na stránce 301 Nastavení systému iOS Chcete-li v zařízení nainstalovat a otestovat aplikaci iOS a tuto aplikaci distribuovat, je třeba, abyste se připojili k programu Apple iOS Developer (což je placená služba). Jakmile se k programu iOS Developer připojíte, získáte přístup k portálu iOS Provisioning Portal, kde můžete od společnosti Apple získat následující položky a soubory, které jsou nutné pro instalaci aplikace v zařízení za účelem testování a pro následnou distribuci. Tyto položky a soubory zahrnují: • vývojářské a distribuční certifikáty, • ID aplikací, • prováděcí soubory pro vývoj a distribuci. Faktory ovlivňující návrh mobilních aplikací Provozní kontext a fyzikální vlastnosti mobilních zařízení vyžadují pečlivé kódování a navrhování. Například je mimořádně důležité zjednodušit kód tak, aby se prováděl co nejrychleji. Optimalizací kódu toho samozřejmě lze docílit. Rovněž platí, že inteligentní řešení, které pracuje v rámci omezení daných zařízením, může přispět k tomu, aby vizuální prezentace nepřetěžovala systém vykreslování. Kód Zrychlení běhu kódu je vždy prospěšné, avšak vzhledem k pomalejší rychlosti procesoru u většiny mobilních zařízení se přínos úsilí věnovaného psaní jednoduchého kódu dále zvyšuje. Kromě toho jsou mobilní zařízení téměř vždy napájena z baterií. Při dosažení stejného výsledku prostřednictvím menšího množství operací se spotřebuje méně energie z baterií. Návrh Při navrhování uživatelského rozhraní aplikace je třeba vzít v úvahu faktory, jako je malá velikost obrazovky, režim interakce ve formě dotykové obrazovky a dokonce i neustále se měnící prostředí mobilních uživatelů. Kód i návrh Pokud aplikace používá animace, je velmi důležitá optimalizace vykreslování. Samotná optimalizace kódu však často nestačí. Vizuální aspekty aplikace je třeba navrhnout tak, aby je kód mohl vykreslovat efektivně. Důležité postupy optimalizace jsou popsány v průvodci optimalizací obsahu na platformě Flash. Postupy uvedené v tomto průvodci se týkají veškerého obsahu Flash a AIR, ale jejich význam je naprosto zásadní pro vývoj aplikací, které mají dobře fungovat v mobilních zařízeních. • Paul Trani: Tips and Tricks for Mobile Flash Development (Tipy a triky pro vývoj obsahu Flash pro mobilní zařízení) • roguish: GPU Test App AIR for Mobile (Testovací aplikace GPU pro prostředí AIR pro mobilní zařízení) • Jonathan Campos: Optimization Techniques for AIR for Android apps (Optimalizační postupy v prostředí AIR pro aplikace Android) • Charles Schulze: AIR 2.6 Game Development: iOS included (Vývoj her pro prostředí AIR 2.6: včetně systému iOS) Poslední aktualizace 31.8.2016 65 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Životní cyklus aplikace Když aplikace ztratí fokus ve prospěch jiné aplikace, prostředí AIR sníží snímkový kmitočet na 4 snímky za sekundu a zastaví vykreslování grafiky. Při poklesu pod tento snímkový kmitočet mají síťová a soketová připojení datových proudů tendenci se přerušit. Pokud vaše aplikace taková připojení nepoužívá, lze snímkový kmitočet omezit ještě více. Je-li to vhodné, měli byste zastavit přehrávání zvuku a odstranit posluchače snímačů geolokace a akcelerometru. Objekt AIR NativeApplication odesílá události aktivace a deaktivace. Tyto události slouží k řízení přechodu mezi aktivním stavem a stavem na pozadí. Většina mobilních operačních systémů ukončí aplikace na pozadí bez předchozího upozornění. Při častém ukládání stavu aplikace by se aplikace měla dokázat obnovit do přiměřeného stavu, ať již se vrací z pozadí do aktivního stavu, nebo se spouští znovu. Hustota informací I když mají větší hustotu obrazových bodů (obr. body na palec), je fyzická velikost obrazovek mobilních zařízení menší než u stolních počítačů. Stejná velikost písma vyprodukuje písmena, která jsou na displeji mobilního zařízení fyzicky menší než na stolním počítači. Často je nutné použít větší písmo, aby byla zajištěna čitelnost. Obecně je nejmenší velikost písma, které lze snadno číst, 14 bodů. Mobilní zařízení jsou často používána na cestách nebo za špatných světelných podmínek. Realisticky proto zvažte, jaké množství informací lze na obrazovce čitelně zobrazit. Může jich být méně než u obrazovky se stejnými rozměry v obrazových bodech ve stolním počítači. Zvažte také, že když se uživatel dotýká obrazovky, část displeje zakrývá jeho prst a ruka. Interaktivní prvky umístěte po stranách a v dolní části obrazovky, pokud má s nimi uživatel pracovat déle než se jen na okamžik dotknout. Zadávání textu Mnoho zařízení používá pro zadávání textu virtuální klávesnici. Virtuální klávesnice zakrývají část obrazovky a jejich použití je často neobratné. Vyhněte se využívání událostí klávesnice (kromě programovatelných kláves). Zvažte, zda nemůžete namísto vstupních textových polí implementovat alternativní možnosti. Pokud má například uživatel zadávat číselnou hodnotu, textové pole nepotřebujete. Můžete hodnotu zvyšovat nebo snižovat pomocí dvou tlačítek. Programovatelné klávesy Mobilní zařízení obsahují různé počty programovatelných kláves. Programovatelné klávesy jsou tlačítka, která jsou nastavitelná na odlišné funkce. Při využití těchto kláves ve vaší aplikaci dodržujte konvence platformy. Změny orientace obrazovky Mobilní obsah lze zobrazovat v orientaci na výšku nebo na šířku. Zvažte, jakým způsobem bude aplikace se změnami orientace obrazovky nakládat. Další informace naleznete v tématu Orientace plochy. Ztlumení obrazovky Prostředí AIR nezabrání automaticky ve ztlumení obrazovky při přehrávání videa. To, zda zařízení vstoupí do režimu snížené spotřeby, můžete řídit pomocí vlastnosti systemIdleMode objektu AIR NativeApplication. (Na některých platformách je nutné si vyžádat příslušné oprávnění, aby tato funkce fungovala.) Poslední aktualizace 31.8.2016 66 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Příchozí volání Běhový modul AIR automaticky ztlumí zvuk, pokud uživatel uskuteční nebo přijme telefonní hovor. V systému Android je nutné v deskriptoru aplikace nastavit oprávnění READ_PHONE_STATE, pokud aplikace na pozadí přehrává zvuk. V opačném případě bude systém Android bránit běhovému modulu v detekci telefonních hovorů a automatickém ztlumení zvuku. Viz „Oprávnění systému Android“ na stránce 74. Oblasti dotyku Při návrhu tlačítek a dalších elementů uživatelského rozhraní, na něž budou uživatelé poklepávat, zvažte velikost oblastí dotyku. Tyto elementy mají mít dostatečnou velikost na to, aby je bylo možno na dotykové obrazovce pohodlně aktivovat prstem. Rovněž se ujistěte, zda máte mezi oblastmi dostatečné mezery. U typické obrazovky telefonu s vysokou hodnotou dpi by plocha oblastí dotyku měla být zhruba 44 až 57 obrazových bodů po každé straně. Instalační velikost balíčku aplikace Mobilní zařízení mají obvykle mnohem méně místa v úložišti pro instalaci aplikací a dat než stolní počítače. Minimalizujte velikost balíčku odstraněním nepoužívaných datových zdrojů a knihoven. V systému Android se balíček aplikace při její instalaci neextrahuje do samostatných souborů. Místo toho se datové zdroje dekomprimují do dočasného úložiště, když je k nim získán přístup. Aby se minimalizoval dopad takto dekomprimovaných datových zdrojů na úložiště, zavřete po úplném načtení datových zdrojů souborové a URL streamy. Přístup k souborovému systému V různých operačních systémech pro mobilní zařízení jsou zavedena různá omezení souborového systému a tato omezení se většinou liší od omezení zavedených v operačních systémech pro stolní počítače. Vhodné místo pro ukládání souborů a dat je proto na každé platformě jiné. Jedním z důsledků rozdílů souborových systémů je, že zástupci pro běžné adresáře, jež poskytuje třída AIR File, nejsou vždy k dispozici. Následující tabulka uvádí zástupce, které lze použít v systémech Android a iOS: Android iOS File.applicationDirectory Pouze pro čtení prostřednictvím adresy URL (cesta není nativní) Pouze pro čtení File.applicationStorageDirectory K dispozici K dispozici File.cacheDirectory K dispozici K dispozici File.desktopDirectory Kořen sdcard Není k dispozici File.documentsDirectory Kořen sdcard K dispozici File.userDirectory Kořen sdcard Není k dispozici File.createTempDirectory() K dispozici K dispozici File.createTempFile() K dispozici K dispozici Pokyny společnosti Apple pro aplikace systému iOS obsahují konkrétní pravidla výběru umístění úložišť pro soubory v různých situacích. Jeden pokyn například udává, že se do adresáře určeného pro vzdálené zálohování mohou ukládat pouze soubory obsahující data zadaná uživatelem nebo data, která nelze vytvořit nebo stáhnout znovu. Informace o dodržování pokynů společnosti Apple pro zálohování a ukládání souborů do vyrovnávací paměti naleznete v části Řízení zálohování a ukládání souborů do vyrovnávací paměti. Poslední aktualizace 31.8.2016 67 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Komponenty uživatelského rozhraní Společnost Adobe vyvinula verzi prostředí Flex optimalizovanou pro mobilní zařízení. Další informace naleznete v článku Vývoj mobilních aplikací pomocí produktů Flex a Flash Builder. K dispozici jsou také projekty komunitních komponent vhodné pro mobilní aplikace. Patří sem: • Ovládací prvky rozhraní Feathers pro prostředí Starling, autor: Josh Tynjala • Verze objektů Minimal Comps s možnosti použití vzhledů, autor: Derrick Grigg • Součásti as3flobile, autor: Todd Anderson Akcelerované vykreslování grafiky Stage 3D Od verze AIR 3.2 podporuje prostředí AIR pro mobilní zařízení akcelerované vykreslování grafiky Stage 3D. Rozhraní API jazyka ActionScript Stage3D představuje sadu nízkoúrovňových rozhraní API s akcelerací karty GPU, ve kterých jsou k dispozici pokročilé možnosti pro 2D a 3D grafiku. Tato nízkoúrovňová rozhraní API poskytují vývojářům možnost pružně využít hardwarovou akceleraci karet GPU a dosáhnout podstatného zvýšení výkonu. Lze také využít herní moduly, které podporují rozhraní API jazyka ActionScript Stage3D. Další informace naleznete na stránce Gaming engines, 3D, and Stage 3D (Herní moduly, 3D a Stage 3D). Vyhlazování videa Z důvodu vylepšení výkonu je vyhlazování videa v prostředí AIR vypnuto. Nativní funkce AIR 3.0+ Řada mobilních platforem poskytuje funkce, které dosud nejsou přístupné prostřednictvím standardního rozhraní API prostředí AIR. Od verze AIR 3 můžete rozšířit prostředí AIR o vlastní nativní knihovny kódu. Tyto nativní knihovny rozšíření mohou přistupovat k funkcím, které jsou dostupné v operačním systému, nebo jsou dokonce specifické pro dané zařízení. Nativní rozšíření může být napsáno v jazyce C pro systém iOS nebo v jazyce Java či C pro systém Android. Informace o vývoji nativních rozšíření naleznete v části Úvod do nativních rozšíření v prostředí Adobe AIR. Pracovní postup vytváření aplikací AIR pro mobilní zařízení Pracovní postup pro vytvoření aplikace AIR pro mobilní (nebo jiná) zařízení je obecně velmi podobný postupu při vytváření aplikace pro stolní počítače. Zásadní rozdíly v pracovním postupu nastávají až ve chvíli, kdy je třeba aplikaci zabalit, vyladit a nainstalovat. Například aplikace AIR pro systém Android používají nativní formát balíčku Android APK, nikoli formát balíčku prostředí AIR. Proto také používají standardní instalační a aktualizační mechanismy systému Android. Prostředí AIR pro systém Android Pro vývoj aplikace AIR pro systém Android jsou typické tyto kroky: • vytvoření kódu jazyka ActionScript nebo MXML, Poslední aktualizace 31.8.2016 68 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení • vytvoření souboru deskriptoru aplikace AIR (pomocí oboru názvů 2.5 nebo novějšího), • kompilace aplikace, • zabalení aplikace jako balíčku Android (.apk), • instalace běhového modulu AIR do zařízení nebo emulátoru systému Android (pokud používáte externí běhový modul – vázaný běhový modul je výchozí od verze AIR 3.7), • instalace aplikace v zařízení (nebo emulátoru Android), • Spusťte aplikaci v zařízení. K provedení těchto kroků můžete použít aplikaci Adobe Flash Builder či Adobe Flash Professional CS5 nebo nástroje příkazového řádku. Jakmile je aplikace AIR dokončena a zabalena jako soubor APK, můžete ji odeslat na web Android Market nebo distribuovat jiným způsobem. Prostředí AIR pro systém iOS Pro vývoj aplikací AIR pro systém iOS jsou typické tyto kroky: • instalace aplikace iTunes, • generování požadovaných vývojářských souborů a ID na portálu iOS Apple Provisioning Portal; tyto položky zahrnují: • vývojářský certifikát, • ID aplikace, • prováděcí profil, (Při vytváření prováděcího profilu je nutné uvést ID všech testovacích zařízení, ve kterých se chystáte aplikaci nainstalovat.) • převedení vývojářského certifikátu a soukromého klíče na soubor úložiště klíčů P12, • vytvoření kódu aplikace v jazyce ActionScript nebo MXML, • kompilace aplikace v kompilátoru jazyka ActionScript nebo MXML, • vytvoření obrazu ikony a obrazu úvodní obrazovky pro aplikaci, • vytvoření deskriptoru aplikace (pomocí oboru názvů 2.6 nebo novějšího), • zabalení souboru IPA pomocí nástroje ADT, • umístění prováděcího profilu na testovací zařízení pomocí aplikace iTunes, • instalace a testování aplikace v zařízení iOS. K instalaci souboru IPA lze použít přehrávač iTunes nebo nástroj ADT přes rozhraní USB (podpora USB v prostředí AIR 3.4 a vyšších). Po dokončení můžete aplikaci AIR znovu zabalit pomocí distribučního certifikátu a prováděcího profilu. Poté je připravena k odeslání do obchodu Apple App Store. Poslední aktualizace 31.8.2016 69 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Nastavení vlastností mobilní aplikace Stejně jako u jiných aplikací AIR nastavíte základní vlastnosti aplikace v jejím souboru deskriptoru. Mobilní aplikace ignorují některé vlastnosti specifické pro stolní počítače, například velikost a průhlednost okna. Mobilní aplikace mohou také používat své vlastní vlastnosti specifické pro platformu. Můžete například zahrnout element android pro aplikace Android a element iPhone pro aplikace iOS. Společná nastavení Několik nastavení deskriptoru aplikace je důležitých pro všechny aplikace pro mobilní zařízení. Vyžadovaná verze běhového modulu AIR Určete verzi běhového modulu AIR požadovanou pro aplikaci využívající obor názvů souboru deskriptoru aplikace. Obor názvů, přiřazený elementu application, určuje z velké části, které funkce může daná aplikace používat. Pokud například aplikace používá obor názvů AIR 2.7 a uživatel má nainstalovánu některou pozdější verzi, pak bude aplikace nadále vykazovat chování prostředí AIR 2.7 (a to i v případě, že chování se v budoucí verzi změnilo). Aplikace získá přístup k novému chování a funkcím pouze v případě, že změníte obor názvů a publikujete aktualizaci. Důležitou výjimkou z tohoto pravidla jsou opravy zabezpečení. U zařízení, která používají běhový modul oddělený od aplikace, jako je Android v prostředí AIR 3.6 nebo starším, bude uživatel, který nemá požadovanou verzi, vyzván k instalaci nebo upgradu prostředí AIR. V zařízeních zahrnujících běhový modul, jako je například zařízení iPhone, tato situace nenastane (protože požadovaná verze je zabalena přímo s aplikací). Poznámka: (AIR 3.7 a vyšší) Běhový modul s aplikacemi platformy Android zabalí ve výchozím nastavení nástroj ADT. Určete obor názvů pomocí atributu xmlns kořenového elementu application. Pro mobilní aplikace by se měly používat následující obory názvů (v závislosti na cílové mobilní platformě): iOS 4+ and iPhone 3Gs+ or Android: <application xmlns="http://ns.adobe.com/air/application/2.7"> iOS only: <application xmlns="http://ns.adobe.com/air/application/2.0"> Poznámka: Podporu pro zařízení iOS 3 zajišťuje nástroj Packager pro sadu iPhone SDK, který je založen na sadě AIR 2.0 SDK. Informace o vytváření aplikací AIR pro systém iOS 3 naleznete v tématu Vytváření aplikací pro zařízení iPhone. Sada AIR 2.6 SDK (a novější) podporuje v zařízeních iPhone 3Gs, iPhone 4 a iPad systém iOS 4 a novější. Další témata Nápovědy „application“ na stránce 208 Identita aplikace Několik nastavení by mělo být jedinečných pro každou aplikaci, kterou publikujete. Patří sem ID, název a název souboru. ID aplikací Android V systému Android se ID převádí na název balíčku Android, a to přidáním prefixu „air.“ k ID aplikace AIR. Je-li tedy ID aplikace AIR com.example.MyApp, pak název balíčku Android je air.com.example.MyApp. <id>com.example.MyApp</id> <name>My Application</name> <filename>MyApplication</filename> Poslední aktualizace 31.8.2016 70 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Kromě toho platí, že pokud ID nepředstavuje přípustný název balíčku v operačním systému Android, převede se na přípustný název. Znaky spojovníků se změní na podtržítka a před počáteční číslice v libovolné komponentě ID se vloží velké písmeno „A“. Například ID 3-goats.1-boat se změní na název balíčku air.A3_goats.A1_boat. Poznámka: Na základě prefixu přidaného k ID aplikace lze aplikace AIR identifikovat na webu Android Market. Pokud nechcete, aby aplikace byla na základě prefixu identifikována jako aplikace AIR, musíte soubor APK rozbalit, změnit ID aplikace a znovu jej zabalit, jak je popsáno v článku Opt-out of AIR application analytics for Android (Odhlášení z analytiky aplikací AIR pro systém Android). ID aplikací iOS ID aplikace AIR nastavte tak, aby odpovídalo ID aplikace vytvořenému na portálu Apple iOS Provisioning Portal. ID aplikací iOS se skládají z ID zdroje balíku následovaného identifikátorem balíku. ID zdroje balíku představuje řetězec znaků, jako je 5RM86Z4DJM, který společnost Apple přidělí k ID aplikace. Identifikátor balíku obsahuje vámi vybraný název v obráceném stylu domény. Identifikátor balíku může být zakončen hvězdičkou (*) označující zástupné ID aplikace. Pokud identifikátor balíku končí na zástupný znak, můžete tento zástupný znak nahradit přípustným řetězcem. Například: • Pokud je ID aplikace Apple 5RM86Z4DJM.com.example.helloWorld, je nutné v deskriptoru aplikace použít řetězec com.example.helloWorld. • Pokud je ID aplikace Apple 96LPVWEASL.com.example.* (zástupné ID aplikace), můžete použít com.example.helloWorld nebo com.example.anotherApp či nějaké jiné ID začínající řetězcem com.example. • A konečně, pokud ID aplikace Apple tvoří jen ID zdroje balíku a zástupný znak, například 38JE93KJL.*, můžete použít libovolné ID aplikace v prostředí AIR. Při určování ID aplikace nezahrnujte tu část ID aplikace, která představuje zdroj balíku. Další témata Nápovědy „id“ na stránce 223 „filename“ na stránce 218 „name“ na stránce 231 Verze aplikace V prostředí AIR 2.5 a novějších zadejte verzi aplikace do elementu versionNumber. Element version již není možné používat. Při zadávání hodnoty elementu versionNumber je nutné použít posloupnost až tří čísel oddělených tečkami, například: „0.1.2“. Každý segment čísla verze může mít až tři číslice. (Jinými slovy, nejvyšší přípustné číslo verze je „999.999.999“.) Není nutné uvést všechny tři segmenty čísla; hodnoty „1“ a „1.0“ jsou také přípustná čísla verzí. Můžete také zadat popisek verze pomocí elementu versionLabel. Po přidání se popisek verze zobrazí místo čísla verze na místech, jako je informační obrazovka aplikace Android. Popisek verze musí být zadán pro aplikace, které jsou distribuovány pomocí webu Android Market. Pokud v deskriptoru aplikace AIR nezadáte hodnotu versionLabel, bude do pole pro popisek verze aplikace Android přiřazena hodnota versionNumber. <!-- AIR 2.5 and later --> <versionNumber>1.23.7<versionNumber> <versionLabel>1.23 Beta 7</versionLabel> V systému Android je hodnota versionNumber přeložena na celé číslo versionCode pomocí vzorce: a*1000000 + b*1000 + c, kde a, b a c jsou součásti čísla verze prostředí AIR: a.b.c. Poslední aktualizace 31.8.2016 71 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Další témata Nápovědy „version“ na stránce 239 „versionLabel“ na stránce 239 „versionNumber“ na stránce 239 Soubor SWF hlavní aplikace Soubor SWF hlavní aplikace určete v podřízeném elementu content elementu initialWindow. Pokud se zaměřujete na zařízení v mobilním profilu, je nutné soubor SWF použít (aplikace založené na kódu HTML nejsou podporovány). <initialWindow> <content>MyApplication.swf</content> </initialWindow> Soubor je nutné zahrnout do balíčku AIR (pomocí nástroje ADT nebo vašeho prostředí IDE). Prosté uvedení názvu v deskriptoru aplikace nevede k automatickému zahrnutí souboru do balíčku. Vlastnosti hlavní obrazovky Několik podřízených elementů elementu initialWindow řídí počáteční vzhled a chování hlavní obrazovky aplikace. • aspectRatio – určuje, zda by se aplikace měla na začátku zobrazovat ve formátu na výšku (výška větší než šířka), ve formátu na šířku (výška menší než šířka) nebo v libovolném formátu (vymezená plocha má automaticky všechny orientace). <aspectRatio>landscape</aspectRatio> • autoOrients – Určuje, zda se má orientace plochy automaticky měnit, když uživatel otočí zařízení nebo provede jiné gesto související s orientací, například otevře nebo zavře výsuvnou klávesnici. Je-li nastavena hodnota false, což je výchozí nastavení, orientace plochy se nebude měnit se zařízením. <autoOrients>true</autoOrients> • depthAndStencil – určuje, zda se má použít vyrovnávací paměť pro hloubku nebo šablonu. Tyto vyrovnávací paměti se běžně používají při práci s 3D obsahem. <depthAndStencil>true</depthAndStencil> • fullScreen – Určuje, zda má aplikace zabírat celý displej zařízení, nebo zda jej má sdílet s běžnými prvky operačního systému, jako je například systémový stavový řádek. <fullScreen>true</fullScreen> • renderMode – Určuje, zda má běhový modul vykreslovat aplikaci pomocí grafického procesoru (GPU), nebo hlavního procesoru (CPU). Obecně platí, že vykreslování pomocí procesoru GPU je rychlejší, ale některé funkce, například režimy prolnutí a filtry PixelBender, nejsou v režimu GPU k dispozici. Kromě toho mají různá zařízení a ovladače zařízení nestejné možnosti a omezení režimu GPU. Aplikaci je vždy třeba otestovat na co nejširší škále zařízení, zejména při použití režimu GPU. Režim vykreslování můžete nastavit na hodnoty gpu, cpu, direct nebo auto. Výchozí hodnota je auto, která v současné době vrací do režimu cpu. Poznámka: Aby bylo možné využít akceleraci obsahu Flash pomocí GPU v prostředí AIR pro mobilní platformy, společnost Adobe doporučuje, abyste použili volbu renderMode="direct" (tzn. Stage3D) a nikoli renderMode="gpu". Společnost Adobe oficiálně podporuje a doporučuje tato prostředí založená na rozhraní Stage3D – Starling (2D) a Away3D (3D). Podrobnější informace o rozhraní Stage3D a prostředí Starling/Away3D naleznete na webu http://gaming.adobe.com/getstarted/. <renderMode>direct</renderMode> Poslední aktualizace 31.8.2016 72 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Poznámka: Pro aplikace spouštěné na pozadí nelze použít nastavení renderMode=”direct”. Omezení režimu GPU: • Platforma Flex režim vykreslení GPU nepodporuje. • Nejsou podporovány filtry. • Nejsou podporovány prolnutí PixelBender a výplně. • Nejsou podporovány následující režimy prolnutí: Vrstva, Alfa, Vymazat, Překrýt, Tvrdé světlo, Zesvětlit a Ztmavit • Použití režimu vykreslování GPU v aplikaci, která přehrává video, není doporučeno. • V režimu vykreslování GPU nejsou při otevření virtuální klávesnice textová pole správně přesunuta do viditelného umístění. Chcete-li zajistit, aby při zadávání textu uživatelem bylo vaše textové pole viditelné, použijte vlastnost softKeyboardRect vymezené plochy a události softwarové klávesnice k přesunutí textového pole do viditelné oblasti. • Pokud procesor GPU nedokáže objekt zobrazení vykreslit, vůbec se nezobrazí. Je-li například u objektu zobrazení použit filtr, objekt se nezobrazí. Poznámka: Implementace GPU pro systém iOS v prostředí AIR 2.6+ se dost liší od implementace použité ve starší verzi AIR 2.0. Při optimalizaci je třeba zvážit jiné faktory. Další témata Nápovědy „aspectRatio“ na stránce 211 „autoOrients“ na stránce 211 „depthAndStencil“ na stránce 215 „fullScreen“ na stránce 221 „renderMode“ na stránce 233 Podporované profily Můžete přidat element supportedProfiles, pomocí kterého lze určit profily zařízení podporované danou aplikací. Pro mobilní zařízení použijte profil mobileDevice. Při spuštění aplikace pomocí programu Adobe Debug Launcher (ADL) použije tento nástroj první profil v seznamu jako aktivní. Při spuštění programu ADL můžete také použít příznak -profile a vybrat konkrétní profil v seznamu podporovaných. Pokud se aplikace spouští ve všech profilech, můžete element supportedProfiles úplně vynechat. Program ADL v tom případě jako výchozí aktivní profil použije profil pro stolní počítače. Chcete-li určit, že aplikace podporuje profil pro mobilní zařízení i stolní počítače, a vy obvykle chcete aplikaci testovat v mobilním profilu, přidejte následující element: <supportedProfiles>mobileDevice desktop</supportedProfiles> Další témata Nápovědy „supportedProfiles“ na stránce 236 „Profily zařízení“ na stránce 242 „Program AIR Debug Launcher (ADL)“ na stránce 157 Poslední aktualizace 31.8.2016 73 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Požadovaná nativní rozšíření Aplikace, které podporují profil mobileDevice mohou používat nativní rozšíření. Deklarujte všechna nativní rozšířená, která aplikace AIR používá, v deskriptoru aplikace. Následující příklad ukazuje syntaxi pro zadání dvou požadovaných nativních rozšíření: <extensions> <extensionID> com.example.extendedFeature</extensionID> <extensionID> com.example.anotherFeature</extensionID> </extensions> Element extensionID má stejnou hodnotu jako element id v souboru deskriptoru rozšíření. Soubor deskriptoru rozšíření je soubor XML s názvem extension.xml. Je zabalen v souboru ANE, který obdržíte od vývojáře nativního rozšíření. Chování virtuální klávesnice Nastavte element softKeyboardBehavior na hodnotu none, chcete-li zakázat chování spočívající v automatickém posouvání a změně velikosti, pomocí kterého běhový modul zajišťuje, že po aktivaci virtuální klávesnice zůstane textové pole s fokusem viditelné. Pokud zakážete automatické chování, bude za zajištění toho, aby při aktivaci klávesnice byla viditelná oblast vkládání textu nebo jiný relevantní obsah, odpovídat daná aplikace. Pomocí vlastnosti softKeyboardRect plochy ve spojení s vlastností SoftKeyboardEvent můžete rozpoznat, že se klávesnice otevřela, a určit plochu, kterou zakrývá. Chcete-li povolit automatické chování, nastavte element na hodnotu pan: <softKeyboardBehavior>pan</softKeyboardBehavior> Protože hodnota pan představuje výchozí hodnotu, lze automatické chování klávesnice povolit také vynecháním elementu softKeyboardBehavior. Poznámka: Používáte-li zároveň vykreslování GPU, chování typu pan není podporováno. Další témata Nápovědy „softKeyboardBehavior“ na stránce 235 Stage.softKeyboardRect SoftKeyboardEvent Nastavení systému Android Na platformě Android můžete v deskriptoru aplikace použít element android, abyste mohli přidat informace do manifestu aplikace Android, což je soubor vlastností aplikace používaný operačním systémem Android. Při vytváření balíčku APK nástroj ADT automaticky generuje soubor Manifest.xml systému Android. Prostředí AIR nastaví několik vlastností na hodnoty požadované pro fungování určitých funkcí. Veškeré další vlastnosti nastavené v části android deskriptoru aplikace AIR jsou přidány do odpovídající části souboru Manifest.xml. Poznámka: U většiny aplikací AIR je nutné v elementu android nastavit oprávnění systému Android požadovaná aplikací, ale obecně není třeba nastavovat žádné další vlastnosti. Lze nastavit pouze atributy, které přijímají řetězcové, celočíselné nebo booleovské hodnoty. Nastavení odkazů na zdroje není v balíčku aplikace podporováno. Poznámka: Běhový modul vyžaduje verzi sady SDK minimálně 14 nebo vyšší. Chcete-li vytvořit aplikaci pro vyšší verze, je třeba zajistit, aby manifest obsahoval <uses-sdk android:minSdkVersion=""></uses-sdk> správné odpovídající verze. Poslední aktualizace 31.8.2016 74 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Vyhrazená nastavení manifestu systému Android Prostředí AIR nastaví v generovaném dokumentu manifestu systému Android několik položek, které zajistí správné fungování této aplikace a běhového modulu. Nemůžete definovat následující nastavení: element manifest Nemůžete nastavit následující atributy elementu manifest: • package • android:versionCode • android:versionName • xmlns:android element activity Nemůžete nastavit následující atributy hlavního elementu activity: • android:label • android:icon element application Nemůžete nastavit následující atributy elementu application: • android:theme • android:name • android:label • android:windowSoftInputMode • android:configChanges • android:screenOrientation • android:launchMode Oprávnění systému Android Model zabezpečení systému Android vyžaduje, aby každá aplikace vyžadovala oprávnění při použití funkcí, které mají dopad na zabezpečení nebo ochranu soukromí. Tato oprávnění musejí být zadána při zabalování aplikace a není možné je měnit za běhu. Operační systém Android informuje uživatele, která oprávnění aplikace vyžaduje, když ji uživatel instaluje. Pokud oprávnění vyžadované pro funkci není požadováno, může operační systém Android vyvolat při přístupu aplikace k funkci výjimku, avšak tato výjimka není zaručena. Výjimky jsou předávány běhovým modulem do příslušné aplikace. V případě tiché chyby je zpráva o chybě oprávnění přidána do protokolu systému Android. V prostředí AIR zadáte oprávnění systému Android v elementu android deskriptoru aplikace. Pro přidávání oprávnění se používá následující formát (kde PERMISSION_NAME je název oprávnění systému Android): <android> <manifestAdditions> <![CDATA[ <manifest> <uses-permission android:name="android.permission.PERMISSION_NAME" /> </manifest> ]]> </manifestAdditions> </android> Poslední aktualizace 31.8.2016 75 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Příkazy uses-permissions uvnitř elementu manifest jsou přidány přímo do dokumentu manifestu systému Android. K použití různých funkcí prostředí AIR jsou vyžadována následující oprávnění: ACCESS_COARSE_LOCATION Umožňuje aplikaci získat přístup k údajům o umístění sítí WIFI a mobilních sítí prostřednictvím třídy Geolocation. ACCESS_FINE_LOCATION Umožňuje aplikaci získat přístup k údajům systému GPS prostřednictvím třídy Geolocation. ACCESS_NETWORK_STATE a ACCESS_WIFI_STATE Umožňují aplikaci získat přístup k informacím o sítích prostřednictvím třídy NetworkInfo. CAMERA Umožňuje aplikaci získat přístup k fotoaparátu či kameře. Poznámka: Když požádáte o oprávnění k používání funkce fotoaparátu či kamery, systém Android předpokládá, že fotoaparát či kameru vyžaduje také vaše aplikace. Pokud fotoaparát či kamera představuje volitelnou funkci dané aplikace, měli byste do manifestu pro fotoaparát či kameru přidat element uses-feature, ve kterém je atribut required nastaven na hodnotu false. Viz „Filtrování kompatibility systému Android“ na stránce 76. INTERNET Umožňuje aplikaci provádět síťové požadavky. Dále umožňuje vzdálené ladění. READ_PHONE_STATE Umožňuje běhovému modulu AIR ztlumit zvuk během telefonních volání. Pokud aplikace přehrává zvuk v době, kdy je na pozadí, nastavte toto oprávnění. RECORD_AUDIO Umožňuje aplikaci získat přístup k mikrofonu. WAKE_LOCK a DISABLE_KEYGUARD Umožňují aplikaci zabránit zařízení v přechodu do režimu spánku pomocí nastavení třídy SystemIdleMode. WRITE_EXTERNAL_STORAGE Umožňuje aplikaci zápis na externí paměťovou kartu v zařízení. Chcete-li například nastavit oprávnění pro aplikaci, která výslovně vyžaduje každé oprávnění, mohli byste do deskriptoru aplikace přidat následující obsah: <android> <manifestAdditions> <![CDATA[ <manifest> <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission <uses-permission </manifest> ]]> </manifestAdditions> </android> android:name="android.permission.ACCESS_COARSE_LOCATION" /> android:name="android.permission.ACCESS_FINE_LOCATION" /> android:name="android.permission.ACCESS_NETWORK_STATE" /> android:name="android.permission.ACCESS_WIFI_STATE" /> android:name="android.permission.CAMERA" /> android:name="android.permission.DISABLE_KEYGUARD" /> android:name="android.permission.INTERNET" /> android:name="android.permission.READ_PHONE_STATE" /> android:name="android.permission.RECORD_AUDIO" /> android:name="android.permission.WAKE_LOCK" /> android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> Další témata Nápovědy Zabezpečení a oprávnění systému Android Třída oprávnění v manifestu systému Android Poslední aktualizace 31.8.2016 76 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Vlastní schémata URI systému Android Pomocí vlastního schématu URI můžete aplikaci AIR spustit z webové stránky nebo nativní aplikace Android. Podpora vlastního identifikátoru URI je založena na elementech intent-filter zadaných v manifestu pro systém Android, takže tento postup nelze použít na jiných platformách. Chcete-li použít vlastní identifikátor URI, přidejte element intent-filter do bloku <android> v deskriptoru aplikace. Musí být zadány oba elementy intent-filter v následujícím příkladu. Příkaz <data android:scheme="mycustomuri"/> upravte tak, aby odrážel řetězec URI pro vlastní schéma. <android> <manifestAdditions> <![CDATA[ <manifest> <application> <activity> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.BROWSABLE"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="my-customuri"/> </intent-filter> </activity> </application> </manifest> ]]> </manifestAdditions> </android> Element intent-filter informuje operační systém Android, že daná aplikace je k dispozici pro provedení dané akce. V případě vlastního identifikátoru URI to znamená, že uživatel klepl na odkaz využívající dané schéma URI (a prohlížeč neví, jak tuto akci zpracovat). Je-li prostřednictvím vlastního identifikátoru URI vyvolána daná aplikace, objekt NativeApplication odešle událost invoke. Adresa URL odkazu, včetně parametrů dotazu, je umístěna v poli arguments objektu InvokeEvent. Můžete použít libovolný počet elementů intent-filter. Poznámka: Odkazy v instanci StageWebView nelze otevřít adresy URL, které používají vlastní schéma identifikátoru URI. Další témata Nápovědy Elementy intent-filter systému Android Akce a kategorie systému Android Filtrování kompatibility systému Android Operační systém Android určuje na základě řady elementů v souboru manifestu aplikace, zda je aplikace kompatibilní s daným zařízením. Přidání těchto informací do manifestu je volitelné. Jestliže tyto elementy nezahrnete, bude možné aplikaci nainstalovat do jakéhokoli zařízení Android. Nemusí však v jakémkoli zařízení Android správně fungovat. Například aplikace fotoaparátu či kamery nebude příliš užitečná v telefonu, který takovým vybavením nedisponuje. Manifest pro systém Android obsahuje tagy, které můžete použít pro filtrování: • supports-screens, Poslední aktualizace 31.8.2016 77 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení • uses-configuration, • uses-feature, • uses-sdk (v prostředí AIR 3+). Aplikace fotoaparátu či kamery Pokud pro svou aplikaci požadujete oprávnění k fotoaparátu či kameře, systém Android předpokládá, že aplikace vyžaduje všechny dostupné funkce kamery, včetně automatického zaostřování a blesku. Nevyžaduje-li aplikace všechny funkce fotoaparátu či kamery nebo představuje-li toto vybavení volitelnou funkci, je třeba pro ně nastavit různé elementy uses-feature, které budou indikovat, že jsou volitelné. V opačném případě uživatelé se zařízením, v němž chybí jedna funkce fotoaparátu či kamery nebo toto vybavení vůbec nemají, nebudou moci nalézt vaši aplikaci na webu Android Market. Následující příklad ilustruje, jak lze vyžadovat oprávnění k fotoaparátu či kameře a současně všechny funkce tohoto vybavení nastavit jako volitelné: <android> <manifestAdditions> <![CDATA[ <manifest> <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" android:required="false"/> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/> <uses-feature android:name="android.hardware.camera.flash" android:required="false"/> </manifest> ]]> </manifestAdditions> </android> Aplikace pro záznam zvuku Pokud požadujete oprávnění pro záznam zvuku, systém Android předpokládá, že aplikace vyžaduje také mikrofon. Pokud je záznam zvuku volitelnou funkcí aplikace, můžete přidat tag uses-feature, ve kterém učíte, že mikrofon není vyžadován. V opačném případě uživatelé se zařízením, které nemají mikrofon, nebudou moci nalézt vaši aplikaci na webu Android Market. Následující příklad ilustruje, jak lze vyžadovat oprávnění k používání mikrofonu a současně ponechat hardware mikrofonu jako volitelné vybavení: <android> <manifestAdditions> <![CDATA[ <manifest> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-feature android:name="android.hardware.microphone" android:required="false"/> </manifest> ]]> </manifestAdditions> </android> Poslední aktualizace 31.8.2016 78 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Další témata Nápovědy Vývojáři systému Android: Kompatibilita v systému Android Vývojáři systému Android: Konstanty názvů funkcí v systému Android Umístění instalace Můžete povolit, aby aplikace byla nainstalována nebo přesunuta na externí paměťovou kartu, a to nastavením atributu installLocation elementu manifest systému Android na hodnotu auto nebo preferExternal: <android> <manifestAdditions> <![CDATA[ <manifest android:installLocation="preferExternal"/> ]]> </manifestAdditions> </android> Operační systém Android nezaručuje, že aplikace bude nainstalována do externí paměti. Uživatel může aplikaci přesunout mezi interní a externí pamětí také pomocí aplikace pro nastavení systému. I v případě instalace do externí paměti budou mezipaměť a uživatelská data aplikace, jako je obsah adresáře appstorage, sdílené objekty a dočasné soubory, nadále uloženy v interní paměti. Chcete-li předejít využití příliš velké části interní paměti, postupujte při výběru dat, která se budou do adresáře úložiště aplikace ukládat, selektivně. Velké objemy dat by se měly ukládat na kartu SDCard, a to s použitím umístění File.userDirectory nebo File.documentsDirectory (obě se mapují ke kořenu karty SD v systému Android). Povolení přehrávače Flash Player a jiných zásuvných modulů v objektu StageWebView Zobrazení obsahu zásuvného modulu v objektu StageWebView vyžaduje, aby aplikace v systému Android 3.0+ zapnula v elementu application systému Android hardwarovou akceleraci. Chcete-li povolit vykreslování zásuvných modulů, nastavte atribut android:hardwareAccelerated elementu application na hodnotu true: <android> <manifestAdditions> <![CDATA[ <manifest> <application android:hardwareAccelerated="true"/> </manifest> ]]> </manifestAdditions> </android> Barevná hloubka Prostředí AIR 3+ Ve verzi AIR 3 a novějších nastaví běhový modul zobrazení na vykreslování 32bitových barev. Ve starších verzích prostředí AIR používá běhový modul 16bitové barvy. Pomocí elementu <colorDepth> v deskriptoru aplikace můžete dát běhovému modulu pokyn k používání 16bitových barev: <android> <colorDepth>16bit</colorDepth> <manifestAdditions>...</manifestAdditions> </android> Používání 16bitové barevné hloubky může zvýšit rychlost vykreslování, ale na úkor věrnosti barev. Poslední aktualizace 31.8.2016 79 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Nastavení systému iOS Nastavení, která se vztahují pouze na zařízení se systémem iOS, jsou umístěna v deskriptoru aplikace v elementu <iPhone>. Element iPhone může obsahovat elementy InfoAdditions, requestedDisplayResolution, Entitlements, externalSwfs a forceCPURenderModeForDevices jako podřízené elementy. Element InfoAdditions umožňuje určit dvojice klíč-hodnota, které budou přidány do souboru s nastavením Info.plist pro danou aplikaci. Následující hodnoty například nastavují styl stavového řádku aplikace a určují, že aplikace nevyžaduje stálý přístup wi-fi. <InfoAdditions> <![CDATA[ <key>UIStatusBarStyle</key> <string>UIStatusBarStyleBlackOpaque</string> <key>UIRequiresPersistentWiFi</key> <string>NO</string> ]]> </InfoAdditions> Nastavení InfoAdditions jsou uzavřena v tagu DATA. Element Entitlements umožňuje zadat dvojice klíč-hodnota přidané do souboru nastavení Entitlements.plist pro aplikaci. Nastavení v souboru Entitlements.plist poskytují aplikaci přístup k určitým funkcím systému iOS, jako jsou nabízená oznámení. Podrobné informace o nastaveních v souboru Info.plist a Entitlements.plist naleznete v dokumentaci pro vývojáře od společnosti Apple. Podpora úloh na pozadí v systému iOS AIR 3.3 Prostředí Adobe AIR 3.3 a vyšší podporuje v systému iOS zpracování více úloh současně tím, že umožní určité chování na pozadí: • zvuk, • umístění aktualizací, • sítě, • zakázání spouštění aplikací, které běží na pozadí. Poznámka: V případě souboru SWF verze 21 a jeho dřívějších verzí prostředí AIR nepodporuje spouštění na pozadí v systému iOS a Android, pokud je nastaven režim přímého vykreslování. V důsledku tohoto omezení nemohou aplikace založené na třídě Stage3D provádět úlohy na pozadí, jako je přehrávání zvuku, aktualizace polohy, odesílání nebo stahování v síti atd. Systém iOS neumožňuje volání OpenGL ES ani vykreslení volání na pozadí. Aplikace, které se pokoušejí o volání OpenGL na pozadí, jsou systémem iOS ukončovány. Systém Android nezakazuje aplikacím volání OpenGL ES na pozadí ani provádění jiných úloh na pozadí (například přehrávání zvuku). V případě souboru SWF verze 22 a vyšší mohou aplikace AIR pro mobilní zařízení provádět úlohy na pozadí, pokud je nastaven atribut renderMode s hodnotou direct. Běhový modul prostředí AIR pro systém iOS vede k chybě jazyka ActionScript (3768 – Během provádění úloh na pozadí nelze použít rozhraní API Stage3D), pokud jsou volání OpenGL ES prováděna na pozadí. V systému Android však nedochází k žádným chybám, protože jeho nativním aplikacím je povoleno volat OpenGL ES na pozadí. Chcete-li dosáhnout optimálního využití mobilního zdroje, nevolejte vykreslení během spouštění aplikace na pozadí. Poslední aktualizace 31.8.2016 80 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Zvuk na pozadí Chcete-li zapnout přehrávání a nahrávání zvuku na pozadí, přidejte do elementu InfoAdditions následující klíč s hodnotou: <InfoAdditions> <![CDATA[ <key>UIBackgroundModes</key> <array> <string>audio</string> </array> ]]> </InfoAdditions> Aktualizace umístění na pozadí Chcete-li zapnout aktualizace umístění na pozadí, přidejte do elementu InfoAdditions následující klíč s hodnotou: <InfoAdditions> <![CDATA[ <key>UIBackgroundModes</key> <array> <string>location</string> </array> ]]> </InfoAdditions> Poznámka: Tuto funkci použijte, jen když je to nutné, protože rozhraní API umístění je náročné na spotřebu baterie. Sítě na pozadí Chcete-li spouštět krátké úlohy na pozadí, vaše aplikace nastaví vlastnost NativeApplication.nativeApplication.executeInBackground na hodnotu true. Aplikace může například zahájit operaci odeslání souboru, ale uživatel následně přesune jinou aplikaci do popředí. Jakmile aplikace přijme událost dokončení odeslání na server, může nastavit vlastnost NativeApplication.nativeApplication.executeInBackground na hodnotu false. Nastavení vlastnosti NativeApplication.nativeApplication.executeInBackground na hodnotu true nezaručí, že aplikace poběží nekonečně dlouho, protože systém iOS stanoví pro úlohy na pozadí určitý časový limit. Když systém iOS zastaví zpracování na pozadí, prostředí AIR odešle událost NativeApplication.suspend. Zakázání spouštění na pozadí Aplikace může výslovně zakázat spouštění na pozadí tím, že do elementu InfoAdditions přidá následující klíč s hodnotou: <InfoAdditions> <![CDATA[ <key>UIApplicationExitsOnSuspend</key> <true/> ]]> </InfoAdditions> Vyhrazená nastavení InfoAdditions pro systém iOS Prostředí AIR nastaví v generovaném souboru Info.plist několik položek, které zajistí správné fungování této aplikace a běhového modulu. Nemůžete definovat následující nastavení: Poslední aktualizace 31.8.2016 81 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení CFBundleDisplayName CTInitialWindowTitle CFBundleExecutable CTInitialWindowVisible CFBundleIconFiles CTIosSdkVersion CFBundleIdentifier CTMaxSWFMajorVersion CFBundleInfoDictionaryVersion DTPlatformName CFBundlePackageType DTSDKName CFBundleResourceSpecification MinimumOSVersion (vyhrazeno do 3.2) CFBundleShortVersionString NSMainNibFile CFBundleSupportedPlatforms UIInterfaceOrientation CFBundleVersion UIStatusBarHidden CTAutoOrients UISupportedInterfaceOrientations Poznámka: Můžete definovat MinimumOSVersion. Definice MinimumOSVersion bude respektována v prostředí Air 3.3 a novějším. Podpora modelů různých zařízení se systémem iOS Podpora zařízení iPad vyžaduje, aby v parametru UIDeviceFamily elementu InfoAdditions byla použita správná nastavení klíč-hodnota. Nastavení parametru UIDeviceFamily je pole řetězců. Každý řetězec definuje podporovaná zařízení. Řetězec <string>1</string> definuje podporu zařízení iPhone a iPod Touch. Řetězec <string>2</string> definuje podporu zařízení iPad. Jestliže určíte jeden z těchto řetězců, bude podporována pouze daná řada zařízení. Následující nastavení například omezí podporu jen na zařízení iPad: <key>UIDeviceFamily</key> <array> <string>2</string> </array>> Následující nastavení podporuje obě řady zařízení (iPhone/iPod Touch a iPad): <key>UIDeviceFamily</key> <array> <string>1</string> <string>2</string> </array> Dále lze v prostředí AIR 3.7 a vyšších pomocí tagu forceCPURenderModeForDevices vynutit u určené množiny zařízení režim vykreslování pomocí CPU a u zbývajících zařízení se systémem iOS povolit režim vykreslování pomocí GPU. Tento tag přidáte jako podřízený prvek tagu iPhone a určíte seznam názvů modelů zařízení oddělených mezerami. Seznam platných názvů modelů zařízení naleznete v části „forceCPURenderModeForDevices“ na stránce 221. Chcete-li například ve starých zařízeních iPod, iPhone a iPad používat režim CPU a pro všechna ostatní zařízení povolit režim GPU, určete v deskriptoru aplikace následující položky: ... <renderMode>GPU</renderMode> ... <iPhone> ... <forceCPURenderModeForDevices>iPad1,1 iPhone1,1 iPhone1,2 iPod1,1 </forceCPURenderModeForDevices> </iPhone> Poslední aktualizace 31.8.2016 82 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Zobrazení s vysokým rozlišením Element requestedDisplayResolution určuje, zda v zařízeních iOS s obrazovkou s vysokým rozlišením má aplikace používat režim rozlišení standard nebo high. <requestedDisplayResolution>high</requestedDisplayResolution> V režimu rozlišení high lze adresovat každý obrazový bod zobrazení s vysokým rozlišením jednotlivě. Ve režimu standard se obrazovka zařízení jeví aplikaci jako obrazovka se standardním rozlišením. Nakreslení jednoho obrazového bodu v tomto režimu nastaví barvu čtyř obrazových bodů na obrazovce s vysokým rozlišením. Výchozí nastavení je standard. V případě zaměření na zařízení se systémem iOS použijte element requestedDisplayResolution jako podřízený prvek elementu iPhone (nikoli element InfoAdditions nebo initialWindow). Chcete-li v různých zařízeních používat různá nastavení, zadejte požadovanou výchozí hodnotu jako hodnotu elementu requestedDisplayResolution. Pomocí atributu excludeDevices určete zařízení, která mají používat opačnou hodnotu. Například při použití následujícího kódu se režim vysokého rozlišení použije u všech zařízení, která ho podporují, s výjimkou tabletů iPad 3. generace, které používají standardní režim: <requestedDisplayResolution excludeDevices="iPad3">high</requestedDisplayResolution> Atribut excludeDevices je k dispozici v prostředí AIR 3.6 a novějších. Další témata Nápovědy „requestedDisplayResolution“ na stránce 233 Renaun Erickson: Developing for both retina and non-retina iOS screens using AIR 2.6 (Vývoj pro obrazovky Retina i pro jiné obrazovky systému iOS pomocí prostředí AIR 2.6) Vlastní schémata identifikátoru URI v systému iOS Registrací vlastních schémat identifikátoru URI můžete povolit, aby aplikaci mohl vyvolat odkaz na webové stránce nebo jiná, nativní aplikace v daném zařízení. Chcete-li zaregistrovat schéma identifikátoru URI, přidejte do elementu InfoAdditions klíč CFBundleURLTypes. Následující příklad zaregistruje schéma identifikátoru URI s názvem com.example.app, které povoluje, aby aplikaci mohly vyvolat adresy URL ve tvaru: example://foo. <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>example</string> </array> <key>CFBundleURLName</key> <string>com.example.app</string> </dict> </array> Je-li prostřednictvím vlastního identifikátoru URI vyvolána daná aplikace, objekt NativeApplication odešle událost invoke. Adresa URL odkazu, včetně parametrů dotazu, je umístěna v poli arguments objektu InvokeEvent. Můžete použít libovolný počet vlastních schémat identifikátoru URI. Poznámka: Odkazy v instanci StageWebView nelze otevřít adresy URL, které používají vlastní schéma identifikátoru URI. Poznámka: Pokud již schéma zaregistrovala jiná aplikace, nemůže ji vaše aplikace nahradit jako aplikaci registrovanou pro dané schéma identifikátoru URI. Poslední aktualizace 31.8.2016 83 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Filtrování kompatibility zařízení iOS Má-li být vaše aplikace používána pouze v zařízeních s určitými hardwarovými nebo softwarovými funkcemi, přidejte položky do pole UIRequiredDeviceCapabilities v elementu InfoAdditions. Následující položka například označuje, že aplikace vyžaduje fotoaparát a mikrofon: <key>UIRequiredDeviceCapabilities</key> <array> <string>microphone</string> <string>still-camera</string> </array> Pokud zařízení nemá odpovídající funkce, nelze aplikaci nainstalovat. Mezi nastavení funkcí, jež se týkají aplikací AIR, patří: telephony camera-flash wifi video-camera sms accelerometer still-camera location-services auto-focus-camera gps front-facing-camera microphone V prostředí AIR 2 6+ jsou do seznamu požadovaných možností automaticky přidány položky armv7 a opengles-2. Poznámka: Tyto funkce není nutné zahrnout do deskriptoru aplikace, aby je vaše aplikace používala. Nastavení UIRequiredDeviceCapabilities použijte pouze v případě, že chcete zabránit uživatelům v instalaci vaší aplikace do zařízení, ve kterých nemůže fungovat správně. Ukončení místo pozastavení Jestliže uživatel přepne mimo aplikaci AIR, přejde tato aplikace na pozadí a dojde k jejímu pozastavení. Pokud chcete aplikaci místo pozastavení zcela ukončit, nastavte vlastnost UIApplicationExitsOnSuspend na hodnotu YES: <key>UIApplicationExitsOnSuspend</key> <true/> Minimalizace velikosti stahovaného obsahu načítáním externích souborů SWF obsahujících pouze datové zdroje AIR 3.7 Počáteční velikost stahované aplikace je možné minimalizovat zabalením podmnožiny souborů SWF, které tato aplikace používá, a načtením zbývajících externích souborů SWF (obsahujících pouze datové zdroje) za běhu pomocí metody Loader.load(). Abyste mohli tuto funkci použít, musíte aplikaci zabalit tak, aby nástroj ADT přesunul všechen kód ABC (ActionScript ByteCode) z externě načtených souborů SWF do hlavního souboru SWF aplikace a ponechal soubor SWF, který obsahuje pouze datové zdroje. Účelem tohoto postupu je vyhovět pravidlu obchodu Apple Store, které zakazuje stahování jakéhokoli kódu po instalaci aplikace. Nástroj ADT podporuje externě načítané soubory SWF (označované také jako ořezané soubory SWF) těmito úkony: • Přečte textový soubor určený v podelementu <externalSwfs> elementu <iPhone>, aby získal přístup k seznamu souborů SWF oddělených řádky, které se mají načíst v době provádění: Poslední aktualizace 31.8.2016 84 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení <iPhone> ... <externalSwfs>FilewithPathsOfSWFsThatAreToNotToBePackaged.txt</externalSwfs> </iPhone> • Přenese kód ABC z jednotlivých externě načtených souborů SWF do hlavního spustitelného souboru. • Vynechá externě načtené soubory SWF ze souboru IPA. • Zkopíruje ořezané soubory SWF do adresáře .remoteStrippedSWFs. Tyto soubory SWF budete hostovat na webovém serveru a vaše aplikace je podle potřeby načte za běhu. Soubory SWF, které se mají načíst za běhu, určíte zadáním jejich názvů na samostatné řádky v textovém souboru, jak znázorňuje následující příklad: assets/Level1/Level1.swf assets/Level2/Level2.swf assets/Level3/Level3.swf assets/Level4/Level4.swf Určená cesta souboru je relativní vzhledem k souboru deskriptoru aplikace. Dále je nutné tyto soubory SWF zadat jako datové zdroje do příkazu adt. Poznámka: Tato funkce je vhodná pouze pro standardní balení. V případě rychlého balení (využívajícího například překladač, simulátor nebo ladění) nástroj ADT nevytváří ořezané soubory SWF. Další informace o této funkci včetně vzorového kódu naleznete v příspěvku blogu External hosting of secondary SWFs for AIR apps on iOS (Externí hostování sekundárních souborů SWF pro aplikace AIR v systému iOS) inženýra společnosti Adobe Abhinava Dhandha. Podpora geolokace Chcete-li, aby aplikace podporovala geolokaci, přidejte do prvku InfoAdditions tyto dvojice klíč-hodnota: <InfoAdditions> <![CDATA[ <key>NSLocationAlwaysUsageDescription</key> <string>Sample description to allow geolocation always</string> <key>NSLocationWhenInUseUsageDescription</key> <string>Sample description to allow geolocation when application is in foreground</string> ]]> </InfoAdditions> Ikony aplikace Následující tabulka obsahuje seznam velikostí ikon na každé mobilní platformě: Velikost ikony Platforma 29 x 29 iOS 36 x 36 Android 40 x 40 iOS 48 x 48 Android, iOS 50 x 50 iOS 57 x 57 iOS Poslední aktualizace 31.8.2016 85 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Velikost ikony Platforma 58 x 58 iOS 60 x 60 iOS 72 x 72 Android, iOS 75 x 75 iOS 76 x 76 iOS 80 x 80 iOS 87 x 87 iOS 96 x 96 Android 100x100 iOS 114x114 iOS 120 x 120 iOS 144x144 Android, iOS 152 x 152 iOS 167 × 167 iOS 180 x 180 iOS 192 x 192 Android 512 x 512 Android, iOS 1 024x1 024 iOS Cestu k souborům ikon určete v elementu icon v souboru deskriptoru aplikace: <icon> <image36x36>assets/icon36.png</image36x36> <image48x48>assets/icon48.png</image48x48> <image72x72>assets/icon72.png</image72x72> </icon> Pokud nezadáte ikonu dané velikosti, použije se nejbližší větší velikost a rozměry přizpůsobí. Ikony v systému Android V systému Android se ikony zadané v deskriptoru aplikace používají jako spouštěcí ikona aplikace. Ikona spouštěcího programu aplikace by měla být dodána jako sada obrázků PNG o rozměrech 36 x 36, 48 x 48, 72 x 72, 96 x 96, 144 x 144 a 192 x 192 obrazových bodů. Tyto velikosti ikon se používají pro obrazovky s nízkou hustotou, střední hustotou a vysokou hustotou (v uvedeném pořadí). Vývojáři by při odeslání aplikace do obchodu Google Play měli použít ikonu o rozměrech 512 x 512 obrazových bodů. Ikony v systému iOS Ikony definované v deskriptoru aplikace se používají v následujících umístěních pro aplikaci iOS: • Ikona 29x29 obrazových bodů – Ikona hledání Spotlight pro zařízení iPhone/iPad s nižším rozlišením a ikona nastavení pro zařízení iPad s nižším rozlišením • Ikona 40x40 obrazových bodů – Ikona hledání Spotlight pro zařízení iPad s nižším rozlišením Poslední aktualizace 31.8.2016 86 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení • Ikona 48x48 obrazových bodů – Prostředí AIR přidá k tomuto obrazu okraj a použije ho jako ikonu o velikosti 50x50 pro hledání Spotlight pro zařízení iPad s nižším rozlišením. • Ikona 50x50 obrazových bodů – Hledání Spotlight pro zařízení iPad s nižším rozlišením • Ikona 57x57 obrazových bodů – Ikona aplikací pro zařízení iPhone/iPod s nižším rozlišením • Ikona 58x58 obrazových bodů – Ikona hledání Spotlight pro displeje Retina zařízení iPhone/iPod a ikona nastavení pro zařízení iPad s displeji Retina • Ikona 60x60 obrazových bodů – Ikona aplikací pro zařízení iPhone/iPod s nižším rozlišením • Ikona 72x72 obrazových bodů (volitelná) – Ikona aplikací pro zařízení iPad s nižším rozlišením • Ikona 76x76 obrazových bodů (volitelná) – Ikona aplikací pro zařízení iPad s nižším rozlišením • Ikona 80x80 obrazových bodů – Hledání Spotlight pro zařízení iPhone/iPod/iPad s vysokým rozlišením • Ikona 100x100 obrazových bodů – Hledání Spotlight pro displeje Retina zařízení iPad • Ikona 114x114 obrazových bodů – Ikona aplikací pro displeje Retina zařízení iPhone/iPod • Ikona 114x114 obrazových bodů – Ikona aplikací pro displeje Retina zařízení iPhone/iPod • Ikona 120x120 obrazových bodů – Ikona aplikací pro zařízení iPhone/iPod s vysokým rozlišením • Ikona 152x152 obrazových bodů – Ikona aplikací pro zařízení iPad s vysokým rozlišením • Ikona 167x167 obrazových bodů – Ikona aplikací pro zařízení iPad Pro s vysokým rozlišením • Ikona 512x-512 obrazových bodů – Ikona aplikací pro zařízení iPhone/iPod/iPad s nižším rozlišením. Tuto ikonu zobrazuje služba iTunes. Tento soubor PNG s 512 obrazovými body slouží pouze k testování vývojových verzí vaší aplikace. Když odešlete konečnou aplikaci do obchodu Apple App Store, odešlete obraz 512 samostatně jako soubor JPG, který není obsažen v souboru IPA. • Ikona 1 024x1 024 obrazových bodů – Ikona aplikací pro displeje Retina zařízení iPhone/iPod/iPad Systém iOS na ikonu přidá efekt lesku. U zdrojového obrazu není nutné tento efekt použít. Chcete-li tento výchozí efekt lesku odstranit, přidejte v souboru deskriptoru aplikace do elementu InfoAdditions následující výraz: <InfoAdditions> <![CDATA[ <key>UIPrerenderedIcon</key> <true/> ]]> </InfoAdditions> Poznámka: V systému iOS jsou metadata aplikací vkládána do ikon aplikací jako metadata PNG, aby mohla společnost Adobe sledovat počet aplikací AIR, které jsou k dispozici v obchodě s aplikacemi pro systém Apple iOS. Pokud nechcete, aby vaše aplikace byla na základě těchto metadat ikony identifikována jako aplikace AIR, musíte rozbalit soubor IPA, odstranit metadata ikony a soubor znovu zabalit. Tento postup je popsán v článku Odhlášení z analytiky aplikací AIR pro systém iOS Další témata Nápovědy „icon“ na stránce 222 „imageNxN“ na stránce 223 Vývojáři systému Android: Pokyny pro návrh ikon Pokyny pro lidské rozhraní systému iOS: Pokyny pro vytváření vlastních ikon a obrazů Poslední aktualizace 31.8.2016 87 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Spouštěcí obrazy v systému iOS Kromě ikon aplikace je nutné zadat alespoň jeden spouštěcí obraz s názvem Default.png. Volitelně lze vložit i další spouštěcí obrazy pro různá nastavení orientace při startu, různá rozlišení (včetně obrazovky Retina Display s vysokým rozlišením a poměrem stran 16:9) a různá zařízení. Můžete vložit i další spouštěcí obrazy, které budou použity při vyvolání aplikace prostřednictvím adresy URL. Deskriptor aplikace neobsahuje odkazy na soubory se spouštěcími obrazy, ty proto musejí být umístěny v kořenovém adresáři aplikace. (Tyto soubory neumísťujte do podadresáře.) Schéma pojmenování souborů Zadejte název obrazu podle následujícího schématu: basename + screen size modifier + urischeme + orientation + scale + device + .png Jedinou požadovanou částí je název souboru (bez přípony). Tento název souboru je buď Default (s velkým D), nebo název, který zadáte pomocí klíče UILaunchImageFile v elementu InfoAdditions v deskriptoru aplikace. Část modifikátor velikosti obrazovky určuje velikost obrazovky, pokud se nejedná o jednu ze standardních velikostí. Tento modifikátor se týká pouze modelů iPhone a iPod touch s obrazovkou s poměrem stran 16:9, jako např. iPhone 5 nebo iPod touch 5. generace. Jediná přípustná hodnota tohoto modifikátoru je -568h. Jelikož tato zařízení podporují displeje s vysokým rozlišením (Retina), používá se modifikátor velikosti obrazovky u všech obrazů, které obsahují i modifikátor měřítka @2x. Úplný výchozí název spouštěcího obrazu pro tato zařízení je [email protected]. Část urischeme je řetězec, který slouží k identifikaci schématu URI. Tuto část použijete pouze tehdy, pokud vaše aplikace podporuje jedno nebo více vlastních schémat URL. Pokud lze například aplikaci vyvolat pomocí odkazu, jako je example://foo, použijte jako část schématu v názvu souboru se spouštěcím obrazem řetězec -example. Část orientace umožňuje zadat více spouštěcích obrazů, které budou použity při spuštění aplikace podle orientace zařízení. Tato část se týká pouze obrazů pro aplikace zařízení iPad. Může mít některou z následujících hodnot, která se vztahuje k orientaci zařízení při spuštění aplikace: • -Portrait • -PortraitUpsideDown • -Landscape • -LandscapeLeft • -LandscapeRight Část scale má pro spouštěcí obrazy používané na displejích s vysokým rozlišením (Retina) hodnotu @2x (pro iPhone 4, iPhone 5 a iPhone 6) nebo @3x (pro iPhone 6 plus). (U obrazů používaných pro zobrazení se standardním rozlišením část scale úplně vynechejte.) U spouštěcích obrazů pro větší zařízení, jako je iPhone 5 nebo iPod touch 5. generace, je třeba zadat také modifikátor velikosti obrazovky -528h hned za základním názvem a před jakýmikoli dalšími částmi. Část zařízení slouží k označení spouštěcích obrazů pro ruční zařízení a telefony. Tato část se používá, pokud je vaše aplikace univerzální a podporuje jak ruční zařízení, tak tablety, přičemž používá jen jedna binární data. Přípustná hodnota je ~ipad nebo ~iphone (týká se jak zařízení iPhone, tak iPod Touch). Pro zařízení iPhone lze zahrnout pouze obrazy s poměrem stran s orientací na výšku. V případě zařízení iPhone 6 plus však také lze zahrnout obrazy s orientací na šířku. Pro zařízení se standardním rozlišením použijte obrazy 320 x 480 obrazových bodů, pro zařízení s vysokým rozlišením obrazy 640 x 960 obrazových bodů a pro zařízení s poměrem stran 16:9 (jako např. iPhone 5 nebo iPod touch 5. generace) obrazy 640 x 1 136 obrazových bodů. Poslední aktualizace 31.8.2016 88 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení V případě zařízení iPad vložte obrazy takto: • AIR 3.3 a starší – obrazy na část obrazovky: můžete zahrnout obrazy s poměrem stran na šířku (1 024 x 748 pro normální rozlišení, 2 048 x 1 496 pro vysoké rozlišení) i na výšku (768 x 1 004 pro normální rozlišení, 1 536 x 2 008 pro vysoké rozlišení). • AIR 3.4 a novější – obrazy na celou obrazovku: můžete zahrnout obrazy s poměrem stran na šířku (1 024 x 768 pro normální rozlišení, 2 048 x 1 536 pro vysoké rozlišení) i na výšku (768 x 1 024 pro normální rozlišení, 1 536 x 2 048 pro vysoké rozlišení). Pokud obraz přes celou obrazovku upravíte pro aplikaci, která využívá jen část obrazovky, bude horních 20 obrazových bodů (horních 40 obrazových bodů při vysokém rozlišení) zakryto stavovým řádkem. V této oblasti nezobrazujte důležité informace. Příklady Následující tabulka uvádí příklady spouštěcích obrazů, které byste mohli zahrnout pro hypotetickou aplikaci, jež podporuje nejširší možný rozsah zařízení a orientací a již lze spustit prostřednictvím adres URL používajících schéma example://: Název souboru Velikost obrazu Použití Default.png 320 x 480 iPhone, standardní rozlišení [email protected] 640 x 960 iPhone, vysoké rozlišení [email protected] 640 x 1 136 iPhone, vysoké rozlišení, poměr stran 16:9 Default-Portrait.png 768 x 1 004 (AIR 3.3 a starší) iPad, orientace na výšku 768 x 1 024 (AIR 3.4 a vyšší) [email protected] 1 536 x 2 008 (AIR 3.3 a starší) iPad, vysoké rozlišení, orientace na výšku 1 536 x 2 048 (AIR 3.4 a vyšší) Default-PortraitUpsideDown.png 768 x 1 004 (AIR 3.3 a iPad, převrácená orientace na výšku starší)768 x 1 024 (AIR 3.4 a vyšší) [email protected] 1 536 x 2 008 (AIR 3.3 a iPad, vysoké rozlišení, orientace na výšku starší)1 536 x 2 048 (AIR 3.4 (převráceně) a vyšší) Default-Landscape.png 1 024 x 768 iPad, orientace na šířku, doleva [email protected] 2 048 x 1 536 iPad, vysoké rozlišení, orientace na šířku (vlevo) Default-LandscapeRight.png 1 024 x 768 iPad, orientace na šířku, doprava [email protected] 2 048 x 1 536 iPad, vysoké rozlišení, orientace na šířku (vpravo) Default-example.png 320 x 480 URL example:// v zařízení iPhone se standardním rozlišením Poslední aktualizace 31.8.2016 89 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Název souboru Velikost obrazu Použití [email protected] 640 x 960 URL example:// v zařízení iPhone s vysokým rozlišením Default-example~ipad.png 768 x 1 004 URL example:// v zařízení iPad s orientací na výšku Default-example-Landscape.png 1 024 x 768 URL example:// v zařízení iPad s orientací na šířku Tento příklad ukazuje pouze jeden přístup. Mohli byste například použít obraz Default.png pro zařízení iPad a určit konkrétní spouštěcí obrazy pro zařízení iPhone a iPod s obrazy Default~iphone.pnga Default@2x~iphone.png. Viz také Průvodce programováním aplikací systému iOS: Spouštěcí obrazy aplikace Spouštěcí obrazy k přidání do balíčku pro zařízení se systémem iOS Zařízení Resolution (obrazové body) Název spouštěcího obrazu Orientace iPhone 4 (bez 640 x 960 displeje Retina) Default~iphone.png Na výšku iPhone 4, 4s Default@2x~iphone.png Na výšku iPhone 5, 5c, 5s 640 x 1 136 Default-568h@2x~iphone.png Na výšku iPhone 6 750 x 1334 Default-375w-667h@2x~iphone.png Na výšku iPhone 6+ 1242 x 2208 Default-414w-736h@3x~iphone.png Na výšku iPhone 6+ 2208 x 1242 Default-Landscape-414w736h@3x~iphone.png Na šířku iPad 1, 2 768 x 1 024 Default-Portrait~ipad.png Na výšku iPad 1, 2 768 x 1 024 Default-PortraitUpsideDown~ipad.png Převrácená orientace na výšku iPad 1, 2 1 024 x 768 Default-Landscape~ipad.png Vlevo na šířku iPad 1, 2 1 024 x 768 Default-LandscapeRight~ipad.png Vpravo na šířku iPad 3, Air 1 536 x 2 048 Default-Portrait@2x~ipad.png Na výšku iPad 3, Air 1 536 x 2 048 DefaultPortraitUpsideDown@2x~ipad.png Převrácená orientace na výšku iPad 3, Air 2 048 x 1 536 Default-LandscapeLeft@2x~ipad.png Vlevo na šířku iPad 3, Air 2 048 x 1 536 Default-LandscapeRight@2x~ipad.png Vpravo na šířku iPad Pro 2048 x 2732 Default-Portrait@2x~ipad.png Na výšku iPad Pro 2732 x 2048 Default-Landscapet@2x~ipad.png Na šířku Zařízení iPhone 640 x 960 Zařízení iPad Poslední aktualizace 31.8.2016 90 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Pravidla obrazů Pro spouštěcí obraz můžete vytvořit libovolnou grafiku se správnými rozměry. Často bývá ale nejlepší, pokud obraz odpovídá počátečnímu stavu aplikace. Takový spouštěcí obraz můžete vytvořit pořízením snímku spouštěcí obrazovky dané aplikace: 1 Otevřete aplikaci v zařízení iOS. Až bude zobrazena první obrazovka uživatelského rozhraní, stiskněte a podržte tlačítko Home (Domů) pod obrazovkou. Stále držte tlačítko Home (Domů) a stiskněte v horní části zařízení tlačítko Power/Sleep (Napájení/režim spánku). Tímto postupem pořídíte snímek obrazovky a odešlete jej do složky Camera Roll. 2 Obraz převeďte do vývojového počítače. Použijte k tomu převod fotografií z aplikace iPhoto nebo jiné aplikace umožňující převod fotografií. Jestliže je aplikace lokalizována do více jazyků, nezahrnujte do spouštěcího obrazu text. Spouštěcí obraz je statický a text by neodpovídal ostatním jazykům. Viz také iOS Pokyny lidského rozhraní: Spouštěcí obrazy Ignorovaná nastavení Aplikace v mobilních zařízeních ignorují nastavení aplikace, která se vztahují k nativním oknům nebo operačnímu systému stolního počítače. Ignorována nastavení zahrnují: • allowBrowserInvocation • customUpdateUI • fileTypes • height • installFolder • maximizable • maxSize • minimizable • minSize • programMenuFolder • resizable • systemChrome • title • transparent • visible • width • x • y Poslední aktualizace 31.8.2016 91 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Zabalení mobilní aplikace AIR Balíček aplikace AIR určené pro mobilní zařízení vytvořte pomocí příkazu -package nástroje ADT. Parametr -target určuje mobilní platformu, pro kterou se balíček vytváří. Balíčky pro systém Android Aplikace AIR v systému Android používá formát balíčku aplikace Android (APK), nikoli formát balíčku AIR. Balíčky vytvořené nástrojem ADT s použitím cílového typu APK jsou ve formátu, který lze odeslat na web Android Market. Na webu Android Market platí určité požadavky, které musí být splněny, aby odeslané aplikace byly přijaty. Před vytvořením konečného balíčku byste si měli projít nejnovější požadavky. Viz Vývojáři systému Android: Publikování na webu Market. Na rozdíl od aplikací iOS můžete k podepsání aplikace použít normální certifikát pro podepisování kódu AIR. Pokud však chcete aplikaci odeslat na web Android Market, musí certifikát odpovídat pravidlům tohoto webu, která vyžadují, aby byl platný alespoň do roku 2033. Takový certifikát můžete vytvořit pomocí příkazu -certificate nástroje ADT. Chcete-li aplikaci odeslat na alternativní tržiště, které neumožňuje aplikaci vyžadovat stažení běhového prostředí AIR z tržiště společnosti Google, zadejte alternativní adresu URL pro stažení pomocí parametru -airDownloadURL nástroje ADT. Pokud vaši aplikaci spustí uživatel, který nemá požadovanou verzi běhového prostředí AIR, bude přesměrován na zadanou adresu URL. Další informace naleznete v tématu „Příkaz package nástroje ADT“ na stránce 164. Ve výchozím nastavení program ADT zabalí aplikaci pro systém Android se sdíleným běhovým modulem. Aby uživatel mohl aplikaci spustit, musí do zařízení nainstalovat samostatný běhový modul AIR. Poznámka: Chcete-li u programu ADT vynutít, aby použil vázaný běhový modul, použijte cíl target apk-captiveruntime. Balíčky pro systém iOS Aplikace AIR pro systém iOS používají formát balíčku iOS (IPA), nikoli nativní formát AIR. Balíčky vytvořené nástrojem ADT s použitím cílového typu ipa-app-store a se správným certifikátem pro podepisování kódu a prováděcím profilem jsou ve formátu, který lze odeslat do obchodu Apple App Store. Chcete-li aplikaci zabalit pro distribuci ad hoc, použijte cílový typ ipa-ad-hoc. K podepsání aplikace je nutné použít správný vývojářský certifikát vydaný společností Apple. Pro vytváření zkušebních verzí se používají jiné certifikáty než ke konečnému zabalení před odesláním aplikace. Příklad vytvoření balíku aplikace systému iOS pomocí skriptu ANT viz Piotr Walczyszyn: Packaging AIR application for iOS devices with ADT command and ANT script (Zabalení aplikace AIR pro zařízení se systémem iOS pomocí příkazu ADT a skriptu ANT) Zabalení pomocí nástroje ADT Sada AIR SDK verze 2.6 a novější podporuje zabalení pro systémy iOS i Android. Před zabalením musí být zkompilován veškerý kód ActionScript a MXML a případných rozšíření. Musíte také mít certifikát pro podepsání kódu. Podrobné informace o příkazech a možnostech nástroje ADT naleznete v části věnované „AIR Developer Tool (ADT)“ na stránce 163. Poslední aktualizace 31.8.2016 92 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Balíčky APK pro systém Android Vytvoření balíčku APK Chcete-li vytvořit balíček APK, použijte příkaz package nástroje ADT, přičemž cílový typ nastavte na hodnotu apk u verzí k vydání, na hodnotu apk-debug u verzí k ladění nebo na hodnotu apk-emulator u verzí v režimu k vydání, které se mají spouštět v emulátoru. adt -package -target apk -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml myApp.swf icons Zadejte celý příkaz na jediný řádek; výše uvedený příklad je rozdělen na řádky pouze s cílem usnadnit jeho čtení. V příkladu se také předpokládá, že cesta k nástroji ADT se nachází v definici cesty v prostředí příkazového řádku. (Nápovědu naleznete v části „Proměnné prostředí pro cestu“ na stránce 301.) Příkaz je nutné spustit z adresáře obsahujícího soubory aplikace. Soubory aplikace v uvedeném příkladu jsou myAppapp.xml (soubor deskriptoru aplikace), myApp.swf a adresář icons. Při spuštění příkazu, jak je uveden, vás nástroj ADT vyzve k zadání hesla pro úložiště klíčů. (Vámi zadávané znaky hesla se nezobrazují; po jeho zadání jednoduše stiskněte klávesu Enter.) Poznámka: Ve výchozím nastavení mají všechny aplikace AIR pro systém Android v názvu balíčku předponu air. Chcete-li toto výchozí chování vypnout, nastavte v počítači proměnnou prostředí AIR_NOANDROIDFLAIR na true. Vytvoření balíčku APK pro aplikaci, která používá nativní rozšíření Chcete-li vytvořit balíček APK pro aplikaci, která používá nativní rozšíření, přidejte kromě normálních voleb balení také volbu -extdir. V případě více souborů ANE, které sdílejí prostředky/knihovny, ADT před generováním upozornění vybere jen jeden prostředek / jednu knihovnu a ostatní duplicitní položky ignoruje. Tato volba určuje adresář, který obsahuje soubory ANE, jež aplikace používá. Například: adt -package -target apk -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml -extdir extensionsDir myApp.swf icons Vytvoření balíčku APK, který obsahuje svou vlastní verzi běhového modulu prostředí AIR Chcete-li vytvořit balíček APK, který obsahuje aplikaci i vázanou verzi běhového modulu prostředí AIR, použijte cíl apk-captive-runtime. Tato volba určuje adresář, který obsahuje soubory ANE, jež aplikace používá. Například: adt -package -target apk-captive-runtime -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml myApp.swf icons Možné nevýhody této techniky: • uživatelé nebudou mít automaticky dostupné důležité opravy zabezpečení, když společnost Adobe zveřejní opravu zabezpečení; Poslední aktualizace 31.8.2016 93 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení • aplikace zabírá více paměti RAM. Poznámka: Když přibalíte běhový modul, přidá nástroj ADT do aplikace oprávnění INTERNET a BROADCAST_STICKY. Tato oprávnění vyžaduje běhový modul prostředí AIR. Vytvoření balíčku nástroje APK pro ladění Chcete-li vytvořit verzi aplikace, kterou lze použít s ladicím programem, použijte jako cíl hodnotu apk-debug a zadejte možnosti připojení: adt -package -target apk-debug -connect 192.168.43.45 -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml myApp.swf icons Příznak -connect instruuje běhový modul AIR v zařízení, kde v síti se má připojit ke vzdálenému ladicímu programu. Chcete-li ladění provést přes port USB, je nutné místo výše uvedeného příznaku zadat příznak -listen s uvedením portu TCP pro připojení k ladicímu programu: adt -package -target apk-debug -listen 7936 -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml myApp.swf icons Většina funkcí ladění rovněž vyžaduje, aby soubory SWF a SWC aplikace byly kompilovány s povoleným laděním. Nahlédněte do tématu „Možnosti připojení debuggeru“ na stránce 180, kde naleznete úplný popis příznaků -connect a -listen. Poznámka: Ve výchozím nastavení ADT při balení aplikace s cílem apk-debug zabalí s aplikací pro systém Android kaptivní kopii běhového modulu AIR. Pokud nechcete, aby nástroj ADT vytvořil balíček APK, který používá externí běhový modul, nastavte proměnnou prostředí AIR_ANDROID_SHARED_RUNTIME na hodnotu true. V systému Android musí také aplikace mít oprávnění pro přístup k Internetu, aby se mohla v síti připojit k počítači, ve kterém je spuštěn ladicí program. Viz „Oprávnění systému Android“ na stránce 74. Vytvoření balíčku APK k použití v emulátoru systému Android V emulátoru systému Android můžete použít balíček APK pro ladění, ale nikoli balíček v režimu k vydání. Chcete-li vytvořit balíček APK v režimu k vydání pro použití v emulátoru, použijte příkaz package nástroje ADT, přičemž cílový typ nastavte na hodnotu apk-emulator: adt -package -target apk-emulator -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myAppapp.xml myApp.swf icons V příkladu se předpokládá, že cesta k nástroji ADT se nachází v definici cesty v prostředí příkazového řádku. (Nápovědu naleznete v části „Proměnné prostředí pro cestu“ na stránce 301.) Vytvoření balíčku APK ze souboru AIR nebo AIRI Balíček APK můžete vytvořit přímo z existujícího souboru AIR nebo AIRI: adt -target apk -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp.air Soubor AIR musí v souboru deskriptoru aplikace používat obor názvů AIR 2.5 (nebo novější). Poslední aktualizace 31.8.2016 94 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Vytvoření balíčku APK pro platformu Android x86 Od verze AIR 14 lze pomocí argumentu -arch zabalit balíček APK pro platformu Android x86. Příklad: adt -package -target apk-debug -listen 7936 -arch x86 -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml myApp.swf icons Balíčky pro systém iOS V systému iOS převede nástroj ADT bajtový kód souboru SWF a další zdrojové soubory na nativní aplikaci iOS. 1 Soubor SWF vytvořte pomocí aplikace Flash Builder, Flash Professional nebo kompilátoru příkazového řádku. 2 Otevřete příkazové prostředí nebo terminál a přejděte v aplikaci pro zařízení iPhone do složky projektu. 3 Pak pomocí nástroje ADT vytvořte soubor IPA s použitím následující syntaxe: adt -package -target [ipa-test | ipa-debug | ipa-app-store | ipa-ad-hoc | ipa-debug-interpreter | ipa-debug-interpreter-simulator ipa-test-interpreter | ipa-test-interpreter-simulator] -provisioning-profile PROFILE_PATH SIGNING_OPTIONS TARGET_IPA_FILE APP_DESCRIPTOR SOURCE_FILES -extdir extension-directory -platformsdk path-to-iossdk or path-to-ios-simulator-sdk Změňte odkaz adt tak, aby obsahoval úplnou cestu k aplikaci adt. Aplikace adt se nainstaluje do podadresáře bin sady AIR SDK. Vyberte volbu -target odpovídající typu aplikace pro zařízení iPhone, kterou chcete vytvořit: • -target ipa-test – tuto volbu vyberte, chcete-li za účelem testování v zařízení iPhone vývojáře rychle zkompilovat verzi aplikace. Můžete také použít balíček ipa-test-interpreter pro ještě rychlejší kompilaci nebo ipa-test-interpreter-simulator pro spouštění v simulátoru systému iOS. • -target ipa-debug – tuto volbu vyberte, chcete-li za účelem testování v zařízení iPhone vývojáře zkompilovat ladicí verzi aplikace. Pomocí této volby můžete k přijetí výstupu metody trace() z aplikace pro zařízení iPhone použít relaci ladění. Zahrnutím jedné z následujících voleb -connect (CONNECT_OPTIONS) lze určit IP adresu vývojového počítače, v němž je spuštěn ladicí program: • -connect – aplikace se pomocí wifi pokusí připojit k relaci ladění ve vývojovém počítači použitém ke kompilaci aplikace. • -connect IP_ADDRESS – aplikace se pomocí wifi pokusí připojit k relaci ladění v počítači s určenou IP adresou. Například: -target ipa-debug -connect 192.0.32.10 • -connect HOST_NAME – Aplikace se pomocí wifi pokusí připojit k relaci ladění v počítači s určeným názvem hostitele. Například: -target ipa-debug -connect bobroberts-mac.example.com Poslední aktualizace 31.8.2016 95 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Volba -connect je volitelná. Pokud není určena, výsledná ladicí aplikace se nepokusí o připojení k hostovanému ladicímu programu. Také můžete určením volby -listen namísto -connect povolit ladění USB popsané v části „Vzdálené ladění pomocí nástroje FDB přes port USB“ na stránce 103. Jestliže pokus o navázání připojení za účelem ladění selže, aplikace zobrazí dialog s výzvou k zadání IP adresy hostitelského počítače ladicího programu. Pokus o navázání připojení může selhat, pokud zařízení není připojeno k síti WiFi. Také to může nastat v případě, že zařízení je připojeno, ale ne za bránou firewall hostitelského počítače ladicího programu. Můžete také použít balíček ipa-debug-interpreter pro rychlejší kompilaci nebo ipa-debug-interpretersimulator pro spouštění v simulátoru systému iOS. Další informace naleznete v části „Ladění mobilní aplikace AIR“ na stránce 97. • -target ipa-ad-hoc – Tuto volbu vyberte, chcete-li vytvořit aplikaci pro ad hoc nasazení. Další informace naleznete v části týkající se centra pro vývojáře zařízení iPhone společnosti Apple. • -target ipa-app-store – Tuto volbu vyberte, chcete-li vytvořit konečnou verzi souboru IPA k nasazení aplikace do obchodu Apple App Store. Výraz PROFILE_PATH nahraďte cestou k souboru prováděcího profilu vaší aplikace. Další informace o prováděcích profilech naleznete v části „Nastavení systému iOS“ na stránce 64. Pomocí volby -platformsdk můžete odkazovat na sadu SDK simulátoru iOS, když vytváříte sestavení ke spuštění aplikace v simulátoru iOS. Výraz SIGNING_OPTIONS nahraďte tak, aby odkazoval na váš certifikát a heslo pro vývojáře pro zařízení iPhone. Použijte následující syntaxi: -storetype pkcs12 -keystore P12_FILE_PATH -storepass PASSWORD Nahraďte výraz P12_FILE_PATH cestou k souboru certifikátu P12. Výraz PASSWORD nahraďte heslem certifikátu. (Viz následující příklad.) Další informace o souboru certifikátu P12 naleznete v části „Převod certifikátu pro vývojáře do souboru úložiště klíčů P12“ na stránce 195. Poznámka: Při balení pro simulátor iOS můžete použít certifikát s vlastním podpisem. Výraz APP_DESCRIPTOR nahraďte tak, aby odkazoval na soubor deskriptoru aplikace. Výraz SOURCE_FILES nahraďte tak, aby odkazoval na hlavní soubor SWF projektu. Po něm mohou následovat jakékoli další zahrnuté datové zdroje. Uveďte cesty ke všem souborům ikon, které jste definovali v aplikaci Flash Professional v dialogovém okně nastavení aplikace a ve vlastním souboru deskriptoru aplikace. Také přidejte grafický soubor úvodní obrazovky Default.png. Pomocí možnosti-extdir extension-directory můžete určit adresář obsahující soubory ANE (nativní rozšíření), které bude aplikace používat. Jestliže aplikace nepoužívá žádná nativní rozšíření, tuto možnost nezahrnujte. Důležité: V adresáři aplikace nevytvářejte podadresář s názvem Resources. Běhový modul automaticky vytvoří složku s tímto názvem, aby bylo možné vyhovět struktuře balíčku IPA. Vytvoření vaší vlastní složky Resources by vedlo k závažnému konfliktu. Vytvoření balíčku iOS pro ladění Chcete-li vytvořit balíček iOS pro instalaci na zkušební zařízení, použijte příkaz package nástroje ADT, přičemž cílový typ nastavte na hodnotu ios-debug. Ještě před spuštěním tohoto příkazu musíte získat certifikát pro podepisování vývojářského kódu a prováděcí profil od společnosti Apple. Poslední aktualizace 31.8.2016 96 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení adt -package -target ipa-debug -storetype pkcs12 -keystore ../AppleDevelopment.p12 -provisioning-profile AppleDevelopment.mobileprofile -connect 192.168.0.12 | -listen myApp.ipa myApp-app.xml myApp.swf icons Default.png Poznámka: Můžete také použít parametr ipa-debug-interpreter pro rychlejší kompilaci nebo ipa-debuginterpreter-simulator ke spuštění v simulátoru iOS. Zadejte celý příkaz na jediný řádek; výše uvedený příklad je rozdělen na řádky pouze s cílem usnadnit jeho čtení. V příkladu se také předpokládá, že cesta k nástroji ADT se nachází v definici cesty v prostředí příkazového řádku. (Nápovědu naleznete v části „Proměnné prostředí pro cestu“ na stránce 301.) Příkaz je nutné spustit z adresáře obsahujícího soubory aplikace. Soubory aplikace v uvedeném příkladu jsou myAppapp.xml (soubor deskriptoru aplikace), myApp.swf, adresář icons a soubor Default.png. Aplikaci je třeba podepsat pomocí správného distribučního certifikátu vydaného společností Apple; jiné certifikáty pro podepsání kódu nelze použít. Volbu -connect použijte k ladění wifi. Aplikace se pokusí zahájit relaci ladění pomocí programu Flash Debugger (FDB) spuštěného na zadané IP adrese nebo názvu hostitele. Volbu -listen použijte k ladění přes port USB. Při prvním spuštění aplikace spusťte nástroj FDB, který spustí relaci ladění pro spuštěnou aplikaci. Další informace naleznete v části „Připojení k ladicímu programu Flash“ na stránce 101. Vytvoření balíčku iOS pro odeslání do obchodu Apple App Store Chcete-li vytvořit balíček iOS pro odeslání do obchodu Apple App Store, použijte příkaz package nástroje ADT, přičemž cílový typ nastavte na hodnotu ios-app-store. Ještě před spuštěním tohoto příkazu musíte získat certifikát pro podepisování distribučního kódu a prováděcí profil od společnosti Apple. adt -package -target ipa-app-store -storetype pkcs12 -keystore ../AppleDistribution.p12 -provisioning-profile AppleDistribution.mobileprofile myApp.ipa myApp-app.xml myApp.swf icons Default.png Zadejte celý příkaz na jediný řádek; výše uvedený příklad je rozdělen na řádky pouze s cílem usnadnit jeho čtení. V příkladu se také předpokládá, že cesta k nástroji ADT se nachází v definici cesty v prostředí příkazového řádku. (Nápovědu naleznete v části „Proměnné prostředí pro cestu“ na stránce 301.) Příkaz je nutné spustit z adresáře obsahujícího soubory aplikace. Soubory aplikace v uvedeném příkladu jsou myAppapp.xml (soubor deskriptoru aplikace), myApp.swf, adresář icons a soubor Default.png. Aplikaci je třeba podepsat pomocí správného distribučního certifikátu vydaného společností Apple; jiné certifikáty pro podepsání kódu nelze použít. Důležité: Společnost Apple vyžaduje, abyste k ukládání aplikací do obchodu App Store používali program Apple Application Loader. Společnost Apple program Application Loader publikuje pouze pro systém Mac OS X. Ačkoli tedy můžete aplikaci AIR pro zařízení iPhone vyvinout pomocí počítače se systémem Windows, je třeba mít přístup k počítači se systémem OS X (verze 10.5.3 nebo novější), abyste ji mohli odeslat do obchodu App Store. Program Application Loader můžete získat z centra Apple iOS Developer Center. Poslední aktualizace 31.8.2016 97 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Vytvoření balíčku iOS pro distribuci ad hoc Chcete-li vytvořit balíček iOS pro distribuci ad hoc, použijte příkaz package nástroje ADT, přičemž cílový typ nastavte na hodnotu ios-ad-hoc. Ještě před spuštěním tohoto příkazu musíte získat odpovídající certifikát pro podepisování kódu pro distribuci ad hoc a prováděcí profil od společnosti Apple. adt -package -target ipa-ad-hoc -storetype pkcs12 -keystore ../AppleDistribution.p12 -provisioning-profile AppleDistribution.mobileprofile myApp.ipa myApp-app.xml myApp.swf icons Default.png Zadejte celý příkaz na jediný řádek; výše uvedený příklad je rozdělen na řádky pouze s cílem usnadnit jeho čtení. V příkladu se také předpokládá, že cesta k nástroji ADT se nachází v definici cesty v prostředí příkazového řádku. (Nápovědu naleznete v části „Proměnné prostředí pro cestu“ na stránce 301.) Příkaz je nutné spustit z adresáře obsahujícího soubory aplikace. Soubory aplikace v uvedeném příkladu jsou myAppapp.xml (soubor deskriptoru aplikace), myApp.swf, adresář icons a soubor Default.png. Aplikaci je třeba podepsat pomocí správného distribučního certifikátu vydaného společností Apple; jiné certifikáty pro podepsání kódu nelze použít. Vytvoření balíčku systému iOS pro aplikaci, která používá nativní rozšíření Chcete-li vytvořit balíček systému iOS pro aplikaci, která používá nativní rozšíření, použijte příkaz package nástroje ADT s možností -extdir. Použijte příkaz ADT pro cíl (ipa-app-store, ipa-debug, ipa-ad-hoc, ipa-test). Například: adt -package -target ipa-ad-hoc -storetype pkcs12 -keystore ../AppleDistribution.p12 -provisioning-profile AppleDistribution.mobileprofile myApp.ipa myApp-app.xml -extdir extensionsDir myApp.swf icons Default.png Zadejte celý příkaz na jediný řádek; výše uvedený příklad je rozdělen na řádky pouze s cílem usnadnit jeho čtení. Co se týče nativních rozšíření, v příkladu se předpokládá, že adresář s názvem extensionsdir je adresář, ve kterém spustíte příkaz. Adresář extensionsdir obsahuje soubory ANE, které aplikace používá. Ladění mobilní aplikace AIR Mobilní aplikaci AIR můžete ladit několika způsoby. Nejjednodušší způsob, jak odhalit problémy s aplikační logikou, je ladění ve vývojovém počítači pomocí programu ADL nebo simulátoru iOS. Můžete také aplikaci nainstalovat do zařízení a provést vzdálené ladění pomocí ladicího programu Flash, který je spuštěn ve stolním počítači. Poslední aktualizace 31.8.2016 98 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Simulace zařízení pomocí programu ADL Nejrychlejší a nejsnadnější způsob testování a ladění většiny funkcí mobilních aplikací je spuštění aplikace ve vývojovém počítači pomocí programu ADL (Adobe Debug Launcher). Program ADL určí profil, který má použít, na základě elementu supportedProfiles v deskriptoru aplikace. Pokud je v seznamu uveden více než jeden profil, program ADL použije první z nich. Lze také použít parametr -profile programu ADL k výběru jednoho z dalších profilů v seznamu supportedProfiles. (Pokud do deskriptoru aplikace element supportedProfiles nezahrnete, lze v argumentu -profile zadat libovolný profil.) Například pomocí následujícího příkazu spustíte aplikaci tak, aby simulovala profil mobilního zařízení: adl -profile mobileDevice myApp-app.xml Při simulaci mobilního profilu ve stolním počítači tímto způsobem se aplikace spustí v prostředí, které lépe odpovídá cílovému mobilnímu zařízení. Rozhraní API jazyka ActionScript, která nejsou součástí mobilního profilu, nejsou k dispozici. Program ADL však nerozlišuje mezi možnostmi různých mobilních zařízení. Například můžete do aplikace odesílat simulovaná stisknutí programovatelných kláves, i když skutečné cílové zařízení programovatelné klávesy nevyužívá. Simulaci změn orientace zařízení a vstupu z programovatelných kláves podporuje program ADL prostřednictvím příkazů nabídky. Spustíte-li program ADL v profilu mobilního zařízení, zobrazí program ADL nabídku (v okně aplikace nebo na panelu nabídek stolního počítače), která umožňuje zadávat vstup z natočení zařízení nebo programovatelných kláves. Vstup z programovatelných kláves Program ADL simuluje programovatelné klávesy pro tlačítka Zpět, Nabídka a Hledat v mobilním zařízení. Vstup z těchto kláves můžete do simulovaného zařízení odesílat pomocí nabídky zobrazené při spuštění programu ADL s použitím mobilního profilu. Natočení zařízení Program ADL umožňuje simulovat natočení zařízení prostřednictvím nabídky zobrazené při spuštění programu ADL s použitím mobilního profilu. Simulované zařízení můžete otočit doprava nebo doleva. Simulace natočení má vliv pouze na aplikaci, která umožňuje automatickou orientaci. Tuto funkci můžete povolit nastavením elementu autoOrients v deskriptoru aplikace na hodnotu true. Velikost obrazovky Aplikaci lze testovat pro různé velikosti obrazovek nastavením parametru -screensize nástroje ADL. Můžete předat kód představující jeden z předdefinovaných typů obrazovky nebo řetězec obsahující čtyři hodnoty, které představují rozměry normální a maximalizované obrazovky v pixelech. Zadané rozměry v pixelech se vždy týkají rozvržení na výšku, tzn. že šířka je menší než výška. Například následující příkaz otevře program ADL tak, že bude simulovat obrazovku používanou v zařízení Motorola Droid: adl -screensize 480x816:480x854 myApp-app.xml Seznam předdefinovaných typů obrazovky naleznete v části „Použití nástroje ADL“ na stránce 157. Omezení V programu ADL nelze simulovat některá rozhraní API, která nejsou podporována v profilu stolního počítače. Mezi rozhraní API, která nebudou simulována, patří: • Accelerometer • cacheAsBitmapMatrix Poslední aktualizace 31.8.2016 99 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení • CameraRoll • CameraUI • Geolocation • Vícedotyková gesta a speciální tahy v operačních systémech pro stolní počítače, které nepodporují tyto funkce • SystemIdleMode Pokud aplikace používá tyto třídy, měli byste funkce otestovat ve skutečném zařízení nebo v emulátoru. Stejně tak existují rozhraní API, jež fungují při spuštění pod programem ADL ve stolním počítači, ale nefungují ve všech typech mobilních zařízení. Patří sem: • Zvukový kodek Speex a AAC • Podpora usnadnění přístupu programů pro čtení z obrazovky • Protokol RTMPE • Načítání souborů SWF obsahujících bajtový kód jazyka ActionScript • Objekty Shader nástroje PixelBender Nezapomeňte na testování aplikací, které používají tyto funkce v cílových zařízeních, protože program ADL neprovádí úplnou replikaci spouštěcího prostředí. Simulace zařízení pomocí simulátoru iOS Simulátor iOS (pouze počítače Mac) nabízí rychlý způsob spouštění a ladění aplikací iOS. Při testování se simulátorem iOS nebudete potřebovat certifikát vývojáře ani prováděcí profil. Přesto musíte vytvořit certifikát P12, i když to může být certifikát s vlastním podpisem. Ve výchozím nastavení nástroj ADT vždy spustí simulátor iPhone. Chcete-li změnit zařízení simulátoru, nastavte proměnnou prostředí AIR_IOS_SIMULATOR_DEVICE takto: launchctl setenv AIR_IOS_SIMULATOR_DEVICE "iPad Retina" Po nastavení proměnné prostředí proces znovu spusťte a aplikaci spusťte ve vámi vybraném simulátoru. Poznámka: Pokud se simulátorem iOS používáte ADT, musíte vždy zahrnout volbu -platformsdk, která určuje cestu k sadě SDK simulátoru iOS. Spuštění aplikace v simulátoru iOS: 1 Příkaz adt -package použijte s parametrem -target ipa-test-interpreter-simulator nebo -target ipadebug-interpreter-simulator, jak uvádí následující příklad. adt -package -target ipa-test-interpreter-simulator -storetype pkcs12 -keystore Certificates.p12 -storepass password myApp.ipa myApp-app.xml myApp.swf -platformsdk /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk Poznámka: V případě simulátorů již nejsou vyžadovány možnosti podepisování. Do příznaku -keystore tak lze zadat libovolnou hodnotu, protože nástroj ADT ji nebude respektovat. 2 Pomocí příkazu adt -installApp nainstalujte aplikaci do simulátoru systému iOS podle následujícího příkladu: Poslední aktualizace 31.8.2016 100 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení adt -installApp -platform ios -platformsdk /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -device ios-simulator -package sample_ipa_name.ipa 3 Pomocí příkazu adt -launchApp spusťte aplikaci v simulátoru systému iOS podle následujícího příkladu: adt -launchApp -platform ios -platformsdk /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -device ios-simulator -appid sample_ipa_name Chcete-li v simulátoru iOS testovat nativní rozšíření, použijte název platformy iPhone-x86 v souboru extension.xml a určete parametr library.a (statická knihovna) v elementu nativeLibrary podle následujícího příkladu extension.xml: <extension xmlns="http://ns.adobe.com/air/extension/3.1"> <id>com.cnative.extensions</id> <versionNumber>1</versionNumber> <platforms> <platform name="iPhone-x86"> <applicationDeployment> <nativeLibrary>library.a</nativeLibrary> <initializer>TestNativeExtensionsInitializer </initializer> <finalizer>TestNativeExtensionsFinalizer </finalizer> </applicationDeployment> </platform> </platforms> </extension> Poznámka: Při testování nativního rozšíření v simulátoru iOS nepoužívejte statickou knihovnu (soubor .a ) vytvořený pro dané zařízení. Místo toho používejte statickou knihovnu, která je zkompilovaná pro simulátor. Trasování příkazů Spustíte-li mobilní aplikaci ve stolním počítači, vytiskne se výstup trasování do ladicího programu nebo okna terminálu použitého ke spuštění programu ADL. Při spuštění aplikace v zařízení nebo emulátoru můžete na zobrazování výstupu trasování nastavit relaci vzdáleného ladění. Je-li to podporováno, můžete výstup trasování zobrazit také pomocí nástrojů pro vývoj softwaru poskytnutých výrobcem zařízení nebo operačního systému. Ve všech případech je pro vytvoření výstupu běhovým modulem na základě trasovacích příkazů nutné, aby soubory SWF byly kompilovány s povoleným laděním. Příkazy pro vzdálené trasování v systému Android Při spuštění v zařízení Android nebo příslušném emulátoru můžete výstup trasovacích příkazů zobrazit v protokolu systému Android pomocí nástroje Android Debug Bridge (ADB), který je součástí sady Android SDK. Chcete-li zobrazit výstup pro danou aplikaci, spusťte z příkazového řádku nebo z okna terminálu ve vývojovém počítači následující příkaz: tools/adb logcat air.MyApp:I *:S Poslední aktualizace 31.8.2016 101 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení kde MyApp je ID dané aplikace AIR. Argument *:S potlačí výstup ze všech ostatních procesů. Chcete-li kromě výstupu trasování zobrazit pro aplikaci systémové informace, můžete do specifikace filtru logcat zahrnout položku ActivityManager: tools/adb logcat air.MyApp:I ActivityManager:I *:S V těchto ukázkových příkazech se předpokládá, že používáte nástroj ADB ze složky Android SDK nebo že jste přidali složku SDK do proměnné prostředí pro cestu. Poznámka: V prostředí AIR 2.6+ je nástroj ADB součástí sady AIR SDK a naleznete jej ve složce lib/android/bin. Příkazy pro vzdálené trasování v systému iOS Chcete-li zobrazit výstup trasovacích příkazů z aplikace spuštěné v zařízení iOS, musíte navázat relaci vzdáleného ladění pomocí programu Flash Debugger (FDB). Další témata Nápovědy Nástroj Android Debug Bridge: Povolení protokolování logcat „Proměnné prostředí pro cestu“ na stránce 301 Připojení k ladicímu programu Flash Chcete-li ladit aplikaci spuštěnou v mobilním zařízení, můžete spustit ladicí program Flash ve vývojovém počítači a připojit se k němu prostřednictvím sítě. Vzdálené ladění povolíte provedením následujícího postupu: • V systému Android zadejte oprávnění android:permission.INTERNET v deskriptoru aplikace. • Zkompilujte soubory SWF aplikace s povoleným laděním. • Zabalte aplikaci pomocí příkazu -target apk-debug (pro systém Android) nebo -target ipa-debug (pro systém iOS) a příznaku -connect (ladění wifi) nebo -listen (ladění USB). U vzdáleného ladění v síti wifi musí mít zařízení přístup k portu TCP 7935 počítače, ve kterém je spuštěn ladicí program Flash, a to na základě IP adresy nebo plně kvalifikovaného názvu domény. U vzdáleného ladění přes port USB musí mít zařízení přístup k portu TCP 7936 nebo k portu zadanému v příznaku -listen. V systému iOS můžete také určit parametr -target ipa-debug-interpreter nebo -target ipa-debuginterpreter-simulator . Vzdálené ladění pomocí aplikace Flash Professional Jakmile je aplikace připravena k ladění a v deskriptoru aplikace jsou nastavena oprávnění, postupujte takto: 1 Otevřete dialogové okno Nastavení prostředí AIR Android. 2 Na kartě Nasazení: • Jako typ nasazení vyberte možnost Ladění zařízení. • Jako možnost Po publikování vyberte položku „Instalovat aplikaci na připojeném zařízení Android“. • Zrušte výběr položky „Spustit aplikaci na připojeném zařízení Android“ u možnosti Po publikování. • V případě potřeby nastavte cestu k sadě Android SDK. 3 Klepněte na tlačítko Publikovat. Aplikace se nainstaluje a spustí v zařízení. 4 Zavřete dialogové okno Nastavení prostředí AIR Android. Poslední aktualizace 31.8.2016 102 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení 5 V nabídce aplikace Flash Professional vyberte možnost Ladění > Zahájit relaci vzdáleného ladění > ActionScript 3. Aplikace Flash Professional zobrazí na výstupním panelu zprávu „Čeká se na připojení přehrávače“. 6 Spusťte aplikaci v zařízení. 7 V dialogovém okně pro připojení prostředí Adobe AIR zadejte IP adresu nebo hostitelský název počítače, ve kterém je spuštěn ladicí program Flash, a potom klepněte na tlačítko OK. Vzdálené ladění pomocí nástroje FDB prostřednictvím síťového připojení Chcete-li aplikaci spuštěnou v zařízení ladit pomocí nástroje Flash Debugger (FDB) na příkazovém řádku, spusťte nejprve ladicí program ve vývojovém počítači a poté aplikaci v zařízení. V následujícím postupu se ke kompilaci, zabalení a ladění aplikace v zařízení používají nástroje AMXMLC, FDB a ADT. V příkladech se předpokládá, že používáte kombinované prostředí Flex a sadu AIR SDK a že do proměnné prostředí pro cestu je zahrnut adresář bin. (Tento předpoklad je zde uplatněn jen proto, aby bylo možné ukázkové příkazy zjednodušit.) 1 Otevřete okno terminálu nebo příkazového řádku a přejděte do adresáře, který obsahuje zdrojový kód aplikace. 2 Zkompilujte aplikaci pomocí nástroje amxmlc, přičemž povolte ladění: amxmlc -debug DebugExample.as 3 Zabalte aplikaci s použitím cíle apk-debug nebo ipa-debug: Android adt -package -target apk-debug -connect -storetype pkcs12 -keystore ../../AndroidCert.p12 DebugExample.apk DebugExample-app.xml DebugExample.swf iOS adt -package -target ipa-debug -connect -storetype pkcs12 -keystore ../../AppleDeveloperCert.p12 -provisioning-profile test.mobileprovision DebugExample.apk DebugExample-app.xml DebugExample.swf V případě, že pro ladění vždy používáte stejný název hostitele nebo IP adresu, můžete tuto hodnotu vložit za příznak -connect. Aplikace se automaticky pokusí k této IP adrese nebo názvu hostitele připojit. Jinak budete muset tyto údaje zadávat v zařízení při každém zahájení ladění. 4 Nainstalujte aplikaci. V systému Android můžete použít příkaz -installApp nástroje ADT: adt -installApp -platform android -package DebugExample.apk U systému iOS můžete aplikaci nainstalovat pomocí příkazu -installApp nástroje ADT nebo pomocí služby iTunes. 5 V druhém okně terminálu nebo příkazového řádku spusťte nástroj FDB: fdb 6 V okně FDB zadejte příkaz run: Adobe fdb (Flash Player Debugger) [build 14159] Copyright (c) 2004-2007 Adobe, Inc. All rights reserved. (fdb) run Waiting for Player to connect 7 Spusťte aplikaci v zařízení. 8 Jakmile se aplikace v zařízení nebo emulátoru spustí, otevře se dialogové okno pro připojení prostředí Adobe AIR. (Pokud jste při balení aplikace zadali název hostitele nebo IP adresu v možnosti -connect, automaticky se pokusí připojit pomocí této adresy.) Zadejte příslušnou adresu a klepněte na tlačítko OK. Poslední aktualizace 31.8.2016 103 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Chcete-li se připojit k ladicímu programu v tomto režimu, musí být zařízení schopno adresu nebo název hostitele přeložit a připojit se k portu TCP 7935. Je vyžadováno připojení k síti. 9 Když se vzdálený běhový modul připojí k ladicímu programu, můžete pomocí příkazu FDB break nastavit body přerušení a poté zahájit provádění příkazem continue: (fdb) run Waiting for Player to connect Player connected; session starting. Set breakpoints and then type 'continue' to resume the session. [SWF] Users:juser:Documents:FlashProjects:DebugExample:DebugExample.swf - 32,235 bytes after decompression (fdb) break clickHandler Breakpoint 1 at 0x5993: file DebugExample.as, line 14 (fdb) continue Vzdálené ladění pomocí nástroje FDB přes port USB AIR 2.6 (Android) AIR 3.3 (iOS) Chcete-li aplikaci ladit prostřednictvím připojení USB, můžete ji zabalit s použitím možnosti -listen místo možnosti -connect. Pokud zadáte možnost -listen, běhový modul při spuštění aplikace naslouchá připojení ladicího programu Flash (FDB) na portu TCP 7936. Pak spusťte nástroj FDB s parametrem -p a nástroj FDB iniciuje připojení. Ladění přes port USB pro systém Android Aby se mohl ladicí program Flash, který je spuštěn ve stolním počítači, připojit k běhovému modulu AIR spuštěnému v zařízení nebo emulátoru, je nutné pomocí nástroje Android Debug Bridge (ADB) ze sady Android SDK nebo iOS Debug Bridge (IDB) ze sady AIR SDK přesměrovat port zařízení do portu stolního počítače. 1 Otevřete okno terminálu nebo příkazového řádku a přejděte do adresáře, který obsahuje zdrojový kód aplikace. 2 Zkompilujte aplikaci pomocí nástroje amxmlc, přičemž povolte ladění: amxmlc -debug DebugExample.as 3 Zabalte aplikaci pomocí příslušného cíle ladění (například apk-debug) a určete možnost -listen: adt -package -target apk-debug -listen -storetype pkcs12 -keystore ../../AndroidCert.p12 DebugExample.apk DebugExample-app.xml DebugExample.swf 4 Připojte zařízení k ladicímu počítači pomocí kabelu USB. (Tento postup můžete použít také k ladění aplikace spuštěné v emulátoru – v takovém případě není připojení USB nutné, respektive možné.) 5 Nainstalujte aplikaci. Můžete použít příkaz -installApp nástroje ADT: adt -installApp -platform android -package DebugExample.apk 6 Pomocí nástroje Android ADB předejte port TCP 7936 ze zařízení nebo emulátoru do stolního počítače: adb forward tcp:7936 tcp:7936 7 Spusťte aplikaci v zařízení. 8 V okně terminálu nebo příkazu spusťte nástroj FDB s použitím možnosti -p: fdb -p 7936 9 V okně FDB zadejte příkaz run: Poslední aktualizace 31.8.2016 104 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Adobe fdb (Flash Player Debugger) [build 14159] Copyright (c) 2004-2007 Adobe, Inc. All rights reserved. (fdb) run 10 Nástroj FDB se pokusí připojit se k aplikaci. 11 Po navázání vzdáleného připojení můžete pomocí příkazu FDB break nastavit body přerušení a poté zahájit provádění příkazem continue: (fdb) run Player connected; session starting. Set breakpoints and then type 'continue' to resume the session. [SWF] Users:juser:Documents:FlashProjects:DebugExample:DebugExample.swf - 32,235 bytes after decompression (fdb) break clickHandler Breakpoint 1 at 0x5993: file DebugExample.as, line 14 (fdb) continue Poznámka: Port číslo 7936 se používá jako výchozí pro ladění přes port USB v běhovém modulu AIR i nástroji FDB. Jiné porty můžete zadat pomocí parametru -listen port nástroje ADT a parametru -p port nástroje FDB. V tom případě je nutné pomocí nástroje Android Debug Bridge předat číslo portu zadané v nástroji ADT do portu v nástroji FDB: adb forward tcp:adt_listen_port# tcp:fdb_port# Ladění přes port USB pro systém iOS Aby se mohl ladicí program Flash, který je spuštěn ve stolním počítači, připojit k běhovému modulu AIR spuštěnému v zařízení nebo emulátoru, je nutné pomocí nástroje iOS Debug Bridge (IDB) ze sady AIR SDK přesměrovat port zařízení do portu stolního počítače. 1 Otevřete okno terminálu nebo příkazového řádku a přejděte do adresáře, který obsahuje zdrojový kód aplikace. 2 Zkompilujte aplikaci pomocí nástroje amxmlc, přičemž povolte ladění: amxmlc -debug DebugExample.as 3 Aplikaci zabalte pomocí příslušného cíle ladění (jako je ipa-debug nebo ipa-debug-interpreter a určete volbu -listen: adt -package -target ipa-debug-interpreter -listen 16000 xyz.mobileprovision -storetype pkcs12 -keystore Certificates.p12 -storepass pass123 OutputFile.ipa InputFile-app.xml InputFile.swf 4 Připojte zařízení k ladicímu počítači pomocí kabelu USB. (Tento postup můžete použít také k ladění aplikace spuštěné v emulátoru – v takovém případě není připojení USB nutné, respektive možné.) 5 Nainstalujte a spusťte aplikaci v zařízení se systémem iOS. V prostředí AIR 3.4 a vyšším můžete použít příkaz adt -installApp a nainstalovat aplikaci přes rozhraní USB. 6 Určete popisovač zařízení pomocí příkazu idb -devices (nástroj IDB je umístěn ve složce air_sdk_root/lib/aot/bin/iOSBin/idb): ./idb -devices List of attached devices Handle UUID 1 91770d8381d12644df91fbcee1c5bbdacb735500 Poznámka: (AIR 3.4 a vyšší) K určení popisovače zařízení, můžete namísto příkazu idb -devices použít příkaz adt -devices. 7 Přesměrujte port ve stolním počítači do portu zadaného v parametru adt -listen (v tomto případě 16000; výchozí hodnota je 7936) pomocí nástroje IDB a ID zařízení nalezeném v předchozím kroku: Poslední aktualizace 31.8.2016 105 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení idb -forward 7936 16000 1 V tomto příkladu je 7936 port stolního počítače, 16000 je port, ve kterém naslouchá připojené zařízení a 1 je ID připojeného zařízení. 8 V okně terminálu nebo příkazu spusťte nástroj FDB s použitím možnosti -p: fdb -p 7936 9 V okně FDB zadejte příkaz run: Adobe fdb (Flash Player Debugger) [build 23201] Copyright (c) 2004-2007 Adobe, Inc. All rights reserved. (fdb) run 10 Nástroj FDB se pokusí připojit se k aplikaci. 11 Po navázání vzdáleného připojení můžete pomocí příkazu FDB break nastavit body přerušení a poté zahájit provádění příkazem continue: Poznámka: Port číslo 7936 se používá jako výchozí pro ladění přes port USB v běhovém modulu AIR i nástroji FDB. Jiné porty můžete zadat pomocí parametru -listen port nástroje IDB a parametru -p port nástroje FDB. Instalace prostředí AIR a aplikací AIR v mobilních zařízeních Koncoví uživatelé vaší aplikace mohou nainstalovat běhový modul AIR a aplikace AIR pomocí normálního mechanismu pro aplikace a distribuci v jejich zařízení. Například v systému Android mohou uživatelé instalovat aplikace z webu Android Market. Nebo pokud v nastavení aplikací povolili instalaci aplikací z neznámých zdrojů, mohou aplikaci nainstalovat klepnutím na odkaz na webové stránce nebo zkopírováním balíčku aplikace do zařízení a jejím spuštěním. Jestliže se uživatel pokusí nainstalovat aplikaci pro systém Android, ale nemá dosud nainstalováno běhový modul AIR, pak bude automaticky přesměrován na web Market, odkud může běhový modul nainstalovat. V systému iOS existují dva způsoby distribuce aplikací koncovým uživatelům. Primárním distribučním kanálem je obchod Apple App Store. Můžete také použít distribuci ad hoc, při které lze instalaci aplikace povolit omezenému počtu uživatelů, aniž by bylo nutné využít obchod App Store. Instalace běhového modulu AIR a aplikací pro vývoj Protože aplikace AIR v mobilních zařízeních se instalují jako nativní balíčky, můžete pro instalaci aplikací pro testování využít běžné funkce platformy. Pokud je to podporováno, lze pro instalaci běhového modulu AIR a aplikací AIR použít příkazy nástroje ADT. Tato metoda je v současné době podporována v systému Android. V systému iOS lze aplikace pro testování nainstalovat pomocí aplikace iTunes. Testovací aplikace musejí být podepsány certifikátem pro podepisování kódu od společnosti Apple, který je speciálně vydán pro vývoj aplikací a je přibalen do prováděcího profilu pro vývoj. V systému iOS představuje aplikace AIR soběstačný balíček. Samostatný běhový modul se nepoužívá. Instalace aplikací AIR pomocí nástroje ADT Při vývoji aplikací AIR můžete běhový modul i aplikace nainstalovat a odinstalovat pomocí nástroje ADT. (Tyto příkazy mohou být rovněž integrovány do daného prostředí IDE, takže nemusíte nástroj ADT spouštět sami.) Poslední aktualizace 31.8.2016 106 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Běhový modul AIR lze do zařízení nebo emulátoru nainstalovat pomocí nástroje AIR ADT. Musí být nainstalována sada SDK pro dané zařízení. Použijte příkaz -installRuntime: adt -installRuntime -platform android -device deviceID -package path-to-runtime Pokud není zadán parametr -package, je z balíčků běhového modulu dostupných v nainstalované sadě AIR SDK zvolen ten, který odpovídá danému zařízení nebo emulátoru. Chcete-li aplikaci AIR nainstalovat do zařízení se systémem Android nebo iOS (prostředí AIR 3.4 nebo novější), použijte obdobný příkaz -installApp: adt -installApp -platform android -device deviceID -package path-to-app Hodnota nastavená pro argument -platform by měla odpovídat zařízení, do kterého provádíte instalaci. Poznámka: Před opětovnou instalací je nutné odebrat stávající verze běhového modulu AIR nebo aplikace AIR. Instalace aplikací AIR do zařízení iOS pomocí služby iTunes Instalace aplikace AIR do zařízení iOS pro testování: 1 Otevřete aplikaci iTunes. 2 Pokud jste tak ještě neučinili, přidejte do aplikace iTunes prováděcí soubor pro svou aplikaci. V aplikaci iTunes vyberte položky File (Soubor) > Add to Library (Přidat do knihovny). Poté vyberte soubor prováděcího profilu (bude označen jako typ souboru mobileprovision). 3 Některé verze aplikace iTunes aplikaci nenahradí, pokud je již nainstalována stejná verze aplikace. V takovém případě svou aplikaci odstraňte ze zařízení i ze seznamu aplikací v aplikaci iTunes. 4 Poklepejte na soubor IPA aplikace. Aplikace by se měla objevit v seznamu aplikací v aplikaci iTunes. 5 Připojte zařízení k portu USB v počítači. 6 V aplikaci iTunes vyhledejte zařízení na záložce Application (Aplikace) a ujistěte se, že je aplikace vybrána v seznamu aplikací určených k instalaci. 7 Vyberte zařízení v levém seznamu aplikace iTunes. Poté klepněte na tlačítko Sync (Synchronizovat). Aplikace Hello World se po dokončení synchronizace objeví v zařízení iPhone. Pokud není nová verze nainstalována, odstraňte ji ze zařízení i ze seznamu aplikací v aplikaci iTunes a následně celý tento postup opakujte. K této situaci může dojít, pokud aktuálně nainstalovaná verze používá stejné ID i verzi aplikace. Další témata Nápovědy „Příkaz installRuntime nástroje ADT“ na stránce 174 „Příkaz installApp nástroje ADT“ na stránce 172 Spouštění aplikací AIR v zařízení Nainstalované aplikace AIR můžete spustit pomocí uživatelského rozhraní zařízení. Pokud je to podporováno, můžete aplikace spouštět také vzdáleně pomocí nástroje AIR ADT: adt -launchApp -platform android -device deviceID -appid applicationID Hodnota argumentu -appid musí představovat ID aplikace AIR, která má být spuštěna. Použijte hodnotu zadanou v deskriptoru aplikace AIR (bez prefixu air. přidaného během balení). Pokud je připojeno a spuštěno pouze jedno zařízení nebo emulátor, můžete vynechat příznak -device. Hodnota nastavená pro argument -platform by měla odpovídat zařízení, na které provádíte instalaci. V současné době je jedinou podporovanou hodnotou android. Poslední aktualizace 31.8.2016 107 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Odebrání běhového modulu a aplikací AIR K odebírání aplikací můžete použít běžné prostředky poskytované operačním systémem zařízení. Pokud je to podporováno, můžete pro odebrání běhového modulu a aplikací AIR použít také nástroj AIR ADT. K odebrání běhového modulu použijte příkaz -uninstallRuntime: adt -uninstallRuntime -platform android -device deviceID K odinstalaci aplikace použijte příkaz -uninstallApp: adt -uninstallApp -platform android -device deviceID -appid applicationID Pokud je připojeno a spuštěno pouze jedno zařízení nebo emulátor, můžete vynechat příznak -device. Hodnota nastavená pro argument -platform by měla odpovídat zařízení, na které provádíte instalaci. V současné době je jedinou podporovanou hodnotou android. Nastavení emulátoru Chcete-li aplikaci AIR spustit v emulátoru zařízení, je obvykle nutné pomocí sady SDK pro zařízení vytvořit a spustit instanci emulátoru ve vývojovém počítači. Potom můžete do emulátoru nainstalovat verzi běhového modulu AIR pro emulátor a aplikaci AIR. Mějte na paměti, že aplikace v emulátoru obvykle běží mnohem pomaleji než v samotném zařízení. Vytvoření emulátoru systému Android 1 Spusťte sadu Android SDK a aplikaci AVD Manager: • V systému Windows spusťte soubor Setup.exe sady SDK v kořenovém adresáři sady Android SDK. • V systému Mac OS spusťte aplikaci android v podadresáři tools v adresáři sady Android SDK. 2 Vyberte možnost Settings (Nastavení) a vyberte možnost „Force https://“ (Vynutit https://). 3 Vyberte možnost Available Packages (Dostupné balíčky). Měl by se zobrazit seznam dostupných sad Android SDK. 4 Vyberte kompatibilní sadu Android SDK (Android 2.3 nebo novější) a klepněte na tlačítko Install Selected (Instalovat vybrané). 5 Vyberte možnost Virtual Devices (Virtuální zařízení) a klepněte na tlačítko New (Nové). 6 Proveďte následující nastavení: • název virtuálního zařízení, • cílové rozhraní API, jako například Android 2.3, API level 8, • velikost pro kartu SD (například 1024), • vzhled (například výchozí HVGA). 7 Klepněte na tlačítko Create AVD (Vytvořit AVD). Mějte na paměti, že vytváření virtuálních zařízení může v závislosti na konfiguraci systému chvíli trvat. Nyní můžete nové virtuální zařízení spustit. 1 V aplikaci AVD Manager vyberte položku Virtual Device (Virtuální zařízení). Virtuální zařízení, které jste vytvořili podle postupu výše, by mělo objevit v seznamu. 2 Vyberte virtuální zařízení a klepněte na tlačítko Start. 3 Na další obrazovce klepněte na tlačítko Launch (Spustit). Poslední aktualizace 31.8.2016 108 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Ve stolním počítači by se mělo otevřít okno emulátoru. To může trvat několik sekund. Také může chvíli trvat inicializace operačního systému Android. Do emulátoru je možné nainstalovat aplikace zabalené pomocí příkazů apkdebug a apk-emulator. Aplikace zabalené s použitím cíle apk v emulátoru nefungují. Další témata Nápovědy http://developer.android.com/guide/developing/tools/othertools.html#android http://developer.android.com/guide/developing/tools/emulator.html Aktualizace mobilních aplikací AIR Mobilní aplikace AIR jsou distribuovány jako nativní balíčky a proto používají standardní mechanismy aktualizací jako ostatní aplikace na dané platformě. To obvykle zahrnuje odeslání do stejného tržiště nebo obchodu s aplikacemi, které byly použity k distribuci původní aplikace. Mobilní aplikace AIR nemohou používat třídu Updater ani rozhraní aktualizačního programu prostředí AIR. Aktualizace aplikací AIR v systému Android Aplikace distribuované na webu Android Market je možné aktualizovat umístěním nové verze na web Market, a to za předpokladu, že jsou splněny následující podmínky (tyto zásady vynucuje web Market, nikoli prostředí AIR): • Balíček APK je podepsán pomocí stejného certifikátu. • ID aplikace AIR je stejné. • Hodnota versionNumber v deskriptoru aplikace je vyšší. (Měli byste také zvýšit hodnotu versionLabel, pokud se používá.) Uživatelé, kteří si aplikaci z webu Android Market stáhli, budou softwarem jejich zařízení upozorněni, že je k dispozici aktualizace. Další témata Nápovědy Vývojáři systému Android: Publikování aktualizací na webu Android Market Aktualizace aplikací AIR v systému iOS V případě aplikací AIR distribuovaných prostřednictvím obchodu s aplikacemi iTunes lze aplikaci aktualizovat odesláním aktualizace do tohoto obchodu, pokud platí všechny následující předpoklady (tyto zásady vynucuje obchod s aplikacemi Apple, nikoli prostředí AIR): • Certifikát pro podpis kódu a prováděcí profily jsou vystaveny na stejné Apple ID. • Balíček IPA používá stejné ID balíku Apple. • Aktualizace nezmenší fond podporovaných zařízení (jinými slovy, pokud původní aplikace podporuje zařízení se systémem iOS 3, nemůžete vytvořit aktualizaci, která nepodporuje systém iOS 3). Důležité: Sada AIR SDK verze 2.6 a novější nepodporuje systém iOS 3, ale prostředí AIR 2 ano, a proto nelze při aktualizaci publikované aplikace systému iOS, která byla vyvinuta pomocí prostředí AIR 2, použít aktualizaci vyvinutou pomocí prostředí AIR 2.6+. Poslední aktualizace 31.8.2016 109 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Použití nabízených oznámení Nabízená oznámení umožňují poskytovatelům vzdálených oznámení odesílat oznámení do aplikací spuštěných v mobilním zařízení. Prostředí AIR 3.4 podporuje nabízená oznámení pro zařízení se systémem iOS prostřednictvím služby Apple Push Notification service (APNs). Poznámka: Chcete-li povolit nabízená oznámení pro aplikaci AIR pro systém Android, použijte nativní rozšíření, jako je as3c2dm vyvinuté propagátorem společnosti Adobe Piotrem Walczyszynem. Ve zbytku této části je popsán postup povolení nabízených oznámení v aplikacích AIR pro systém iOS. Poznámka: U tohoto pojednání se předpokládá, že máte ID vývojáře společnosti Apple, ovládáte pracovní postupy vývoje v systému iOS a nasadili jste alespoň jednu aplikaci do zařízení se systémem iOS. Přehled nabízených oznámení Služba Apple Push Notification service (APNs) umožňuje poskytovatelům vzdálených oznámení odesílat oznámení do aplikací spuštěných v zařízeních se systémem iOS. Služba APNs podporuje následující typy oznámení: • Výstrahy • Informační symboly • Zvuky Veškeré informace o službě APNs naleznete na webu developer.apple.com. Používání nabízených oznámení ve vaší aplikaci se týká více aspektů: • Klientská aplikace – registruje se pro nabízená oznámení, komunikuje s poskytovateli vzdálených oznámení a přijímá vzdálená oznámení. • iOS – spravuje interakci klientské aplikace se službou APNs. • APNs – během registrace klienta poskytuje identifikátor tokenID a předává oznámení od poskytovatele vzdálených oznámení do systému iOS. • Poskytovatel vzdálených oznámení – uchovává informace o identifikátorech tokenId a klientských aplikacích a předává oznámení do služby APNs. Pracovní postup registrace Pracovní postup registrování nabízených oznámení u služby na straně serveru je následující: 1 Klientská aplikace vydá požadavek, aby systém iOS povolil nabízená oznámení. 2 Systém iOS tento požadavek předá do služby APNs. 3 Server APNs vrátí do systému iOS identifikátor tokenId. 4 Systém iOS vrátí identifikátor tokenId do klientské aplikace. 5 Klientská aplikace (s použitím mechanismu specifického pro aplikace) předá identifikátor tokenId poskytovateli vzdálených oznámení, který jej uchovává pro účely nabízených oznámení. Pracovní postup oznámení Pracovní postup oznámení je následující: 1 Poskytovatel vzdálených oznámení vygeneruje oznámení a odešle do služby APNs datovou část s identifikátorem tokenId. Poslední aktualizace 31.8.2016 110 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení 2 Služba APNs předá oznámení do systému iOS v zařízení. 3 Systém iOS nabídne datovou část oznámení aplikaci. Rozhraní API pro nabízená oznámení Prostředí AIR 3.4 představilo sadu rozhraní API, která podporují nabízená oznámení systému iOS. Tato rozhraní API se nacházejí v balíčku flash.notifications a zahrnují následující třídy: • NotificationStyle – definuje konstanty pro typy oznámení ALERT, BADGE a SOUND. • RemoteNotifier – umožňuje přihlášení a odhlášení odběru nabízených oznámení. • RemoteNotifierSubscribeOptions – umožňuje výběr oznámení, která budou přijímána. Pomocí vlastnosti notificationStyles lze definovat vektor řetězců, které slouží k registraci pro více typů oznámení. Prostředí AIR 3.4 také obsahuje událost flash.events.RemoteNotificationEvent, kterou rozesílá třída RemoteNotifier: • Po úspěšném vytvoření přihlášení aplikace k odběru a přijetí nového identifikátoru tokenId ze služby APNs • Po přijetí nového vzdáleného oznámení Dále třída RemoteNotifier rozešle událost flash.events.StatusEvent, pokud během procesu přihlášení k odběru dojde k chybě. Správa nabízených oznámení v aplikaci Chcete-li svou aplikaci zaregistrovat pro nabízená oznámení, musíte provést tyto kroky: • Vytvořit v aplikaci kód, který ji přihlásí k odběru nabízených oznámení • Povolit nabízená oznámení v souboru XML aplikace • Vytvořit prováděcí profil a certifikát, které povolí služby nabízení systému iOS Následující vzorový kód s poznámkami slouží k přihlášení odběru nabízených oznámení a zpracování událostí nabízených oznámení: package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.*; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.MouseEvent; import flash.net.*; import flash.text.TextField; import flash.text.TextFormat; import flash.ui.Multitouch; import flash.ui.MultitouchInputMode; // Required packages for push notifications import flash.notifications.NotificationStyle; import flash.notifications.RemoteNotifier; import flash.notifications.RemoteNotifierSubscribeOptions; import flash.events.RemoteNotificationEvent; import flash.events.StatusEvent; [SWF(width="1280", height="752", frameRate="60")] Poslední aktualizace 31.8.2016 111 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení public class TestPushNotifications extends Sprite { private var notiStyles:Vector.<String> = new Vector.<String>;; private var tt:TextField = new TextField(); private var tf:TextFormat = new TextFormat(); // Contains the notification styles that your app wants to receive private var preferredStyles:Vector.<String> = new Vector.<String>(); private var subscribeOptions:RemoteNotifierSubscribeOptions = new RemoteNotifierSubscribeOptions(); private var remoteNot:RemoteNotifier = new RemoteNotifier(); private var subsButton:CustomButton = new CustomButton("Subscribe"); private var unSubsButton:CustomButton = new CustomButton("UnSubscribe"); private var clearButton:CustomButton = new CustomButton("clearText"); private var urlreq:URLRequest; private var urlLoad:URLLoader = new URLLoader(); private var urlString:String; public function TestPushNotifications() { super(); Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; tf.size = 20; tf.bold = true; tt.x=0; tt.y =150; tt.height = stage.stageHeight; tt.width = stage.stageWidth; tt.border = true; tt.defaultTextFormat = tf; addChild(tt); subsButton.x = 150; subsButton.y=10; subsButton.addEventListener(MouseEvent.CLICK,subsButtonHandler); stage.addChild(subsButton); unSubsButton.x = 300; unSubsButton.y=10; unSubsButton.addEventListener(MouseEvent.CLICK,unSubsButtonHandler); stage.addChild(unSubsButton); clearButton.x = 450; clearButton.y=10; clearButton.addEventListener(MouseEvent.CLICK,clearButtonHandler); stage.addChild(clearButton); // tt.text += "\n SupportedNotification Styles: " + Poslední aktualizace 31.8.2016 112 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení RemoteNotifier.supportedNotificationStyles.toString() + "\n"; tt.text += "\n Before Preferred notificationStyles: " + subscribeOptions.notificationStyles.toString() + "\n"; // Subscribe to all three styles of push notifications: // ALERT, BADGE, and SOUND. preferredStyles.push(NotificationStyle.ALERT ,NotificationStyle.BADGE,NotificationStyle.SOUND ); subscribeOptions.notificationStyles= preferredStyles; tt.text += "\n After Preferred notificationStyles:" + subscribeOptions.notificationStyles.toString() + "\n"; remoteNot.addEventListener(RemoteNotificationEvent.TOKEN,tokenHandler); remoteNot.addEventListener(RemoteNotificationEvent.NOTIFICATION,notificationHandler); remoteNot.addEventListener(StatusEvent.STATUS,statusHandler); this.stage.addEventListener(Event.ACTIVATE,activateHandler); } // Apple recommends that each time an app activates, it subscribe for // push notifications. public function activateHandler(e:Event):void{ // Before subscribing to push notifications, ensure the device supports it. // supportedNotificationStyles returns the types of notifications // that the OS platform supports if(RemoteNotifier.supportedNotificationStyles.toString() != "") { remoteNot.subscribe(subscribeOptions); } else{ tt.appendText("\n Remote Notifications not supported on this Platform !"); } } public function subsButtonHandler(e:MouseEvent):void{ remoteNot.subscribe(subscribeOptions); } // Optionally unsubscribe from push notfications at runtime. public function unSubsButtonHandler(e:MouseEvent):void{ remoteNot.unsubscribe(); tt.text +="\n UNSUBSCRIBED"; } public function clearButtonHandler(e:MouseEvent):void{ tt.text = " "; } // Receive notification payload data and use it in your app public function notificationHandler(e:RemoteNotificationEvent):void{ tt.appendText("\nRemoteNotificationEvent type: " + e.type + "\nbubbles: "+ e.bubbles + "\ncancelable " +e.cancelable); for (var x:String in e.data) { Poslední aktualizace 31.8.2016 113 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení tt.text += "\n"+ x + ": " + e.data[x]; } } // If the subscribe() request succeeds, a RemoteNotificationEvent of // type TOKEN is received, from which you retrieve e.tokenId, // which you use to register with the server provider (urbanairship, in // this example. public function tokenHandler(e:RemoteNotificationEvent):void { tt.appendText("\nRemoteNotificationEvent type: "+e.type +"\nBubbles: "+ e.bubbles + "\ncancelable " +e.cancelable +"\ntokenID:\n"+ e.tokenId +"\n"); urlString = new String("https://go.urbanairship.com/api/device_tokens/" + e.tokenId); urlreq = new URLRequest(urlString); urlreq.authenticate = true; urlreq.method = URLRequestMethod.PUT; URLRequestDefaults.setLoginCredentialsForHost ("go.urbanairship.com", "1ssB2iV_RL6_UBLiYMQVfg","t-kZlzXGQ6-yU8T3iHiSyQ"); urlLoad.load(urlreq); urlLoad.addEventListener(IOErrorEvent.IO_ERROR,iohandler); urlLoad.addEventListener(Event.COMPLETE,compHandler); urlLoad.addEventListener(HTTPStatusEvent.HTTP_STATUS,httpHandler); } private function iohandler(e:IOErrorEvent):void { tt.appendText("\n In IOError handler" + e.errorID +" " +e.type); } private function compHandler(e:Event):void{ tt.appendText("\n In Complete handler,"+"status: " +e.type + "\n"); } private function httpHandler(e:HTTPStatusEvent):void{ tt.appendText("\n in httpstatus handler,"+ "Status: " + e.status); } // If the subscription request fails, StatusEvent is dispatched with // error level and code. public function statusHandler(e:StatusEvent):void{ tt.appendText("\n statusHandler"); tt.appendText("event Level" + e.level +"\nevent code " + e.code + "\ne.currentTarget: " + e.currentTarget.toString()); } } } Povolení nabízených oznámení v souboru XML aplikace Chcete-li ve své aplikaci používat nabízená oznámení, zadejte do tagu Entitlements (pod tagem iphone) následující kód: Poslední aktualizace 31.8.2016 114 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení <iphone> ... <Entitlements> <![CDATA[ <key>aps-environment</key> <string>development</string> ]]> </Entitlements> </iphone> Až budete připraveni přesunout aplikaci do úložiště App Store, musíte v elementu <string> nahradit řetězec „development“ řetězcem „production“: <string>production</string> Pokud vaše aplikace podporuje lokalizované řetězce, zadejte do tagu supportedLanguages pod tagem intialWindow jazyky, jak je uvedeno v následujícím příkladu: <supportedLanguages>en de cs es fr it ja ko nl pl pt</supportedLanguages> Vytvoření prováděcího profilu a certifikátu, které povolí služby nabízení systému iOS Chcete-li povolit komunikaci aplikace se službou APNs, musíte aplikaci sbalit s prováděcím profilem a certifikátem, které povolují služby nabízení systému iOS, následujícím způsobem: 1 Přihlaste se ke svému účtu vývojáře společnosti Apple. 2 Přejděte k portálu Provisioning Portal. 3 Klikněte na kartu App IDs (ID aplikací). 4 Klikněte na tlačítko New App ID (Nové ID aplikace). 5 Zadejte popis a identifikátor balíčku (v identifikátoru balíčku se nesmí používat znak *). 6 Klikněte na tlačítko Submit (Odeslat). Portál Provisioning Portal vygeneruje váš identifikátor App ID a znovu zobrazí stránku App IDs (ID aplikací). 7 Klikněte na tlačítko Configure (Konfigurovat) vpravo od vašeho ID aplikace. Zobrazí se stránka Configure App ID (Konfigurace ID aplikace). 8 Zaškrtněte políčko Enable for Apple Push Notification service (Povolit pro službu Apple Push Notification service). Povšimněte si, že existují dva typy certifikátů SSL pro nabízení: jeden pro vývoj a testování a jeden pro produkci. 9 Klikněte na tlačítko Configure (Konfigurovat) vpravo od položky Development Push SSL Certificate (Vývojový certifikát SSL pro nabízení). Zobrazí se stránka Generate Certificate Signing Request (CSR) (Generování požadavku CSR). 10 Podle pokynů na stránce vytvořte pomocí nástroje Keychain Access požadavek CSR. 11 Vygenerujte certifikát SSL. 12 Tento certifikát SSL si stáhněte a nainstalujte. 13 (Volitelný krok) Zopakujte kroky 9 až 12 pro produkční certifikát SSL pro nabízení. 14 Klikněte na tlačítko Done (Hotovo). Zobrazí se stránka Configure App ID (Konfigurace ID aplikace). 15 Klikněte na tlačítko Done (Hotovo). Zobrazí se stránka App IDs (ID aplikací). Povšimněte si zeleného kruhu vedle položky Push Notification (Nabízené oznámení) pro vaše ID aplikace. 16 Je nutné, abyste svoje certifikáty uložili, protože se budou používat při komunikaci aplikace s poskytovatelem. 17 Kliknutím na kartu Provisioning (Prováděcí) zobrazíte stránku Provisioning Profiles (Prováděcí profily). Poslední aktualizace 31.8.2016 115 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení 18 Vytvořte prováděcí profil pro svoje nové ID aplikace a stáhněte si ho. 19 Klikněte na kartu Certificates (Certifikáty) a stáhněte si nový certifikát pro nový prováděcí profil. Použití zvuku pro nabízená oznámení Chcete-li pro svou aplikaci povolit zvuková oznámení, sbalte zvukové soubory jako kterýkoli jiný datový zdroj, ale ve stejné složce jako soubory SWF a app-xml. Například: Build/adt -package -target ipa-app-store -provisioning-profile _-_.mobileprovision -storetype pkcs12 -keystore _-_.p12 test.ipa test-app.xml test.swf sound.caf sound1.caf Společnost Apple podporuje následující formáty zvukových dat (v souborech AIFF, WAV nebo CAF): • Lineární PCM • MA4 (IMA/ADPCM) • uLaw • aLaw Použití lokalizovaných výstražných oznámení Chcete-li ve své aplikaci používat lokalizovaná výstražná oznámení, sbalte lokalizované řetězce do složek lproj. Můžete například podporovat výstrahy ve španělštině, jak je uvedeno zde: 1 Vytvořte složku es.lproj v projektu na stejné úrovni jako soubor app-xml. 2 Ve složce es.lproj vytvořte textový soubor s názvem Localizable.Strings. 3 Otevřete soubor Localizable.Strings v textovém editoru a přidejte klíče zpráv a odpovídající lokalizované řetězce. Například: "PokeMessageFormat" = "La notificación de alertas en español." 4 Uložte soubor. 5 Když aplikace přijme výstražné oznámení s touto hodnotou klíče a jazykem zařízení bude španělština, zobrazí se přeložený text výstrahy. Konfigurace poskytovatele vzdálených oznámení Potřebujete poskytovatele vzdálených oznámení, který bude do vaší aplikace odesílat nabízená oznámení. Tato serverová aplikace slouží jako poskytovatel, přijímá váš nabízený vstup a předává oznámení a data oznámení do služby APNs, která pak nabízená oznámení odesílá do klientské aplikace. Podrobné informace o nabízení oznámení z poskytovatele vzdálených oznámení naleznete v článku Komunikace poskytovatele se službou Apple Push Notification Service v knihovně pro vývojáře společnosti Apple. Volby poskytovatele vzdálených oznámení Volby pro poskytovatele vzdálených oznámení jsou tyto: • Vytvoření vlastního poskytovatele na základě serveru APNS-php typu open source. Server PHP lze zřídit pomocí webu http://code.google.com/p/apns-php/. Tento projekt Google Code umožňuje navrhnout rozhraní, které bude splňovat vaše specifické požadavky. • Použití poskytovatele služeb. Například web http://urbanairship.com/ nabízí poskytovatele služby APNs k okamžitému použití. Po registraci u této služby začnete poskytnutím tokenu vašeho zařízení pomocí kódu podobného tomuto: Poslední aktualizace 31.8.2016 116 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení private var urlreq:URLRequest; private var urlLoad:URLLoader = new URLLoader(); private var urlString:String; //When subscription is successful then only call the following code urlString = new String("https://go.urbanairship.com/api/device_tokens/" + e.tokenId); urlreq = new URLRequest(urlString); urlreq.authenticate = true; urlreq.method = URLRequestMethod.PUT; URLRequestDefaults.setLoginCredentialsForHost("go.urbanairship.com", "Application Key","Application Secret"); urlLoad.load(urlreq); urlLoad.addEventListener(IOErrorEvent.IO_ERROR,iohandler); urlLoad.addEventListener(Event.COMPLETE,compHandler); urlLoad.addEventListener(HTTPStatusEvent.HTTP_STATUS,httpHandler); private function iohandler(e:IOErrorEvent):void{ trace("\n In IOError handler" + e.errorID +" " +e.type); } private function compHandler(e:Event):void{ trace("\n In Complete handler,"+"status: " +e.type + "\n"); } private function httpHandler(e:HTTPStatusEvent):void{ tt.appendText("\n in httpstatus handler,"+ "Status: " + e.status); } Pak můžete pomocí nástrojů společnosti Urban Airship odesílat zkušební oznámení. Certifikáty pro poskytovatele vzdálených oznámení Certifikát SSL a privátní klíč (vygenerovaný dříve) je nutné zkopírovat do vhodného umístění na serveru poskytovatele vzdálených oznámení. Tyto dva soubory se obvykle spojují do jednoho souboru .pem. K tomu použijete následující kroky: 1 Otevřete okno terminálu. 2 Zadáním následujícího příkazu vytvoříte z certifikátu SSL soubor .pem: openssl x509 -in aps_developer_identity.cer -inform der -out TestPushDev.pem 3 Zadáním následujícího příkazu vytvoříte soubor PEM souboru privátního klíče (.p12): openssl pkcs12 -nocerts -out TestPushPrivateKey.pem -in certificates.p12 4 Zadáním následujícího příkazu tyto dva soubory PEM sloučíte do jednoho souboru: cat TestPushDev.pem TestPushPrivateKey.pem > FinalTestPush.pem 5 Sloučený soubor .pem předáte poskytovateli serveru, až budete vytvářet svou aplikaci pro nabízení na straně serveru. Další informace naleznete v článku Instalace certifikátu SSL a klíče na server v příručce programování místních a nabízených oznámení společnosti Apple. Poslední aktualizace 31.8.2016 117 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro mobilní zařízení Zpracování nabízených oznámení v aplikaci Zpracování nabízených oznámení v aplikaci zahrnuje tyto kroky: • Globální konfigurace uživatele a přijetí nabízených oznámení • Přijetí jednotlivých nabízených oznámení uživatelem • Zpracování nabízených oznámení a dat datových částí oznámení Konfigurace a přijetí nabízených oznámení Když uživatel poprvé spustí aplikaci s podporou nabízených oznámení, systém iOS zobrazí dialog appname Would Like to Send You Push Notifications (vám chce odesílat nabízená oznámení) s tlačítky Don’t Allow (Nepovolit) a OK. Pokud uživatel vybere možnost OK, aplikace může přijímat všechny styly oznámení, k jejichž odběru je přihlášená. Pokud uživatel vybere možnost Don’t Allow (Nepovolit), nebude přijímat žádná oznámení. Poznámka: Uživatelé také mohou přejít do části Settings (Nastavení) > Notifications (Oznámení) a určit konkrétní typy oznámení, které lze pro jednotlivé aplikace s podporou nabízení přijímat. Společnost Apple doporučuje, aby byla aplikace po každé aktivaci přihlášena k odběru nabízených oznámení. Když vaše aplikace zavolá metodu RemoteNotifier.subscribe(), obdrží událost RemoteNotificationEvent typu token, která obsahuje 32bajtový jedinečný číselný identifikátor tokenId, který jednoznačně určuje tuto aplikaci v zařízení. Když zařízení obdrží nabízené oznámení, zobrazí rozbalovací okno s tlačítky Close (Zavřít) a Launch (Spustit). Když se uživatel dotkne tlačítka Close (Zavřít), nic se nestane. Pokud se dotkne tlačítka Launch (Spustit), systém iOS vyvolá aplikaci a ta přijme událost flash.events.RemoteNotificationEvent typu notification, jak je popsáno níže. Zpracování nabízených oznámení a dat datových částí Když poskytovatel vzdálených oznámení odešle oznámení do zařízení (s použitím identifikátoru tokenID), aplikace přijme událost flash.events.RemoteNotificationEvent typu notification bez ohledu na to, zda je spuštěná. V tomto okamžiku vaše aplikace provede zpracování oznámení specifické pro aplikaci. Pokud aplikace zpracovává data oznámení, můžete k nim přistupovat prostřednictvím vlastnosti RemoteNotificationEvent.data ve formátu JSON. Poslední aktualizace 31.8.2016 118 Kapitola 8: Vývoj aplikací AIR pro televizní zařízení Možnosti prostředí AIR pro televizní přijímače Aplikace Adobe® AIR® pro televizní zařízení, jako jsou televize, digitální videorekordéry a přehrávače Blu-ray, můžete vytvářet, pokud dané zařízení obsahuje platformu Adobe AIR for TV. Platforma AIR for TV je optimalizována pro televizní zařízení, protože používá například hardwarové akcelerátory zařízení pro dosažení vysokého výkonu videa a grafiky. Aplikace AIR pro televizní zařízení jsou založeny na souborech SWF, a nikoli na jazyce HTML. Aplikace AIR for TV využívá výhody hardwarové akcelerace a jiné funkce, které jsou speciálně vytvořeny pro prostředí „obývacího pokoje“. Profily zařízení Prostředí AIR používá k definování cílové skupiny zařízení s podobnými funkcemi profily. Pro aplikace pro platformu AIR for TV používejte následující profily: • Profil tv. Tento profil použijte v aplikacích AIR určených pro zařízení využívající platformu AIR for TV. • Profil extendedTV. Tento profil použijte, pokud vaše aplikace pro platformu AIR for TV využívá nativní rozšíření. Funkce jazyka ActionScript definované pro tyto profily jsou popsány v části „Profily zařízení“ na stránce 242. Konkrétní rozdíly v jazyce ActionScript u aplikací AIR pro televizi jsou uvedeny v příručce ActionScript 3.0 Reference for the Adobe Flash Platform (Referenční příručka pro jazyk ActionScript 3.0 pro platformu Adobe Flash Platform). Podrobnosti o profilech pro platformu AIR for TV naleznete v tématu „Podporované profily“ na stránce 138. Hardwarová akcelerace Televizní zařízení obsahují hardwarové akcelerátory, které výrazně zvyšují výkon grafiky a videa v aplikaci AIR. Chcete-li využívat tyto hardwarové akcelerátory, přečtěte si téma „Faktory ovlivňující návrh aplikace AIR pro televizi“ na stránce 120. Ochrana obsahu Platforma AIR for TV může divákům nabídnout špičkové zážitky prostřednictvím kvalitního video obsahu, od hollywoodských trháků přes nezávislé filmy až po televizní seriály. Poskytovatelé obsahu mohou vytvářet interaktivní aplikace pomocí nástrojů Adobe. Mohou do své infrastruktury pro distribuci obsahu integrovat serverové produkty Adobe nebo spolupracovat s některým z partnerů společnosti Adobe. Ochrana obsahu je klíčovým požadavkem pro distribuci kvalitního videa. Platforma AIR for TV podporuje Adobe® Flash® Access™, tedy řešení pro tržby a ochranu obsahu, které splňuje požadavky vlastníků obsahu včetně velkých filmových studií na přísné zabezpečení. Řešení Flash Access podporuje následující funkce: • Streamování a stahování videa. • Různé obchodní modely, včetně reklamní podpory, předplatného, pronájmu a elektronického prodeje. Poslední aktualizace 31.8.2016 119 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení • Různé technologie doručování obsahu, včetně dynamického streamování HTTP, streamování prostřednictvím protokolu RTMP (Real Time Media Protocol), použití serveru Flash® Media Server a postupného stahování prostřednictvím protokolu HTTP. Platforma AIR for TV obsahuje také vestavěnou podporu protokolu RTMPE, což je šifrovaná verze protokolu RTMP, pro stávající řešení streamování s nižšími požadavky na zabezpečení. Protokol RTMPE a související technologie ověřování souborů SWF jsou podporovány na serveru Flash Media Server. Další informace naleznete v části Adobe Flash Access. Vícekanálový zvuk Od verze AIR 3 podporuje platforma AIR for TV vícekanálový zvuk pro videa postupně stahovaná z HTTP serveru. Tato podpora zahrnuje následující kodeky: • AC-3 (Dolby Digital) • E-AC-3 (Enhanced Dolby Digital) • DTS Digital Surround • DTS Express • DTS-HD High Resolution Audio • DTS-HD Master Audio Poznámka: Podpora vícekanálového zvuku ve videích streamovaných ze serveru Adobe Flash Media Server zatím není k dispozici. Herní vstup Od verze AIR 3 podporuje platforma AIR for TV rozhraní API jazyka ActionScript umožňující aplikacím komunikaci s připojenými vstupními herními zařízeními, jako jsou pákové ovladače, gamepady nebo hůlkové ovladače (wand). Přestože se tato zařízení nazývají vstupní herní zařízení, mohou je používat všechny aplikace platformy AIR for TV, nejen hry. K dispozici je velké množství různých vstupních herních zařízení s různými možnostmi. Proto jsou tato zařízení v rozhraní API zobecněna tak, aby aplikace mohla správně fungovat s různými (a také s neznámými) typy vstupních herních zařízení. Vstupním bodem rozhraní API jazyka ActionScript pro herní vstup je třída GameInput. Další informace naleznete v popisu třídy GameInput. Akcelerované vykreslování grafiky Stage 3D Od verze AIR 3 podporuje platforma AIR for TV akcelerované vykreslování grafiky Stage 3D. Rozhraní API jazyka ActionScript Stage3D představuje sadu nízkoúrovňových rozhraní API s akcelerací karty GPU, ve kterých jsou k dispozici pokročilé možnosti pro 2D a 3D grafiku. Tato nízkoúrovňová rozhraní API poskytují vývojářům možnost pružně využít hardwarovou akceleraci karet GPU a dosáhnout podstatného zvýšení výkonu. Lze také využít herní moduly, které podporují rozhraní API jazyka ActionScript Stage3D. Další informace naleznete na stránce Gaming engines, 3D, and Stage 3D (Herní moduly, 3D a Stage 3D). Nativní rozšíření Pokud je pro aplikaci určen profil extendedTV, může používat balíčky ANE (AIR native extension). Poslední aktualizace 31.8.2016 120 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Výrobce zařízení obvykle poskytuje balíčky ANE s cílem zajistit přístup k funkcím zařízení, které by jinak nebyly prostředím AIR podporovány. Například nativní rozšíření by mohlo umožňovat přepnutí kanálů v televizi nebo pozastavení přehrávání ve videopřehrávači. Při sbalení je aplikace AIR for TV používající balíčky ANE sbalena do souboru AIRN, nikoli do souboru AIR. Nativní rozšíření pro zařízení AIR for TV jsou vždy součástí zařízení. To znamená, že knihovny rozšíření jsou nainstalované v zařízení AIR for TV. Balíček ANE, který zahrnete do balíčku své aplikace, nikdy neobsahuje nativní knihovny rozšíření. Někdy tento balíček obsahuje verzi nativního rozšíření, která je pouze v jazyku ActionScript. Tato verze v jazyce ActionScript je zástupná nebo simulační verze rozšíření. Výrobce zařízení nainstaluje do zařízení skutečné rozšíření, včetně nativních knihoven. Pokud vyvíjíte nativní rozšíření, je třeba vzít v úvahu následující: • Pokud vytváříte nativní rozšíření platformy AIR for TV pro nějaké zařízení, vždy se poraďte s jeho výrobcem. • Pro některá zařízení AIR for TV vytváří nativní rozšíření pouze výrobce zařízení. • U všech zařízení AIR for TV rozhoduje výrobce zařízení, která nativní rozšíření budou nainstalována. • Vývojářské nástroje pro vytváření nativních rozšíření platformy AIR for TV se liší podle výrobce. Další informace o používání nativních rozšíření v aplikacích AIR naleznete v tématu „Použití nativních rozšíření pro prostředí Adobe AIR“ na stránce 146. Informace o vytváření nativních rozšíření naleznete na stránce Developing Native Extensions for Adobe AIR (Vývoj nativních rozšíření pro Adobe AIR). Faktory ovlivňující návrh aplikace AIR pro televizi Faktory týkající se videa Pokyny pro kódování videa Společnost Adobe doporučuje při streamování videa do televizního zařízení dodržovat následující pokyny pro kódování: Kodek videa: H.264, hlavní nebo vysoký profil, progresivní kódování Rozlišení: 720i, 720p, 1 080i nebo 1 080p Kmitočet snímků: 24 snímků za sekundu nebo 30 snímků za sekundu Zvukový kodek: AAC-LC nebo AC-3, 44,1 kHz, stereo nebo tyto vícekanálové zvukové kodeky: E-AC-3, DTS, DTS Express, DTS-HD High Resolution Audio nebo DTS-HD Master Audio Kombinovaný datový tok: až 8 Mb/s v závislosti na dostupné šířce pásma Datový tok zvuku: až 192 kb/s Poměr stran obrazových bodů: 1×1 Společnost Adobe doporučuje pro video doručované do zařízení využívajících platformu AIR for TV používat kodek H.264. Poslední aktualizace 31.8.2016 121 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Poznámka: Platforma AIR for TV podporuje rovněž kódování videa pomocí kodeků Sorenson Spark nebo On2 VP6. Hardware ale tyto kodeky nedekóduje a neposkytuje. Místo toho běhové prostředí dekóduje a poskytuje tyto kodeky pomocí softwaru, a proto je video přehráváno s mnohem nižším kmitočtem snímků. Proto používejte kodek H.264, pokud je to možné. Třída StageVideo Platforma AIR for TV podporuje hardwarové dekódování a prezentování videa kódovaného pomocí kodeku H.264. K aktivaci této funkce použijte třídu StageVideo. V části Hardwarově akcelerované prezentování pomocí třídy StageVideo v Příručce pro vývojáře jazyka ActionScript 3.0 naleznete podrobnosti o těchto tématech: • Rozhraní API třídy StageVideo a souvisejících tříd. • Omezení použití třídy StageVideo. Pro zajištění nejlepší podpory stávajících aplikací AIR, jež pro video kódované pomocí kodeku H.264 používají objekt Video, používá platforma AIR for TV interně objekt StageVideo. Tímto způsobem lze při přehrávání videa využívat výhody hardwarového dekódování a prezentování. Na objekt Video se však vztahují stejná omezení jako na objekt StageVideo. Pokud se aplikace například pokusí otočit video, otočení se neprovede, protože prezentování videa provádí hardware, nikoli běhové prostředí. Při psaní nových aplikací však pro video kódované pomocí kodeku H.264 používejte objekt StageVideo. Příklad použití třídy StageVideo naleznete v tématu Delivering video and content for the Flash Platform on TV (Doručování videa a obsahu pro platformu Flash v televizi). Pokyny pro doručování videa V zařízení využívajícím platformu AIR for TV se během přehrávání videa může dostupná šířka pásma sítě měnit. K těmto odchylkám může docházet například v případě, že stejné internetové připojení začne používat jiný uživatel. Společnost Adobe proto doporučuje, aby systém doručování videa používal možnosti adaptivního datového toku. Na straně serveru například Flash Media Server podporuje možnosti adaptivního datového toku. Na straně klienta můžete používat architekturu OSMF (Open Source Media Framework). K doručování obsahu videa prostřednictvím sítě do aplikace pro platformu AIR for TV jsou k dispozici následující protokoly: • Dynamické streamování HTTP a HTTPS (formát F4F) • Streamování RTMP, RTMPE, RTMFP, RTMPT a RTMPTE • Postupné stahování HTTP a HTTPS Další informace naleznete v následujících zdrojích: • Adobe Flash Media Server – příručka pro vývojáře • Open Source Media Framework Faktory týkající se zvuku Jazyk ActionScript pro přehrávání zvuku se v aplikacích pro platformu AIR for TV nijak neliší od ostatních aplikací AIR. Informace naleznete v části Práce se zvukem v Příručce pro vývojáře jazyka ActionScript 3.0. Poslední aktualizace 31.8.2016 122 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení U podpory vícekanálového zvuku na platformě AIR for TV je třeba vzít v úvahu následující skutečnosti: • Platforma AIR for TV podporuje vícekanálový zvuk pro videa postupně stahovaná z HTTP serveru. Podpora vícekanálového zvuku ve videích streamovaných ze serveru Adobe Flash Media Server zatím není k dispozici. • Přestože platforma AIR for TV podporuje mnoho zvukových kodeků, ne všechna zařízení podporují celou sadu. Pomocí metody flash.system.CapabilitieshasMultiChannelAudio() zjistíte, zda zařízení AIR for TV podporuje konkrétní vícekanálový zvukový kodek, například AC-3. Představte si například aplikaci, která si postupně stahuje soubor videa ze serveru. Server obsahuje jiné soubory videa H.264, které podporují odlišné vícekanálové zvukové kodeky. Aplikace může použít metodu hasMultiChannelAudio() k určení, který soubor videa má ze serveru vyžádat. Nebo může aplikace odeslat serveru řetězec zahrnutý v parametru Capabilities.serverString. Řetězec označuje, které vícekanálové zvukové kodeky jsou k dispozici, a tím umožní serveru výběr příslušného souboru videa. • Při použití jednoho ze zvukových kodeků DTS je možné, že metoda hasMultiChannelAudio() vrátí hodnotu true, ale zvuk ve formátu DTS nebude hrát. Vezměme jako příklad přehrávač disků Blu-ray s výstupem S/PDIF připojený ke starému zesilovači. Starý zesilovač nepodporuje formát DTS, ale výstup S/PDIF nemá žádný protokol, který by přehrávač disků Blu-ray upozornil. Pokud přehrávač disků Blu-ray odešle datový proud DTS do starého zesilovače, uživatel nic neuslyší. Proto je při používání formátu DTS nejlepší poskytnout uživateli rozhraní, pomocí kterého může označit, že zvuk nehraje. Poté se aplikace může přepnout na jiný kodek. Následující tabulka shrnuje používání různých zvukových kodeků v aplikacích pro platformu AIR for TV. Tabulky také ukazuje, kdy zařízení využívající platformu AIR for TV používá hardwarové akcelerátory k dekódování zvukového kodeku. Hardwarové dekódování vylepšuje výkon a snižuje zatížení projektoru. Zvukový kodek Dostupnost Hardwarové i v prostředí dekódování AIR for TV Kdy použít tento zvukový kodek Další informace AAC Vždy Ve videích kódovaných pomocí kodeku H.264. Používáte-li stream AAC obsahující pouze zvuk, zapouzdřete zvukový stream do kontejneru MP4. Vždy Pro streamování zvuku, například pro internetovou hudební streamovací službu. mp3 Vždy Ne Pro zvuky v souborech SWF dané aplikace. Ve videích kódovaných pomocí kodeku Sorenson Spark nebo On2 VP6 Poslední aktualizace 31.8.2016 Video H.264, které pro zvuk používá formát mp3, nebude v zařízeních AIR for TV hrát. 123 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Zvukový kodek Dostupnost Hardwarové i v prostředí dekódování AIR for TV Kdy použít tento zvukový kodek Další informace AC-3 (Dolby Digital) Zkontrolova t Ano Ve videích kódovaných pomocí kodeku H.264. Platforma AIR for TV obvykle vícekanálový zvukový proudu do externího přijímače zvuku/videa, který dekóduje a přehraje zvuk. Speex Vždy Ne Příjem živého zvukového streamu. Video H.264, které pro zvuk používá kodek Speex, nebude v zařízeních AIR for TV hrát. Kodek Speex používejte pouze s videem kódovaným kodekem Sorenson Spark nebo On2 VP6. NellyMoser Vždy Ne Příjem živého zvukového streamu. Video H.264, které pro zvuk používá kodek NellyMoser, nebude v zařízeních AIR for TV hrát. Kodek NellyMoser používejte pouze s videem kódovaným kodekem Sorenson Spark nebo On2 VP6. E-AC-3 (Enhanced Dolby Digital) DTS Digital Surround DTS Express DTS-HD High Resolution Audio DTS-HD Master Audio Poznámka: Některé soubory videa obsahují dva zvukové proudy. Například soubor videa může obsahovat proud AAC a AC3. Platforma AIR for TV nepodporuje takové soubory videa a použití takového soubor může mít za následek video bez zvuku. Hardwarová akcelerace grafiky Používání hardwarové akcelerace grafiky Zařízení využívající platformu AIR for TV poskytují hardwarovou akceleraci pro operace s 2D grafikou. Hardwarové akcelerátory grafiky v daném zařízení zbavují procesor nutnosti provádět následující operace: • Vykreslování bitmap • Změny velikosti bitmap • Prolnutí bitmap • Vyplňování plných obdélníků Tato hardwarová akcelerace grafiky znamená, že pro řadu grafických operací v aplikaci pro platformu AIR for TV se může použít vysoký výkon. Mezi tyto operace patří například: • Klouzavé přechody • Přechody se změnou velikosti • Postupné zobrazení a mizení • Skládání více obrazů s alfa kanály Chcete-li využívat výkon hardwarové akcelerace grafiky pro tyto typy operací, použijte jeden z následujících postupů: • U objektů MovieClip a dalších objektů zobrazení s obsahem, který se většinou nemění, nastavte vlastnost cacheAsBitmap na hodnotu true. Potom u těchto objektů proveďte klouzavé přechody, přechody mizení a prolnutí alfa kanálů. Poslední aktualizace 31.8.2016 124 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení • U objektů zobrazení, u kterých chcete změnit velikost nebo polohu (použít přemístění v osách x a y) použijte vlastnost cacheAsBitmapMatrix. Hardwarové akcelerátory daného zařízení provádějí tyto operace pomocí operací třídy Matrix pro změny velikosti a polohy. Zvažte případně také možnost, že změníte rozměry objektu zobrazení, jehož vlastnost cacheAsBitmap je nastavena na hodnotu true. Když se rozměry změní, bitmapu překreslí software běhového prostředí. Překreslení pomocí softwaru vykazuje slabší výkon než změny velikosti prováděné hardwarovou akcelerací při použití operace objektu Matrix. Představte si například aplikaci, která zobrazuje obraz, jenž se zvětší, když jej koncový uživatel vybere. K vytvoření iluze zvětšení obrazu použijte vícenásobně operaci změny velikosti objektu Matrix. V závislosti na velikostech původního a výsledného obrazu však kvalita výsledného obrazu může být neakceptovatelná. Po dokončení operací zvětšování proto znovu nastavte rozměry objektu zobrazení. Vlastnost cacheAsBitmap má hodnotu true, takže software běhového prostředí objekt zobrazení překreslí, ale pouze jednou a vykreslí jej jako obraz vysoké kvality. Poznámka: Zařízení využívající platformu AIR for TV obvykle nepodporují hardwarově akcelerované natočení a zkosení. Pokud tedy ve třídě Matrix určíte natočení a zkosení, platforma AIR for TV provede všechny operace třídy Matrix softwarově. Tyto softwarové operace mohou mít nepříznivý dopad na výkon. • K vytvoření vlastního chování funkce ukládání bitmapy do mezipaměti použijte třídu BitmapData. Další informace o ukládání bitmapy do mezipaměti naleznete v následujících tématech: • Ukládání objektů zobrazení do vyrovnávací paměti • Ukládání bitmapy do mezipaměti • Ruční ukládání bitmapy do mezipaměti Správa grafické paměti K provádění zrychlených operací s grafikou používají hardwarové akcelerátory zvláštní grafickou paměť. Jestliže aplikace využívá veškerou grafickou paměť, běží daná aplikace pomaleji, protože pro platforma AIR for TV se při operacích s grafikou vrátí k používání softwaru. Správa využívání grafické paměti danou aplikací: • Jakmile dokončíte práci s obrazem nebo jinými bitmapovými daty, uvolněte grafickou paměť, která je k nim přidružena. Tuto akci provedete voláním metody dispose() pro vlastnost bitmapData objektu Bitmap. Například: myBitmap.bitmapData.dispose(); Poznámka: Odebrání odkazu na objekt BitmapData nezpůsobí okamžité uvolnění grafické paměti. Čištění uvolněné paměti běhového prostředí nakonec grafickou paměť uvolní, ale volání metody dispose() poskytuje aplikaci lepší ovládání. • K lepšímu porozumění hardwarové akceleraci grafiky v cílovém zařízení použijte aplikaci PerfMaster Deluxe, což je aplikace AIR, kterou poskytuje společnost Adobe. Tato aplikace zobrazuje provádění různých operací pomocí snímků v jednotlivých sekundách. Použijte aplikaci PerfMaster Deluxe k porovnání různých implementací stejné operace. Porovnejte například přesunutí bitmapového obrazu a přesunutí vektorového obrazu. Aplikace PerfMaster Deluxe je k dispozici na stránce Flash Platform for TV (Platforma Flash pro televizi). Poslední aktualizace 31.8.2016 125 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Správa seznamu zobrazení Chcete-li, aby byl objekt zobrazení neviditelný, nastavte vlastnost visible daného objektu na hodnotu false. Objekt tak bude nadále v seznamu zobrazení, platforma AIR for TV jej však nezobrazí ani nevykreslí. Tato technika je užitečná pro objekty, které se často objevují v zobrazení a mizí z něj, protože má jen malou režii zpracování. Při nastavení vlastnosti visible na hodnotu false však nedojde k uvolnění žádných zdrojů objektu. Proto až budete hotovi se zobrazením objektu (nebo jej na dlouhou dobu nebudete potřebovat), odstraňte objekt ze seznamu zobrazení. Nastavte také všechny odkazy na objekt na hodnotu null. Tyto akce umožní, aby byly při čištění uvolněné paměti uvolněny zdroje objektu. Použití obrazů PNG a JPEG Dvěma běžnými formáty obrazů v aplikacích jsou formáty PNG a JPEG. Při použití těchto formátů obrazů v aplikacích pro platformu AIR for TV mějte na paměti následující skutečnosti: • K dekódování souborů JPEG obvykle aplikace pro platformu AIR for TV používá hardwarovou akceleraci. • K dekódování souborů PNG obvykle aplikace pro platformu AIR for TV používá software. Dekódování souborů PNG v softwaru je rychlé. • PNG je jediný bitmapový formát pro přenos mezi platformami, který podporuje průhlednost (alfa kanál). Používejte tedy tyto formáty obrazů v aplikacích následujícím způsobem: • Soubory JPEG používejte pro fotografie, abyste využili výhod hardwarově akcelerovaného dekódování. • Soubory obrazů PNG používejte pro prvky uživatelského rozhraní. Prvky uživatelského rozhraní mohou mít nastavení alfa a softwarové dekódování poskytuje pro prvky uživatelského rozhraní dostatečně rychlý výkon. Plocha v aplikacích pro platformu AIR for TV Během vytváření aplikace pro platformu AIR for TV mějte při práci s třídou Stage na paměti následující informace: • Rozlišení obrazovky • Bezpečná oblast zobrazení • Režim změny velikosti vymezené plochy • Zarovnání vymezené plochy • Stav zobrazení vymezené plochy • Návrh pro více velikostí obrazovky • Nastavení kvality vymezené plochy Rozlišení obrazovky V současné době mají televizní zařízení obvykle některé z těchto rozlišení obrazovky: 540p, 720p a 1 080p. Tato rozlišení obrazovky mají za následek následující hodnoty ve třídě Capabilities jazyka ActionScript: Rozlišení obrazovky Capabilities.screenResolutionX Capabilities.screenResolutionY 540p 960 540 720p 1 280 720 1 080p 1 920 1 080 Poslední aktualizace 31.8.2016 126 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Chcete-li vytvořit celoobrazovkovou aplikaci pro platformu AIR for TV pro konkrétní zařízení, zadejte do kódu pro vlastnosti Stage.stageWidth a Stage.stageHeight hodnoty, jež určují rozlišení obrazovky daného zařízení. Pokud však chcete vytvořit celoobrazovkovou aplikaci, která bude spouštěna ve více zařízeních, použijte k nastavení rozměrů objektu Stage vlastnosti Capabilities.screenResolutionX a Capabilities.screenResolutionY. Například: stage.stageWidth = Capabilities.screenResolutionX; stage.stageHeight = Capabilities.screenResolutionY; Bezpečná oblast zobrazení Bezpečná oblast zobrazení v televizi je oblast obrazovky, která je vsazena dovnitř od okrajů obrazovky. Tato oblast je vsazena dostatečně daleko, aby koncový uživatel viděl celou plochu, aniž by zkosený rám televize jakoukoli část této oblasti zakrýval. Zkosený rám, což je vlastně fyzická konstrukce okolo obrazovky, se u jednotlivých výrobců liší, a proto se potřebné vsazení také liší. Bezpečná oblast zobrazení se pokouší zaručit viditelnou oblast obrazovky. Bezpečná oblast zobrazení se označuje rovněž jako bezpečná oblast pro titulky. Překrytí je oblast obrazovky, která není viditelná, protože se nachází za zkoseným rámem. Společnost Adobe doporučuje vsazení 7,5 % na všech okrajích obrazovky. Například: 1920 1632 Oblast bezpečného zobrazení 918 1080 Bezpečná oblast zobrazení u rozlišení obrazovky 1 920 × 1 080 Při návrhu celoobrazovkové aplikace pro platformu AIR for TV mějte vždy na paměti bezpečnou oblast zobrazení: • Pro pozadí, například obrazy na pozadí nebo barvy pozadí, používejte celou obrazovku. • Pro důležité prvky aplikace, jako jsou například text, grafika, video a položky uživatelského rozhraní, například tlačítka, používejte pouze bezpečnou oblast zobrazení. Následující tabulka uvádí rozměry bezpečné oblasti zobrazení pro jednotlivá typická rozlišení obrazovky při použití vsazení 7,5 %. Rozlišení obrazovky Šířka a výška bezpečné oblasti zobrazení Šířka vsazení vlevo a vpravo Výška vsazení nahoře a dole 960 x 540 816 x 460 72 40 Poslední aktualizace 31.8.2016 127 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Rozlišení obrazovky Šířka a výška bezpečné oblasti zobrazení Šířka vsazení vlevo a vpravo Výška vsazení nahoře a dole 1 280 x 720 1 088 x 612 96 54 1 920 x 1 080 1 632 x 918 144 81 Doporučujeme však vždy bezpečnou oblast zobrazení dynamicky vypočítat. Například: var horizontalInset, verticalInset, safeAreaWidth, safeAreaHeight:int; horizontalInset = .075 * Capabilities.screenResolutionX; verticalInset = .075 * Capabilities.screenResolutionY; safeAreaWidth = Capabilities.screenResolutionX - (2 * horizontalInset); safeAreaHeight = Capabilities.screenResolutionY - (2 * verticalInset); Režim změny velikosti vymezené plochy Nastavte vlastnost Stage.scaleMode na hodnotu StageScaleMode.NO_SCALE a naslouchejte událostem změny velikosti vymezené plochy. stage.scaleMode = StageScaleMode.NO_SCALE; stage.addEventListener(Event.RESIZE, layoutHandler); Toto nastavení nastaví souřadnice vymezené plochy na stejné hodnoty jako souřadnice obrazových bodů. Toto nastavení společně s nastavením stavu zobrazení FULL_SCREEN_INTERACTIVE a nastavením zarovnání vymezené plochy TOP_LEFT umožňuje efektivně využívat bezpečnou oblast zobrazení. Konkrétně v celoobrazovkových aplikacích tento režim změny velikosti znamená, že vlastnosti stageWidth a stageHeight třídy Stage odpovídají vlastnostem screenResolutionX a screenResolutionY třídy Capabilities. Kromě toho při změně velikosti okna aplikace si obsah vymezené plochy zachová svou definovanou velikost. Běhové prostředí neprovádí žádné automatické rozvržení nebo změny velikosti. Běhové prostředí při změně velikosti okna také odesílá událost resize třídy Stage. Můžete tedy zcela ovládat úpravy obsahu aplikace při spuštění aplikace a při změně velikosti okna aplikace. Poznámka: Chování při nastavení NO_SCALE je stejné jako u ostatních aplikací AIR. V aplikacích pro platformu AIR for TV je však toto nastavení důležité pro používání bezpečné oblasti zobrazení. Zarovnání vymezené plochy Nastavte vlastnost Stage.align na hodnotu StageAlign.TOP_LEFT: stage.align = StageAlign.TOP_LEFT; Toto zarovnání umístí souřadnici 0,0 do levého horního rohu obrazovky, což je praktické při umístění obsahu pomocí jazyka ActionScript. Toto nastavení společně s nastavením režimu změny velikosti NO_SCALE a nastavením stavu zobrazení FULL_SCREEN_INTERACTIVE umožňuje efektivně využívat bezpečnou oblast zobrazení. Stav zobrazení vymezené plochy Nastavte vlastnost Stage.displayState v celoobrazovkové aplikaci pro platformu AIR for TV na hodnotu StageDisplayState.FULL_SCREEN_INTERACTIVE: stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE; Poslední aktualizace 31.8.2016 128 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Tato hodnota nastaví aplikaci AIR, aby vymezenou plochu rozšířila na celou obrazovku s povoleným vstupem uživatele. Společnost Adobe doporučuje používat nastavení FULL_SCREEN_INTERACTIVE. Toto nastavení společně s nastavením režimu změny velikosti NO_SCALE a nastavením zarovnání vymezené plochy TOP_LEFT umožňuje efektivně využívat bezpečnou oblast zobrazení. Proto u celoobrazovkových aplikací v ovladači pro událost ADDED_TO_STAGE ve třídě hlavního dokumentu proveďte následující postup: private function onStage(evt:Event):void { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener(Event.RESIZE, onResize); stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE; } Potom v ovladači pro událost RESIZE: • Porovnejte velikosti rozlišení obrazovky s šířkou a výškou vymezené plochy. Pokud jsou stejné, došlo k události RESIZE, protože stav zobrazení vymezené plochy se změnil na hodnotu FULL_SCREEN_INTERACTIVE . • Vypočítejte a uložte rozměry bezpečné oblasti zobrazení a odpovídajících vsazení. private function onResize(evt:Event):void { if ((Capabilities.screenResolutionX == stage.stageWidth) && (Capabilities.screenResolutionY == stage.stageHeight)) { // Calculate and save safe viewing area dimensions. } } Pokud rozměry vymezené plochy odpovídají hodnotám vlastností Capabilities.screenResolutionX a screenResolutionY, platforma AIR for TV způsobí, že budou video a grafika zobrazeny s maximální možnou věrností. Poznámka: Věrnost zobrazení grafiky a videa na televizní obrazovce se může lišit od hodnot vlastností Capabilities.screenResolutionX a screenResolutionY, které závisejí na zařízeních s platformou AIR for TV. Například set-top box s platformou AIR for TV může mít rozlišení obrazovky 1 280 x 720 a připojená televize může mít rozlišení obrazovky 1 920 x 1 080. Platforma AIR for TV však způsobí, že hardware bude pracovat s maximální možnou věrností. Proto hardware v tomto příkladu zobrazuje video s rozlišením 1 080p s použitím rozlišení obrazovky 1 920 x 1 080. Návrh pro více velikostí obrazovky Celoobrazovkovou aplikaci pro platformu AIR for TV můžete navrhnout tak, aby pracovala a vypadala dobře ve více zařízeních využívajících platformu AIR for TV. Postupujte takto: 1 Nastavte vlastnosti scaleMode, align a displayState u vymezené plochy na doporučené hodnoty: StageScaleMode.NO_SCALE, StageAlign.TOP_LEFT a StageDisplayState.FULL_SCREEN_INTERACTIVE, v tomto pořadí. 2 Určete bezpečnou oblast zobrazení na základě vlastností Capabilities.screenResolutionX a Capabilities.screenResolutionY. 3 Upravte velikost a rozvržení obsahu podle šířky a výšky bezpečné oblasti zobrazení. Poslední aktualizace 31.8.2016 129 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení I když jsou objekty vašeho obsahu velké, zejména ve srovnání s aplikacemi pro mobilní zařízení, koncepty, jako jsou dynamické rozvržení, relativní umístění a adaptivní obsah, jsou stejné. Další informace o jazyku ActionScript pro podporu těchto konceptů naleznete v článku Authoring mobile Flash content for multiple screen sizes (Vytváření mobilního obsahu Flash pro více velikostí obrazovky). Kvalita vymezené plochy Vlastnost Stage.quality pro aplikaci AIR for TV má vždy hodnotu StageQuality.High. Nelze ji změnit. Tato vlastnost určuje kvalitu vykreslování pro všechny objekty na vymezené ploše. Zpracování vstupu z dálkového ovladače Uživatelé provádějí interakci s aplikací pro platformu AIR for TV obvykle pomocí dálkového ovladače. Zpracování vstupu pomocí tlačítka dálkového ovladače však nastavte stejně jako zpracování vstupu z klávesnice stolního počítače. Konkrétně zpracování události KeyboardEvent.KEY_DOWN. Další informace naleznete v tématu Zachycení vstupu z klávesnice v Příručce pro vývojáře jazyka ActionScript 3.0. Tlačítka na dálkovém ovladači jsou namapována na konstanty jazyka ActionScript. Například tlačítka směrové klávesnice dálkového ovladače jsou namapována takto: Tlačítko směrové klávesnice dálkového ovladače Konstanta jazyka ActionScript 3.0 Nahoru Keyboard.UP Dolů Keyboard.DOWN Doleva Keyboard.LEFT Doprava Keyboard.RIGHT OK nebo Vybrat Keyboard.ENTER Do prostředí AIR 2.5 byla přidána řada dalších konstant Keyboard pro podporu vstupu z dálkového ovládače. Úplný seznam naleznete v tématu Třída Keyboard v Referenční příručce jazyka ActionScript 3.0 pro platformu Adobe Flash. Pro zajištění funkčnosti aplikace v co největším počtu zařízení společnost Adobe doporučuje následující: • Využívejte pouze tlačítka směrové klávesnice, pokud to je možné. Různé dálkové ovládače obsahují různé sady tlačítek. Vždy však mají tlačítka směrové klávesnice. Například dálkový ovladač pro přehrávač Blu-ray obvykle nemá tlačítka pro přechod mezi jednotlivými kanály. Dokonce ani tlačítka pro přehrávání, pozastavení a zastavení se nevyskytují na všech dálkových ovladačích. • Pokud aplikace vyžaduje více tlačítek, než je na směrové klávesnici, použijte tlačítka Menu a Info. Tlačítka Menu a Info jsou další nejběžnější tlačítka na dálkových ovladačích. • Mějte na paměti časté používání univerzálních dálkových ovladačů. I v případě, že vytváříte aplikaci pro konkrétní zařízení, vezměte v úvahu, že řada uživatelů nepoužívá dálkový ovladač, který je dodáván s daným zařízením. Místo toho používají univerzální dálkový ovladač. Uživatelé rovněž často svůj univerzální dálkový ovladač nenaprogramují tak, aby všechna tlačítka odpovídala dálkovému ovladači daného zařízení. Proto je vhodné používat pouze nejběžnější tlačítka. • Zajistěte, aby uživatel mohl vždy z každé situace uniknout pomocí některého tlačítka směrové klávesnice. Poslední aktualizace 31.8.2016 130 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Někdy existuje v aplikaci důvod pro použití tlačítka, které nepatří mezi nejběžnější tlačítka na dálkových ovladačích. Poskytnutí únikové cesty pomocí některého tlačítka směrové klávesnice zajistí, že vaše aplikace bude hladce fungovat ve všech zařízeních. • Nepožadujte vstup pomocí ukazatele, pokud si nejste jisti, že cílové zařízení AIR for TV má možnost vstupu pomocí ukazatele. Přestože u mnohých počítačových aplikací je očekáván vstup z myši, většina televizorů vstup pomocí ukazatele nepodporuje. Pokud tedy převádíte aplikace pro stolní počítače na spouštění v televizorech, nezapomeňte tyto aplikace upravit tak, aby nebyl očekáván vstup z myši. Mezi tyto úpravy patří změny zpracování událostí a změny pokynů pro uživatele. Například na spouštěcí obrazovce aplikace nezobrazujte text „Klepnutím spusťte“. Řízení fokusu Jestliže má prvek uživatelského rozhraní v aplikaci pro stolní počítače fokus, je cílem událostí vstupu uživatele, například událostí klávesnice a událostí myši. Aplikace navíc zvýrazní prvek uživatelského rozhraní, který má fokus. Řízení fokusu v aplikaci pro platformu AIR for TV se liší od řízení fokusu v aplikaci pro stolní počítače, protože: • V aplikacích pro stolní počítače je k přesunutí fokusu na další prvek uživatelského rozhraní často používána klávesa tabulátoru. V aplikacích pro platformu AIR for TV nelze klávesu tabulátoru používat. Dálkové ovládače obvykle nemají klávesu tabulátoru. Řízení fokusu pomocí vlastnosti tabEnabled objektu DisplayObject jako u stolních počítačů proto nelze použít. • V aplikacích pro stolní počítače je často očekáváno, že uživatel nastaví fokus na prvek uživatelského rozhraní pomocí myši. Ve své aplikaci proto postupujte takto: • Přidejte k objektu Stage posluchač události, který naslouchá událostem Keyboard, jako je KeyboardEvent.KEY_DOWN. • Vytvořte aplikační logiku, jež bude určovat, který prvek uživatelského rozhraní má být pro koncového uživatele zvýrazněn. Nezapomeňte zvýraznit některý prvek uživatelského rozhraní při spuštění aplikace. • Na základě aplikační logiky odešlete událost Keyboard, kterou přijme objekt Stage, do vhodného objektu prvku uživatelského rozhraní. K přiřazení fokusu do prvku uživatelského rozhraní můžete použít rovněž vlastnost Stage.focus nebo metodu Stage.assignFocus(). Potom můžete přidat posluchač události k příslušnému objektu DisplayObject, aby přijímal události klávesnice. Návrh uživatelského rozhraní Správnou funkčnost uživatelského rozhraní aplikace pro platformu AIR for TV v televizorech zajistíte začleněním těchto doporučení, jež se týkají: • schopnosti aplikace reagovat na podněty • použitelnosti aplikace • osobnosti a očekávání uživatele Poslední aktualizace 31.8.2016 131 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Schopnost reagovat na podněty Schopnost aplikace pro platformu AIR for TV reagovat na podněty můžete zvýšit pomocí následujících tipů. • Počáteční soubor SWF dané aplikace by měl mít co nejmenší velikost. Do počátečního souboru SWF načítejte pouze zdroje nezbytné ke spuštění aplikace. Načtěte například pouze obraz spouštěcí obrazovky aplikace. Toto doporučení platí i pro aplikace AIR pro stolní počítače, ale pro zařízení využívající platformu AIR for TV je ještě důležitější. Zařízení využívající platformu AIR for TV například nemají procesní výkon, který by byl ekvivalentní výkonu stolních počítačů. Dále tato zařízení ukládají aplikace do paměti flash, ke které není tak rychlý přístup jako k pevným diskům ve stolních počítačích. • Nastavte spouštění aplikace s kmitočtem alespoň 20 snímků za sekundu. Navrhněte grafiku pro dosažení tohoto cíle. Složitost grafických operací může ovlivnit počet snímků za sekundu. Tipy pro zvýšení výkonu vykreslování naleznete v tématu Optimalizace výkonu pro platformu Flash. Poznámka: Grafický hardware v zařízeních využívajících platformu AIR for TV obvykle aktualizuje obrazovku rychlostí 60 Hz nebo 120 Hz (60krát nebo 120krát za sekundu). Pro zobrazení na 60Hz nebo 120Hz obrazovce například hardware hledá aktualizace na ploše na 30 snímcích za sekundu nebo na 60 snímcích za sekundu. Skutečnost, zda se uživatel setká s těmito vyššími kmitočty snímků, však závisí na složitosti grafických operací aplikace. • Aktualizujte obrazovku během 100–200 milisekund od vstupu uživatele. Uživatelé jsou netrpěliví, pokud aktualizace trvají déle, což má často za následek vícenásobná stisknutí tlačítek. Použitelnost Uživatelé aplikací pro platformu AIR for TV se nacházejí v prostředí „obývacího pokoje“. Sedí v místnosti naproti televizi, která od nich může být vzdálena například 3 metry. V místnosti někdy bývá tma. Ke vstupu uživatelé obvykle používají dálkový ovladač. Aplikaci může používat více osob, někdy společně, někdy jednotlivě v řadě za sebou. Při návrhu uživatelského rozhraní pro používání v televizoru proto mějte na paměti následující skutečnosti: • Prvky uživatelského rozhraní by měly být velké. Při návrhu textu, tlačítek a dalších prvků uživatelského rozhraní berte v úvahu, že uživatel sedí v opačné straně místnosti. Nastavte vše tak, aby sledování a čtení bylo snadné ze vzdálenosti například 3 metry. Nepokoušejte se obrazovku zaplnit jen proto, že obrazovka je velká. • Použijte takový kontrast, aby obsah bylo možné snadno sledovat a číst z opačné strany místnosti. • Nastavením zvýraznění u příslušného prvku uživatelského rozhraní zajistěte, aby bylo zřejmé, který prvek má fokus. • Pohyb používejte pouze v případě, kdy je to nutné. Například klouzavý přechod z jedné obrazovky na další obrazovku pro zajištění návaznosti může fungovat dobře. Pohyb však může působit rušivě, pokud nepomáhá uživateli v navigaci nebo není standardní pro danou aplikaci. • Vždy poskytněte uživateli jasný způsob, jak se v uživatelském rozhraní vrátit zpět. Další informace o použití dálkového ovladače naleznete v tématu „Zpracování vstupu z dálkového ovladače“ na stránce 129. Osobnost a očekávání uživatele Berte v úvahu, že uživatelé aplikací pro platformu AIR for TV obvykle hledají zábavu televizní kvality v přátelském a uvolněném prostředí. Nemusejí nutně mít znalosti z oblasti počítačů nebo technologií. Poslední aktualizace 31.8.2016 132 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Proto aplikace pro platformu AIR for TV navrhujte s následujícími charakteristikami: • Nepoužívejte technické termíny. • Vyhýbejte se používání modálních dialogových oken. • Používejte přátelské, neformální pokyny, jež se hodí pro prostředí obývacího pokoje a nikoli pro pracovní nebo technické prostředí. • Používejte vysoce kvalitní grafické prvky, které televizní diváci očekávají. • Vytvořte uživatelské rozhraní, které lze snadno používat s dálkovým ovládáním. Nepoužívejte prvky uživatelského rozhraní a návrhu, které se lépe hodí do aplikace pro počítače nebo mobily. Například uživatelské rozhraní v počítači nebo mobilním zařízení často zahrnuje ukazování a klikání na tlačítka myší nebo prstem. Písma a text Můžete používat písma zařízení nebo písma vložená do aplikace pro platformu AIR for TV. Písma zařízení jsou písma, jež jsou nainstalována v daném zařízení. Všechna zařízení využívající platformu AIR for TV mají následující písma zařízení: Název písma Popis _sans Písmo _sans je bezpatkové písmo. Písmem _sans, jež je nainstalováno ve všech zařízeních AIR for TV, je Myriad Pro. Na televizní obrazovce obvykle vypadá bezpatkové písmo lépe, vzhledem k delší pozorovací vzdálenosti. _serif Písmo _serif patkové písmo. Písmem _serif, jež je nainstalováno ve všech zařízeních využívajících platformu AIR for TV, je Minion Pro. _typewriter Písmo _typewriter je neproporcionální písmo. Písmem _typewriter, jež je nainstalováno ve všech zařízeních využívajících platformu AIR for TV, je Courier Std. Všechna zařízení využívající platformu AIR for TV mají také následující písma pro asijské jazyky: Název písma Jazyk Kategorie písma Kód národního prostředí RyoGothicPlusN-Regular Japonština sans ja RyoTextPlusN-Regular Japonština serif ja AdobeGothicStd-Light Korejština sans ko AdobeHeitiStd-Regular Zjednodušená čínština sans zh_CN AdobeSongStd-Light Zjednodušená čínština serif zh_CN AdobeMingStd-Light Tradiční čínština serif zh_TW a zh_HK Tato písma zařízení využívajících platformu AIR for TV: • Jsou z knihovny Adobe® Type Library. • Vypadají dobře v televizorech. • Jsou navržena pro titulky videa. • Jsou obrysy písem, nikoli bitmapová písma. Poslední aktualizace 31.8.2016 133 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Poznámka: Výrobci zařízení často zahrnují do zařízení další písma zařízení. Tato písma zařízení poskytovaná výrobci jsou k písmům zařízení využívajících platformu AIR for TV nainstalována navíc. Společnost Adobe nabízí aplikaci s názvem FontMaster Deluxe, která zobrazuje všechna písma zařízení v daném zařízení. Aplikace je k dispozici na stránce Flash Platform for TV (Platforma Flash pro televizi). Můžete také písma do své aplikace pro platformu AIR for TV vložit. Informace o vložených písmech naleznete v části Rozšířené vykreslování textu v Příručce pro vývojáře jazyka ActionScript 3.0. Společnost Adobe doporučuje při používání textových polí TLF následující: • Chcete-li používat národní prostředí, ve kterém je aplikace spuštěna, používejte pro text v asijských jazycích textová pole TLF. Nastavte vlastnost locale objektu TextLayoutFormat přidruženého k objektu TLFTextField. Informace o určení aktuálního národního prostředí naleznete v části Výběr lokální verze v Příručce pro vývojáře jazyka ActionScript 3.0. • V případě, že se jedná o písmo, které není jedním z písem zařízení využívajících platformu AIR for TV, zadejte název písma do vlastnosti fontFamily v objektu TextLayoutFormat. Pokud je toto písmo v zařízení k dispozici, platforma AIR for TV je použije. Pokud požadované písmo v zařízení není, platforma AIR for TV je na základě nastavení vlastnosti locale zamění za vhodné písmo zařízení využívajícího platformu AIR for TV. • Určete nastavení _sans, _serif nebo _typewriter pro vlastnost fontFamily a také nastavení vlastnosti locale, aby bylo zajištěno, že platforma AIR for TV zvolí správné písmo zařízení využívajícího platformu AIR for TV. Podle národního prostředí platforma AIR for TV provede výběr ze sady písem zařízení pro asijské jazyky nebo ze sady písem zařízení pro jiné než asijské jazyky. Tato nastavení poskytují jednoduchý způsob, jak automaticky použít správné písmo pro čtyři hlavní asijská národní prostředí a pro angličtinu. Poznámka: Používáte-li pro text v asijských jazycích klasická textová pole, pro zaručení správného vykreslení určete název písma zařízení využívajícího platformu AIR for TV. Pokud víte, že v cílovém zařízení je nainstalováno další písmo, můžete je také určit. S ohledem na výkon aplikace vezměte v úvahu následující skutečnosti: • Klasická textová pole zajišťují vyšší výkon než textová pole TLF. • Klasické textové pole, které používá bitmapová písma, zajišťuje nejvyšší výkon. Bitmapová písma poskytují pro každý znak bitmapu, na rozdíl od obrysových písem, která poskytují pouze data s obrysy jednotlivých znaků. Písma zařízení i vložená písma mohou být bitmapovými písmy. • Pokud určíte písmo zařízení, ujistěte se, že dané písmo zařízení je v cílovém zařízení nainstalováno. Pokud písmo není v zařízení nainstalováno, platforma AIR for TV vyhledá a použije jiné písmo, které je v zařízení nainstalováno. Toto chování však zpomalí výkon aplikace. • Pokud se objekt TextField většinou nemění, stejně jako u jakéhokoli jiného objektu zobrazení nastavte jeho vlastnost cacheAsBitmap na hodnotu true . Toto nastavení zvýší výkon při provádění přechodů, jako jsou například mizení, klouzání a prolnutí alfa kanálů. Pro změny velikosti a polohy používejte vlastnost cacheAsBitmapMatrix. Další informace naleznete v části „Hardwarová akcelerace grafiky“ na stránce 123. Zabezpečení souborového systému Aplikace pro platformu AIR for TV jsou aplikace AIR, a proto mají přístup k souborovému systému daného zařízení. U zařízení pro „obývací pokoj“ je však velmi důležité, aby aplikace neměla přístup k systémovým souborům zařízení ani k souborům jiných aplikací. Uživatelé televizorů a přidružených zařízení neočekávají a netolerují žádná selhání zařízení – sledují přece televizi. Poslední aktualizace 31.8.2016 134 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Na aplikaci pro platformu AIR for TV se proto v souborovém systému zařízení vztahují určitá omezení. Pomocí jazyka ActionScript 3.0 může vaše aplikace přistupovat pouze k určitým adresářům (a jejich podadresářům). Navíc názvy adresářů, které používáte v jazyce ActionScript, nejsou skutečnými názvy adresářů v zařízení. Tato další úroveň brání aplikacím pro platformu AIR for TV v tom, aby náhodou nebo úmyslně se škodlivým záměrem nezískaly přístup k místním souborům, které k nim nepatří. Podrobnosti naleznete v tématu Zobrazení složek pro aplikace prostředí AIR for TV. Karanténa aplikace AIR Aplikace pro platformu AIR for TV jsou spouštěny v karanténě aplikace AIR, jež je popsána v tématu Karanténa aplikace AIR. Jediným rozdílem v případě aplikací pro platformu AIR for TV je, že tyto aplikace mají omezený přístup k souborovému systému, jak je popsáno v tématu „Zabezpečení souborového systému“ na stránce 133. Životní cyklus aplikace Rozdílem oproti prostředí stolního počítače je, že koncový uživatel nemůže zavřít okno, ve kterém je aplikace pro platformu AIR for TV spuštěna. Nabídněte proto v uživatelském rozhraní mechanismus pro ukončení aplikace. Zařízení obvykle umožňuje koncovému uživateli kdykoli ukončit aplikaci pomocí tlačítka dálkového ovladače pro ukončení. Platforma AIR for TV však událost flash.events.Event.EXITING neodešle do aplikace. Ukládejte proto pravidelně stav aplikace, aby se při příštím spuštění mohla aplikace obnovit v odpovídajícím stavu. Soubory cookie HTTP Platforma AIR for TV podporuje trvalé soubory cookie protokolu HTTP a soubory cookie relací. Platforma AIR for TV uloží každý soubor cookie aplikace AIR do specifického adresáře aplikace. /app-storage/<app id>/Local Store Soubor cookie má název cookies. Poznámka: Prostředí AIR pro jiná zařízení, například stolní počítače, neukládá soubory cookie samostatně pro každou aplikaci. Úložiště souborů cookie specifické pro aplikaci podporuje aplikaci a model zabezpečení pro platformu AIR for TV. Použijte vlastnost URLRequest.manageCookies jazyka ActionScript takto: • Nastavte vlastnost manageCookies na hodnotu true. Tato hodnota je výchozí. Určuje, že platforma AIR for TV automaticky přidává soubory cookie do požadavků HTTP a ukládá do paměti soubory cookie v odpovědi HTTP. Poznámka: I když vlastnost manageCookies má hodnotu true, je možné v aplikaci přidat soubor cookie do požadavku HTTP ručně pomocí vlastnosti URLRequest.requestHeaders. Pokud tento soubor cookie má stejný název jako soubor cookie, který spravuje platforma AIR for TV, bude požadavek obsahovat dva soubory cookie se stejným názvem. Hodnoty těchto dvou souborů cookie mohou být různé. • Nastavte vlastnost manageCookies na hodnotu false. Tato hodnota určuje, že za odesílání souborů cookie v požadavcích HTTP a za ukládání souborů cookie v odpovědi HTTP do paměti je odpovědná aplikace. Další informace viz třída URLRequest. Poslední aktualizace 31.8.2016 135 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Pracovní postup pro vývoj aplikace pro platformu AIR for TV Aplikace pro platformu AIR for TV lze vyvíjet pomocí následujících vývojových nástrojů platformy Adobe Flash: • Adobe Flash Professional Aplikace Adobe Flash Professional CS5.5 podporuje prostředí AIR 2.5 for TV, první verze prostředí AIR podporující aplikace pro platformu AIR for TV. • Adobe Flash® Builder® Flash Builder 4.5 podporuje prostředí AIR 2.5 for TV. • Sada AIR SDK Od verze AIR 2.5 můžete k vývoji aplikací používat nástroje příkazového řádku poskytované se sadou AIR SDK. Chcete-li sadu AIR SDK stáhnout, navštivte stránku http://www.adobe.com/cz/products/air/sdk/. Používání aplikace Flash Professional Používání aplikace Flash Professional k vývoji, testování a publikování aplikací pro platformu AIR for TV se podobá používání nástroje pro aplikace AIR pro stolní počítače. Při vytváření kódu jazyka ActionScript 3.0 však používejte pouze třídy a metody, které podporují profily tv a extendedTV prostředí AIR. Podrobnosti naleznete v tématu „Profily zařízení“ na stránce 242. Nastavení projektu Při nastavení projektu pro aplikaci pro platformu AIR for TV postupujte takto: • Na kartě Flash v dialogovém okně Nastavení publikování nastavte možnost Přehrávač minimálně na hodnotu AIR 2.5. • Na kartě Všeobecné v dialogovém okně pro nastavení aplikace Adobe AIR (Nastavení aplikace a instalátoru) nastavte profil na hodnotu TV nebo extended TV. Ladění Svou aplikaci můžete spustit pomocí nástroje AIR Debug Launcher v aplikaci Flash Professional. Postupujte takto: • Chcete-li spustit aplikaci v režimu ladění, vyberte položky: Ladit > Ladit film > V aplikaci AIR Debug Launcher (pro stolní počítače) Po provedení tohoto výběru můžete pro další spouštění ladění vybrat položky: Ladit > Ladit film > Ladit • Chcete-li aplikaci spustit bez funkcí režimu ladění, vyberte položky: Ovládání > Testovací film > V aplikaci AIR Debug Launcher (pro stolní počítače) Po provedení tohoto výběru můžete pro další spouštění vybrat položky Ovládání > Testovací film > Testovat. V prostředí AIR jste nastavili profil pro televizi nebo rozšířený profil pro televizi, a proto nástroj AIR Debug Launcher obsahuje nabídku s názvem Remote Control Buttons (Tlačítka dálkového ovladače). Tato nabídka umožňuje simulaci stisknutí tlačítek dálkového ovladače. Další informace naleznete v tématu „Vzdálené ladění pomocí aplikace Flash Professional“ na stránce 144. Poslední aktualizace 31.8.2016 136 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Používání nativních rozšíření Jestliže vaše aplikace využívá nativní rozšíření, postupujte podle pokynů v části „Seznam úloh pro používání nativního rozšíření“ na stránce 148. Pokud však aplikace využívá nativní rozšíření: • Danou aplikaci nelze publikovat pomocí aplikace Flash Professional. K publikování dané aplikace použijte nástroj ADT. Informace naleznete v tématu „Zabalení pomocí nástroje ADT“ na stránce 140. • Danou aplikaci nelze spustit nebo ladit pomocí aplikace Flash Professional. K ladění dané aplikace ve vývojářském počítači použijte nástroj ADT. Informace naleznete v tématu „Simulace zařízení pomocí programu ADL“ na stránce 142. Používání aplikace Flash Builder Od verze Flash Builder 4.5 podporuje aplikace Flash Builder vývoj na platformě AIR for TV. Používání aplikace Flash Builder k vývoji, testování a publikování aplikací pro platformu AIR for TV se podobá používání nástroje pro aplikace AIR pro stolní počítače. Nastavení aplikace Ujistěte se, zda vaše aplikace: • Používá jako třídu kontejneru v souboru MXML element Application, pokud používáte soubor MXML: <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <!-- Place elements here. --> </s:Application>. Důležité: Aplikace pro platformu AIR for TV nepodporují element WindowedApplication. Poznámka: Soubor MXML nemusíte vůbec použít. Místo toho můžete vytvořit projekt v jazyce ActionScript 3.0. • Používá pouze třídy a metody jazyka ActionScript 3.0, které podporují profily tv a extendedTV prostředí AIR. Podrobnosti naleznete v tématu „Profily zařízení“ na stránce 242. Dále se v souboru XML vaší aplikace ujistěte, že: • Atribut xmlns v elementu application je nastaven na prostředí AIR 2.5: <application xmlns="http://ns.adobe.com/air/application/2.5"> • Element supportedProfiles obsahuje hodnotu tv nebo extendedTV: <supportedProfiles>tv</supportedProfiles> Ladění aplikace Svou aplikaci můžete spustit pomocí nástroje AIR Debug Launcher v aplikaci Flash Builder. Postupujte takto: 1 Vyberte položky Run (Spustit) >Debug Configurations (Konfigurace ladění). 2 Ujistěte se, zda je v poli Profile (Profil) nastavena hodnota Desktop (Stolní počítač). 3 Pro spuštění v režimu ladění vyberte položky Run (Spustit) > Debug (Ladit). Pro spuštění bez funkcí režimu ladění vyberte položky Run (Spustit) > Run (Spustit). Poslední aktualizace 31.8.2016 137 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Element supportedProfiles jste nastavili na profil pro televizi nebo rozšířený profil pro televizi, a proto nástroj AIR Debug Launcher obsahuje nabídku s názvem Remote Control Buttons (Tlačítka dálkového ovladače). Tato nabídka umožňuje simulaci stisknutí tlačítek dálkového ovladače. Další informace naleznete v tématu „Vzdálené ladění pomocí aplikace Flash Builder“ na stránce 144. Používání nativních rozšíření Jestliže vaše aplikace využívá nativní rozšíření, postupujte podle pokynů v části „Seznam úloh pro používání nativního rozšíření“ na stránce 148. Pokud však aplikace využívá nativní rozšíření: • Danou aplikaci nelze publikovat pomocí aplikace Flash Builder. K publikování dané aplikace použijte nástroj ADT. Informace naleznete v tématu „Zabalení pomocí nástroje ADT“ na stránce 140. • Danou aplikaci nelze spustit nebo ladit pomocí aplikace Flash Builder. K ladění dané aplikace ve vývojářském počítači použijte nástroj ADT. Informace naleznete v tématu „Simulace zařízení pomocí programu ADL“ na stránce 142. Vlastnosti deskriptoru aplikace AIR for TV Stejně jako u jiných aplikací AIR nastavíte základní vlastnosti aplikace v jejím souboru deskriptoru. Aplikace s televizním profilem ignorují některé vlastnosti specifické pro stolní počítače, například velikost a průhlednost okna. Aplikace zaměřené na zařízení v profilu extendedTV mohou využívat nativní rozšíření. Tyto aplikace identifikují využívaná nativní rozšíření v elementu extensions. Společná nastavení Několik nastavení deskriptoru aplikace je důležitých pro všechny aplikace s televizním profilem. Vyžadovaná verze běhového modulu AIR Určete verzi běhového modulu AIR požadovanou pro aplikaci využívající obor názvů souboru deskriptoru aplikace. Obor názvů přiřazený elementu application do značné míry určuje, jaké funkce může daná aplikace používat. Představte si například aplikaci, která používá obor názvů prostředí AIR 2.5, ale uživatel má nainstalovanou některou novější verzi. V takovém případě aplikace stále sleduje chování prostředí AIR 2.5, i když chování v novější verzi prostředí AIR se liší. Aplikace bude mít přístup k novému chování a funkcím pouze v případě, že změníte obor názvů a publikujete aktualizaci. Důležitou výjimkou z tohoto pravidla jsou opravy zabezpečení. Určete obor názvů pomocí atributu xmlns kořenového elementu application: <application xmlns="http://ns.adobe.com/air/application/2.5"> Prostředí AIR 2.5 představuje první verzi, která podporuje televizní aplikace. Identita aplikace Několik nastavení by mělo být jedinečných pro každou aplikaci, kterou publikujete. Nastavení zahrnuje elementy id, name a filename. <id>com.example.MyApp</id> <name>My Application</name> <filename>MyApplication</filename> Poslední aktualizace 31.8.2016 138 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Verze aplikace Element versionNumber slouží k zadání verze aplikace. Při zadávání hodnoty elementu versionNumber lze použít posloupnost až tří čísel oddělených tečkami, například: „0.1.2“. Každý segment čísla verze může mít až tři číslice. (Jinými slovy, nejvyšší přípustné číslo verze je „999.999.999“.) Není nutné uvést všechny tři segmenty čísla; hodnoty „1“ a „1.0“ jsou také přípustná čísla verzí. Můžete také zadat popisek verze pomocí elementu versionLabel. Přidáte-li popisek verze, zobrazí se místo čísla verze. <versionNumber>1.23.7<versionNumber> <versionLabel>1.23 Beta 7</versionLabel> Hlavní soubor SWF aplikace Do podřízeného elementu versionLabel elementu initialWindow zadejte hlavní soubor SWF aplikace. Pokud se zaměřujete na zařízení v televizním profilu, je nutné soubor SWF použít (aplikace založené na kódu HTML nejsou podporovány). <initialWindow> <content>MyApplication.swf</content> </initialWindow> Soubor je nutné zahrnout do balíčku AIR (pomocí nástroje ADT nebo vašeho prostředí IDE). Prosté uvedení názvu v deskriptoru aplikace nevede k automatickému zahrnutí souboru do balíčku. Vlastnosti hlavní obrazovky Počáteční vzhled a chování hlavní obrazovky aplikace řídí několik elementů podřízených elementu initialWindow. Přestože je většina těchto vlastností v zařízeních s televizními profily ignorována, lze použít element fullScreen: • fullScreen – určuje, zda má aplikace zabírat celý displej zařízení, nebo zda jej má sdílet s běžnými prvky operačního systému. <fullScreen>true</fullScreen> Element visible Element visible je podřízený elementu initialWindow. Platforma AIR for TV ignoruje element visible, protože obsah aplikace je v zařízeních AIR for TV vždy viditelný. Pokud je však vaše aplikace určena také pro počítačová zařízení, nastavte element visible na hodnotu true. Ve stolních počítačích je hodnota tohoto elementu nastavena na výchozí hodnotu false. Proto pokud element visible nepoužijete, nebude obsah aplikace v počítačích viditelný. I když můžete použít k zobrazení obsahu aplikace v počítačích třídu NativeWindow jazyka ActionScript, profily televizních zařízení třídu NativeWindow nepodporují. Pokud se pokusíte použít třídu NativeWindow v aplikaci běžící v zařízení AIR for TV, aplikace se nenačte. Nezáleží na tom, zda voláte nějakou metodu třídy NativeWindow. Aplikace používající tuto třídu se v zařízení AIR for TV nenačte. Podporované profily Pokud má aplikace smysl pouze v televizním zařízení, můžete zabránit v její instalaci do jiných typů počítačových zařízení. Element supportedProfiles umožňuje vyřadit ze seznamu podporovaných profilů ostatní, nepodporované profily: <supportedProfiles>tv extendedTV</supportedProfiles> Pokud aplikace využívá nativní rozšíření, zahrňte do seznamu podporovaných profilů pouze profil extendedTV: <supportedProfiles>extendedTV</supportedProfiles> Poslední aktualizace 31.8.2016 139 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Vynecháte-li element supportedProfiles, předpokládá se, že aplikace podporuje všechny profily. Nezahrnujte do seznamu supportedProfilespouze profil tv. Některá televizní zařízení vždy používají platformu AIR for TV v režimu, který odpovídá profilu extendedTV. Toto chování znamená, že platforma AIR for TV může spouštět aplikace, které používají nativní rozšíření. Pokud element supportedProfiles specifikuje pouze profil tv, znamená to, že obsah není kompatibilní s režimem platformy AIR for TV pro profil extendedTV. Proto některá televizní zařízení aplikaci, která specifikuje pouze profil tv, nenačtou. Seznam tříd jazyka ActionScript, které jsou podporovány v profilech tv a extendedTV, naleznete v tématu „Schopnosti různých profilů“ na stránce 243. Požadovaná nativní rozšíření Aplikace, které podporují profil extendedTV, mohou využívat nativní rozšíření. Elementy extensions a extensionID umožňují deklarovat všechna nativní rozšíření, která aplikace AIR používá v deskriptoru aplikace. Následující příklad ukazuje syntaxi pro zadání dvou požadovaných nativních rozšíření: <extensions> <extensionID> com.example.extendedFeature</extensionID> <extensionID> com.example.anotherFeature</extensionID> </extensions> Pokud rozšíření není v seznamu, aplikace ho nemůže použít. Element extensionID má stejnou hodnotu jako element id v souboru deskriptoru rozšíření. Soubor deskriptoru rozšíření je soubor XML s názvem extension.xml. Je zabalen v souboru ANE, který obdržíte od výrobce zařízení. Pokud rozšíření uvedete v elementu extensions, ale v zařízení AIR for TV toto rozšíření není nainstalované, aplikaci nebude možné spustit. Výjimkou z tohoto pravidla je situace, kdy je v souboru ANE, který přibalíte ke své aplikaci AIR for TV, zástupná verze tohoto rozšíření. V takovém případě aplikace může běžet a bude používat zástupnou verzi rozšíření. Zástupná verze obsahuje kód v jazyce ActionScript, ale žádný nativní kód. Ikony aplikace Požadavky na ikony aplikace v televizních zařízeních jsou specifické pro konkrétní zařízení. Výrobce zařízení například určí: • Požadované ikony a velikosti ikon. • Požadované typy souborů a konvence pro vytváření názvů. • Způsob poskytování ikon pro aplikaci, například sbalení ikon spolu s aplikací. • Zda mají být v souboru deskriptoru aplikace určeny ikony v elementu icon. • Chování v případě, že aplikace neobsahuje ikony. Podrobnosti vám poskytne výrobce zařízení. Ignorovaná nastavení Aplikace v televizních zařízeních ignorují nastavení aplikace, která se vztahují k funkcím mobilních zařízení, nativních oken či operačního systému stolního počítače. Ignorována nastavení zahrnují: • allowBrowserInvocation • aspectRatio • autoOrients Poslední aktualizace 31.8.2016 140 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení • customUpdateUI • fileTypes • height • installFolder • maximizable • maxSize • minimizable • minSize • programMenuFolder • renderMode • resizable • systemChrome • title • transparent • visible • width • x • y Zabalení aplikace AIR pro televizi Zabalení pomocí nástroje ADT K zabalení aplikace AIR pro televizi můžete použít nástroj příkazového řádku AIR ADT. Od sady AIR SDK verze 2.5 podporuje nástroj ADT balení pro televizní zařízení. Před sbalením proveďte kompilaci celého kódu jazyka ActionScript a MXML. Musíte také mít certifikát pro podepsání kódu. Certifikát můžete vytvořit pomocí příkazu certificate nástroje ADT. Podrobné informace o příkazech a možnostech nástroje ADT naleznete v tématu „AIR Developer Tool (ADT)“ na stránce 163. Vytvoření balíčku AIR Chcete-li vytvořit balíček AIR, použijte příkaz package nástroje ADT: adt -package -storetype pkcs12 -keystore ../codesign.p12 myApp.air myApp-app.xml myApp.swf icons V příkladu se předpokládá, že: • Cesta k nástroji ADT se nachází v definici cesty v prostředí příkazového řádku. (Viz téma „Proměnné prostředí pro cestu“ na stránce 301.) • Certifikát codesign.p12 se nachází v nadřazeném adresáři adresáře, z něhož příkaz nástroje ADT spouštíte. Spusťte příkaz z adresáře obsahujícího soubory aplikace. Soubory aplikace v uvedeném příkladu jsou myApp-app.xml (soubor deskriptoru aplikace), myApp.swf a adresář icons. Poslední aktualizace 31.8.2016 141 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Při spuštění příkazu, jak je uveden, vás nástroj ADT vyzve k zadání hesla pro úložiště klíčů. Všechny programy prostředí nemusí zadávané znaky hesla zobrazovat; po dokončení zadávání stačí stisknout klávesu Enter. Případně můžete k zahrnutí hesla do příkazu nástroje ADT použít parametr storepass. Vytvoření balíčku AIRN Pokud vaše aplikace pro platformu AIR for TV využívá nativní rozšíření, místo balíčku AIR vytvořte balíček AIRN. Chcete-li vytvořit balíček AIRN, použijte příkaz package nástroje ADT, přičemž cílový typ nastavte na hodnotu airn. adt -package -storetype pkcs12 -keystore ../codesign.p12 -target airn myApp.airn myApp-app.xml myApp.swf icons -extdir C:\extensions V příkladu se předpokládá, že: • Cesta k nástroji ADT se nachází v definici cesty v prostředí příkazového řádku. (Viz téma „Proměnné prostředí pro cestu“ na stránce 301.) • Certifikát codesign.p12 se nachází v nadřazeném adresáři adresáře, z něhož příkaz nástroje ADT spouštíte. • Parametr -extdir určuje název adresáře, který obsahuje soubory ANE, jež aplikace používá. Tyto soubory ANE obsahují zástupnou nebo simulační verzi rozšíření jazyka, která využívá pouze ActionScript. Verze rozšíření jazyka, která obsahuje nativní kód, je nainstalována v zařízení využívajícím platformu AIR for TV. Spusťte příkaz z adresáře obsahujícího soubory aplikace. Soubory aplikace v uvedeném příkladu jsou myApp-app.xml (soubor deskriptoru aplikace), myApp.swf a adresář icons. Při spuštění příkazu, jak je uveden, vás nástroj ADT vyzve k zadání hesla pro úložiště klíčů. Všechny programy prostředí nemusí zadávané znaky hesla zobrazovat; po dokončení zadávání stačí stisknout klávesu Enter. Případně můžete k zahrnutí hesla do příkazu použít parametr storepass. Pro aplikaci pro platformu AIR for TV, která využívá nativní rozšíření, můžete také vytvořit soubor AIRI. Soubor AIRI je stejný jako soubor AIRN, až na to, že není podepsán. Například: adt -prepare myApp.airi myApp.xml myApp.swf icons -extdir C:\extensions Až budete připraveni k podpisu aplikace, můžete ze souboru AIRI vytvořit soubor AIRN: adt -package -storetype pkcs12 -keystore ../codesign.p12 -target airn myApp.airn myApp.airi Další informace naleznete v tématu Vývoj nativních rozšíření pro prostředí Adobe AIR. Balení pomocí aplikace Flash Builder nebo Flash Professional Aplikace Flash Professional a Flash Builder umožňují publikovat nebo exportovat balíčky AIR, aniž byste museli sami spustit nástroj ADT. Postup pro vytvoření balíčku AIR pro aplikaci AIR je popsán v dokumentaci k těmto aplikacím. V současné době však pouze nástroj ADT může vytvořit balíčky AIRN, což jsou balíčky aplikace pro aplikace AIR for TV používající nativní rozšíření. Další informace naleznete v následujících zdrojích: • Balení aplikací AIR pomocí aplikace Flash Builder • Publikování pro prostředí Adobe AIR pomocí aplikace Flash Professional Poslední aktualizace 31.8.2016 142 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Ladění aplikací AIR pro televizi Simulace zařízení pomocí programu ADL Nejrychlejší a nejsnadnější způsob testování a ladění většiny funkcí aplikací je spuštění aplikace ve vývojovém počítači pomocí programu ADL (Adobe Debug Launcher). Program ADL zvolí profil, který má použít, na základě elementu supportedProfiles v deskriptoru aplikace. Konkrétně: • Pokud je v seznamu uveden více než jeden profil, program ADL použije první z nich. • Pomocí parametru -profile programu ADL lze vybrat některý z dalších profilů v seznamu supportedProfiles. • (Pokud do deskriptoru aplikace element supportedProfiles nezahrnete, lze v argumentu -profile zadat libovolný profil.) Například pomocí následujícího příkazu spustíte aplikaci tak, aby simulovala profil tv: adl -profile tv myApp-app.xml Při simulaci profilu tv nebo extendedTV ve stolním počítači pomocí programu ADL se aplikace spustí v prostředí, které lépe odpovídá cílovému zařízení. Například: • Rozhraní API jazyka ActionScript, která nejsou součástí profilu v argumentu -profile, nejsou k dispozici. • Program ADL umožňuje vstup ovládacích prvků zařízení, například dálkových ovladačů, prostřednictvím příkazů nabídky. • Zadání hodnoty tv nebo extendedTV do argumentu -profile umožní programu ADL simulaci třídy StageVideo na stolním počítači. • Zadání hodnoty extendedTV do argumentu -profile umožní aplikaci využívat zástupné nebo simulační verze nativního rozšíření, jež jsou sbaleny se souborem AIRN aplikace. Protože však program ADL spustí aplikaci ve stolním počítači, platí pro testování aplikací AIR pro televizi pomocí programu ADL určitá omezení: • Neodráží výkon aplikace v zařízení. Výkon otestujte na cílovém zařízení. • Nesimuluje omezení objektu StageVideo. K přehrávání videa, které je zaměřeno na aplikaci AIR pro televizní zařízení, se obvykle používá třída StageVideo, nikoli třída Video. Třída StageVideo těží z výhod v oblasti výkonu, které nabízí hardware zařízení, vztahují se však na ni určitá omezení v oblasti zobrazení. Program ADL přehrává video ve stolním počítači bez těchto omezení. Otestovat proto přehrávání videa na cílovém zařízení. • Nemůže simulovat nativní kód nativního rozšíření. Můžete však zadat profil extendedTV, který podporuje nativní rozšíření, a to do argumentu -profile programu ADL. Program ADL umožňuje testování pomocí zástupné nebo simulační verze rozšíření jazyka, která využívá pouze ActionScript, jež je součástí balíčku ANE. Odpovídající rozšíření jazyka, jež je v zařízení nainstalováno, však obvykle zahrnuje také nativní kód. Chcete-li testovat pomocí rozšíření jazyka s tímto nativním kódem, spusťte aplikaci v cílovém zařízení. Další informace naleznete v části „Program AIR Debug Launcher (ADL)“ na stránce 157. Používání nativních rozšíření Pokud aplikace využívá nativní rozšíření, vypadá příkaz programu ADL jako v následujícím příkladu: adl -profile extendedTV -extdir C:\extensionDirs myApp-app.xml Poslední aktualizace 31.8.2016 143 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení V příkladu se předpokládá, že: • Cesta k nástroji ADL se nachází v definici cesty v prostředí příkazového řádku. (Viz téma „Proměnné prostředí pro cestu“ na stránce 301.) • Aktuální adresář obsahuje soubory aplikace. Tyto soubory zahrnují soubory SWF a soubor deskriptoru aplikace, což v tomto příkladu je myApp-app.xml. • Parametr -extdir určuje název adresáře, který obsahuje adresáře pro všechna nativní rozšíření, jež aplikace používá. Každý z těchto adresářů obsahuje rozbalený soubor ANE nativního rozšíření. Například: C:\extensionDirs extension1.ane META-INF ANE default library.swf extension.xml signatures.xml catalog.xml library.swf mimetype extension2.ane META-INF ANE default library.swf extension.xml signatures.xml catalog.xml library.swf mimetype Tyto rozbalené soubory ANE obsahují zástupnou nebo simulační verzi rozšíření jazyka, která využívá pouze ActionScript. Verze rozšíření jazyka, která obsahuje nativní kód, je nainstalována v zařízení využívajícím platformu AIR for TV. Další informace naleznete v tématu Vývoj nativních rozšíření pro prostředí Adobe AIR. Řízení vstupu Program ADL simuluje tlačítka dálkového ovládání na televizním zařízení. Vstup z těchto tlačítek můžete do simulovaného zařízení odesílat pomocí nabídky zobrazené při spuštění programu ADL s použitím jednoho z televizních profilů. Velikost obrazovky Aplikaci můžete testovat s různými velikostmi obrazovky, a to nastavením parametru -screensize programu ADL. Můžete zadat řetězec obsahující čtyři hodnoty představující šířku a výšku u normální a maximalizované obrazovky. Zadané rozměry v pixelech se vždy týkají rozvržení na výšku, tzn. že šířka je menší než výška. Například: adl -screensize 728x1024:768x1024 myApp-app.xml Trasování příkazů Spustíte-li televizní aplikaci ve stolním počítači, vytiskne se výstup trasování do ladicího programu nebo okna terminálu použitého ke spuštění programu ADL. Poslední aktualizace 31.8.2016 144 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Vzdálené ladění pomocí aplikace Flash Professional Ke vzdálenému ladění aplikace pro platformu AIR for TV při spuštění v cílovém zařízení lze použít aplikaci Flash Professional. Postup nastavení vzdáleného ladění však závisí na příslušném zařízení. Například sada Adobe® AIR® for TV MAX 2010 Hardware Development Kit obsahuje dokumentaci s podrobným postupem pro dané zařízení. Jako přípravu na vzdálené ladění však bez ohledu na cílové zařízení proveďte následující postup: 1 V dialogovém okně Nastavení publikování vyberte na kartě Flash možnost Povolit ladění. Tato možnost zajistí, že aplikace Flash Professional zahrne ladicí informace do všech souborů SWF, jež vytvoří ze souboru FLA. 2 Na kartě Podpis v dialogovém okně pro nastavení aplikace Adobe AIR (Nastavení aplikace a instalátoru) vyberte volbu pro přípravu souboru AIRI (AIR Intermediate). Pokud svou aplikaci zatím vyvíjíte, bude dostačovat použití souboru AIRI, který nevyžaduje digitální podpis. 3 Proveďte publikování aplikace, čímž vytvoříte soubor AIRI. Posledními kroky jsou instalace a spuštění aplikace v cílovém zařízení. Tyto kroky jsou však závislé na konkrétním zařízení. Vzdálené ladění pomocí aplikace Flash Builder Ke vzdálenému ladění aplikace pro platformu AIR for TV při spuštění v cílovém zařízení lze použít rovněž aplikaci Flash Builder. Postup provádění vzdáleného ladění však závisí na příslušném zařízení. Jako přípravu na vzdálené ladění však bez ohledu na cílové zařízení proveďte následující postup: 1 Vyberte možnosti Project (Projekt) > Export Release Build (Export sestavení vydání). Vyberte volbu pro přípravu souboru AIRI (AIR Intermediate). Pokud svou aplikaci zatím vyvíjíte, bude dostačovat použití souboru AIRI, který nevyžaduje digitální podpis. 2 Proveďte publikování aplikace, čímž vytvoříte soubor AIRI. 3 Změňte balíček AIRI aplikace tak, aby obsahoval soubory SWF, jež obsahují ladicí informace. Soubory SWF, jež obsahují ladicí informace, se nacházejí v projektovém adresáři Flash Builder pro danou aplikaci v adresáři s názvem bin-debug. Soubory SWF v balíčku AIRI nahraďte soubory SWF z adresáře bin-debug. Ve vývojovém počítači se systémem Windows můžete toto nahrazení provést následujícím způsobem: 1 Přejmenujte soubor balíčku AIRI tak, aby místo přípony AIRI měl příponu ZIP. 2 Extrahujte obsah souboru ZIP. 3 Nahraďte soubory SWF v extrahované adresářové struktuře soubory z adresáře bin-debug. 4 Znovu zabalte soubory v extrahovaném adresáři. 5 Znovu změňte zabalený soubor tak, aby měl opět příponu AIRI. Používáte-li vývojový počítač se systémem Mac, je postup tohoto nahrazení závislý na konkrétním zařízení. Obecně však zahrnuje následující kroky: 1 Nainstalujte balíček AIRI do cílového zařízení. 2 Soubory SWF v instalačním adresáři aplikace v cílovém zařízení nahraďte soubory SWF z adresáře bin-debug. Poslední aktualizace 31.8.2016 145 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Vývoj aplikací AIR pro televizní zařízení Uveďme například postup pro zařízení, jež je součástí sady Adobe AIR for TV MAX 2010 Hardware Development Kit. Nainstalujte balíček AIRI podle popisu v dokumentaci k sadě. Potom pro přístup k cílovému zařízení použijte v příkazovém řádku vývojového počítače Mac nástroj telnet. Soubory SWF v instalačním adresáři aplikace /opt/adobe/stagecraft/apps/<název_aplikace>/ nahraďte soubory SWF z adresáře bin-debug. Následující postup je určen pro vzdálené ladění pomocí aplikace Flash Builder a zařízení, jež je součástí sady Adobe AIR for TV MAX 2010 Hardware Development Kit. 1 Ve vývojovém počítači s aplikací Flash Builder spusťte aplikaci AIR for TV Device Connector, která se dodává se sadou MAX 2010 Hardware Development Kit. Program zobrazí adresu IP vašeho vývojového počítače. 2 V zařízení s vývojářskou sadou spusťte aplikaci DevMaster, která se také dodává s touto vývojářskou sadou. 3 V aplikaci DevMaster zadejte adresu IP vašeho vývojového počítače, jak je uvedena v aplikaci AIR for TV Device Connector. 4 V aplikaci DevMaster se ujistěte, zda je vybrána možnost Enable Remote Debugging (Povolit vzdálené ladění). 5 Ukončete aplikaci DevMaster. 6 Ve vývojovém počítači v aplikaci AIR for TV Device Connector vyberte položku Start (Spustit). 7 V zařízení s vývojářskou sadou spusťte jinou aplikaci. Ověřte, zda jsou v aplikaci AIR for TV Device Connector zobrazeny informace o trasování. Pokud nejsou informace o trasování zobrazeny, nejsou vývojový počítač a zařízení s vývojářskou sadou propojeny. Ujistěte se, zda je ve vývojovém počítači dostupný port, který se používá pro informace o trasování. V aplikaci AIR for TV Device Connector můžete zvolit jiný port. Ujistěte se také, zda vaše brána firewall umožňuje přístup ke zvolenému portu. Potom v aplikaci Flash Builder spusťte debugger. Postupujte takto: 1 V aplikaci Flash Builder vyberte položky Run (Spustit) > Debug Configurations (Konfigurace ladění). 2 Z existující konfigurace ladění, která je určena pro místní ladění, zkopírujte název projektu. 3 V dialogovém okně Debug Configurations (Konfigurace ladění) vyberte položku Web Application (Webová aplikace). Potom vyberte ikonu New Launch Configuration (Nová konfigurace spuštění). 4 Vložte název projektu do pole Project (Projekt). 5 V části adresa URL Or Path To Launch (Adresa URL nebo cesta pro spuštění) zrušte zaškrtnutí políčka Use Default (Použít výchozí). Do textového pole zadejte about:blank. 6 Uložte změny výběrem položky Apply (Použít). 7 Výběrem položky Debug (Ladit) spusťte debugger aplikace Flash Builder. 8 Spusťte svou aplikaci v zařízení s vývojářskou sadou. Nyní můžete pomocí debuggeru aplikace Flash Builder například nastavit body přerušení a zkoumat proměnné. Poslední aktualizace 31.8.2016 146 Kapitola 9: Použití nativních rozšíření pro prostředí Adobe AIR Nativní rozšíření prostředí AIR poskytují rozhraní API jazyka ActionScript, která umožňují přístup k funkcím specifickým pro určitá zařízení naprogramovaným v naivním kódu. Vývojáři nativních rozšíření někdy spolupracují s výrobci zařízení a někdy jsou vývojáři třetích stran. Pokud vyvíjíte nativní rozšíření, vyhledejte informace v tématu Vývoj nativních rozšíření pro prostředí Adobe AIR. Nativní rozšíření je kombinací: • tříd ActionScript, • nativního kódu. Nicméně jako vývojář aplikace AIR používající nativní rozšíření pracujete pouze s třídami jazyka ActionScript. Nativní rozšíření jsou užitečná v následujících situacích: • Implementace nativního kódu poskytuje přístup k funkcím specifickým pro platformu. Tyto funkce specifické pro platformu nejsou dostupné v integrovaných třídách jazyka ActionScript a nelze je implementovat ve třídách jazyka ActionScript specifických pro aplikaci. Implementace nativního kódu může takové funkce poskytnout, protože má přístup k hardwaru a softwaru specifickému pro zařízení. • Implementace nativního kódu může občas být rychlejší než implementace, který používá pouze jazyk ActionScript. • Implementace nativního kódu může poskytnout přístup jazyku ActionScript ke staršímu nativním kódu. Některé příklady nativních rozšíření naleznete v technickém centru Adobe Developer Center. Například jedno nativní rozšíření poskytuje aplikacím AIR přístup k funkci vibrace systému Android. Viz Nativní rozšíření pro prostředí Adobe AIR. Soubory ANE (AIR Native Extension) Vývojáři nativního rozšíření zabalí nativní rozšíření do souboru ANE. Soubor ANE je archivní soubor obsahující nezbytné knihovny a prostředky pro nativní rozšíření. U některých zařízení obsahuje soubor ANE knihovnu nativního kódu, kterou nativní rozšíření používá. Avšak u jiných zařízení je knihovna nativního kódu nainstalována v zařízení. V některých případech nemá nativní rozšíření pro konkrétní zařízení vůbec žádný kód, implementuje se pouze pomocí jazyka ActionScript. Jako vývojář aplikace AIR Developer použijte soubor ANE následovně: • Zahrňte soubor ANE do cesty ke knihovně aplikace stejným způsobem, jakým zahrnete soubor SWC do cesty ke knihovně. Tato akce umožňuje aplikaci, aby odkazovala na třídy jazyka ActionScript rozšíření. Poznámka: Při kompilaci aplikace je nutné použít pro soubor ANE dynamické propojení. Pokud používáte aplikaci Flash Builder, určete na panelu ActionScript Builder Path Properties (Vlastnosti cesty editoru jazyka ActionScript) položku External (Externí); pokud používáte příkazový řádek, zadejte řetězec -external-library-path. • Zabalte soubor ANE s aplikací AIR. Poslední aktualizace 31.8.2016 147 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Použití nativních rozšíření pro prostředí Adobe AIR Nativní rozšíření versus třída NativeProcess jazyka ActionScript Jazyk ActionScript 3.0 poskytuje třídu NativeProcess. Tato třída umožňuje aplikaci AIR spouštět nativní procesy v hostitelském operačním systému. Tato možnost je podobná nativním rozšířením, která poskytují přístup k funkcím a platformám specifickým pro platformu. Když se rozhodujete zda použít třídu NativeProcess nebo nativní rozšíření, zvažte následující skutečnosti: • Pouze profil extendedDesktopprostředí AIR podporuje třídu NativeProcess. Pro aplikace AIR s profilem mobileDevice nebo extendedMobileDevice představuje nativní rozšíření jedinou možnost. • Vývojáři nativního rozšíření často poskytují nativní implementace pro různé platformy, ale rozhraní API jazyka ActionScript, která poskytují, jsou obvykle stejná ve více platformách. Při použití třídy NativeProcess se může kód jazyka ActionScript pro spuštění nativního procesu na různých platformách lišit. • Třída NativeProcess spustí samostatný proces, zatímco nativní rozšíření spustí stejný proces jako aplikace AIR. Proto pokud máte obavy ze zhroucení kódu, je použití třídy NativeProcess bezpečnější. Samostatný proces však znamená, že bude zřejmě nutné implementovat zpracování komunikace v rámci procesu. Nativní rozšíření versus knihovny třídy jazyka ActionScript (soubory SWC) Soubor SWC je knihovna třídy jazyka ActionScript knihovny v archivním formátu. Soubor SWC obsahuje soubor SWF a jiné zdrojové soubory. Soubor SWC je pohodlný způsob sdílení tříd jazyka ActionScript namísto sdílení jednotlivých kódů jazyka ActionScript a zdrojových souborů. Balíček nativního rozšíření je soubor ANE. Stejně jako soubor SWC je soubor ANE také knihovnou jazyka ActionScript obsahující soubor SWF a jiné zdrojové soubory v archivním formátu. Nicméně nejdůležitějším rozdílem mezi souborem ANE a souborem SWC je, že pouze soubor ANE může obsahovat knihovnu nativního kódu. Poznámka: Při kompilaci aplikace je nutné použít pro soubor ANE dynamické propojení. Pokud používáte aplikaci Flash Builder, určete na panelu ActionScript Builder Path Properties (Vlastnosti cesty editoru jazyka ActionScript) položku External (Externí); pokud používáte příkazový řádek, zadejte řetězec -external-library-path. Další témata Nápovědy O souborech SWC Podporovaná zařízení Od verze prostředí AIR 3 můžete použít nativní rozšíření v aplikacích pro následující zařízení: • zařízení se systémem Android od verze Android 2.2, • zařízení se systémem iOS od verze iOS 4.0, • Simulátor iOS, od aplikace AIR 3.3 • Blackberry PlayBook, • počítačová zařízení se systémem Windows, která podporují prostředí AIR 3.0, Poslední aktualizace 31.8.2016 148 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Použití nativních rozšíření pro prostředí Adobe AIR • počítačová zařízení se systémem Mac OS X, která podporují prostředí AIR 3.0, Často je jedno nativní rozšíření určeno pro více platforem. Soubor ANE rozšíření obsahuje knihovny jazyka ActionScript a nativní knihovny pro každou podporovanou platformu. Obvykle mají knihovny jazyka ActionScript stejná veřejná rozhraní pro všechny platformy. Nativní knihovny jsou nutně odlišné. V některých případech nativní rozšíření podporuje výchozí platformu. Implementace výchozí platformy má pouze kód jazyka ActionScript, ale žádný nativní kód. Pokud zabalíte aplikaci pro platformu, kterou rozšíření konkrétně nepodporuje, použije aplikace při spuštění výchozí implementaci. Například představte si rozšíření, které podporuje funkci vztahující se pouze na mobilní telefony. Rozšíření může poskytovat také výchozí implementaci, kterou počítačová aplikace může použít k simulaci této funkce. Podporované profily zařízení Následující profily prostředí AIR podporují nativní rozšíření: • extendedDesktop, představen ve verzi AIR 3.0 • mobileDevice, představen ve verzi AIR 3.0 • extendedMobileDevice, představen ve verzi AIR 3.0 Další témata Nápovědy Podpora profilů prostředí AIR Seznam úloh pro používání nativního rozšíření Chcete-li použít nativní rozšíření v aplikaci, proveďte následující úlohy: 1 Deklarujte rozšíření v souboru deskriptoru aplikace. 2 Zahrňte soubor ANE do cesty ke knihovně aplikace. 3 Zabalte aplikaci. Deklarujte rozšíření v souboru deskriptoru aplikace. Všechny aplikace prostředí AIR mají soubor deskriptoru aplikace. Když aplikace používá nativní rozšíření, zahrnuje soubor deskriptoru aplikace element <extensions>. Například: <extensions> <extensionID>com.example.Extension1</extensionID> <extensionID>com.example.Extension2</extensionID> </extensions> Element extensionID má stejnou hodnotu jako element id v souboru deskriptoru rozšíření. Soubor deskriptoru rozšíření je soubor XML s názvem extension.xml. Je zabalen v souboru ANE. Můžete použít nástroj extraktoru archivu pro zobrazení souboru extension.xml. Poslední aktualizace 31.8.2016 149 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Použití nativních rozšíření pro prostředí Adobe AIR Zahrnutí souboru ANE do cesty ke knihovně aplikace Chcete-li zkompilovat aplikaci, která využívá nativní rozšíření, zahrňte soubor ANE do cesty knihovny. Použití souboru ANE s aplikací Flash Builder Jestliže vaše aplikace využívá nativní rozšíření zahrňte soubor ANE pro nativní rozšíření do cesty knihovny. Potom můžete v aplikaci Flash Builder zkompilovat kód jazyka ActionScript. V aplikaci Flash Builder 4.5.1 proveďte následující kroky: 1 Změňte příponu názvu souboru z ANE na SWC. Tento krok je nutný proto, aby aplikace Flash Builder soubor našla. 2 V projektu aplikace Flash Builder vyberte možnost Project (Projekt) > Properties (Vlastnosti). 3 V dialogovém okně Properties (Vlastnosti) vyberte položku Flex Build Path (Cesta vytvoření Flex). 4 Na kartě Library Path (Cesta ke knihovně) vyberte možnost Add SWC... (Přidat soubor SWC...). 5 Vyhledejte soubor SWC a vyberte příkaz Open (Otevřít). 6 V dialogovém okně Add SWC... (Přidat soubor SWC...) klepněte na tlačítko OK. Soubor ANE se nyní zobrazí v dialogovém okně Properties (Vlastnosti) na kartě Library Path (Cesta ke knihovně). 7 Rozbalte položku souboru SWC. Poklepáním na položku Link Type (Typ odkazu) otevřete dialogové okno Library Path Item Options (Volby položek cesty knihovny). 8 V dialogovém okně Library Path Item Options (Volby položek cesty knihovny) změňte hodnotu volby Link Type (Typ odkazu) na External (Externí). Nyní můžete aplikaci zkompilovat, například výběrem položek Project (Projekt) > Build Project (Vytvořit projekt). Použití souboru ANE s aplikací Flash Professional Jestliže vaše aplikace využívá nativní rozšíření zahrňte soubor ANE pro nativní rozšíření do cesty knihovny. Potom můžete pomocí aplikace Flash Professional CS5.5 zkompilovat kód jazyka ActionScript. Postupujte takto: 1 Změňte příponu souboru ANE na SWC. Tento krok je nutný proto, aby aplikace Flash Professional mohla tento soubor nalézt. 2 Pro soubor FLA vyberte položky Soubor > Nastavení jazyka ActionScript. 3 V dialogovém okně Další nastavení jazyka ActionScript 3.0 vyberte kartu Cesta knihovny. 4 Vyberte tlačítko Vyhledat soubor SWC. 5 Vyhledejte soubor SWC a vyberte příkaz Otevřít. Soubor SWC se nyní zobrazí v dialogovém okně Další nastavení jazyka ActionScript 3.0 na kartě Cesta knihovny. 6 S vybraným souborem SWC vyberte tlačítko Nastavit volby navázání pro knihovnu. 7 V dialogovém okně Library Path Item Options (Volby položek cesty knihovny) změňte hodnotu volby Link Type (Typ odkazu) na External (Externí). Poslední aktualizace 31.8.2016 150 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Použití nativních rozšíření pro prostředí Adobe AIR Zabalení aplikace, která používá nativní rozšíření K zabalení aplikace, která používá nativní rozšíření, použijte nástroj ADT. Ke sbalení aplikace nelze použít aplikaci Flash Professional CS5.5 ani Flash Builder 4.5.1. Podrobné informace o používání nástroje ADT naleznete na webu AIR Developer Tool (ADT). Například následující příkazu ADT vytvoří soubor DMG (soubor nativního instalátoru pro Mac OS X) pro aplikaci, která používá nativní rozšíření: adt -package -storetype pkcs12 -keystore myCert.pfx -target native myApp.dmg application.xml index.html resources -extdir extensionsDir Následující příkaz vytvoří balíček APK pro zařízení se systémem Android: adt -package -target apk -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml myApp.swf icons -extdir extensionsDir Následující příkaz vytvoří balíček iOS pro aplikaci pro zařízení iPhone: adt -package -target ipa-ad-hoc -storetype pkcs12 -keystore ../AppleDistribution.p12 -provisioning-profile AppleDistribution.mobileprofile myApp.ipa myApp-app.xml myApp.swf icons Default.png -extdir extensionsDir Zapamatujte si následující pravidla: • Použijte typ balíčku nativního instalačního programu. • Určete adresář rozšíření. • Zkontrolujte, že soubor ANE podporuje cílové zařízení aplikace. Použití typu balíčku nativního instalačního programu. Balíček aplikace musí být nativní instalační program. Nemůžete vytvořit balíček AIR pro více platforem (balíček .air) pro aplikaci, která využívá nativní rozšíření, protože nativní rozšíření obvykle obsahují nativní kód. Typické nativní rozšíření však podporuje více nativních platforem se stejnými rozšířeními API jazyka ActionScript. V těchto případech můžete použít stejný soubor ANE v různých nativních balíčcích instalačního programu. Následující tabulka nabízí souhrn hodnot pro použití u možnosti -target příkazu ADT: Poslední aktualizace 31.8.2016 151 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Použití nativních rozšíření pro prostředí Adobe AIR Cílová platforma aplikace -target Zařízení systému Mac OS X nebo Windows -target native -target bundle Android -target apk nebo jiné cíle balíčku pro platformu Android. iOS -target ipa-ad-hoc nebo jiné cíle balíčku pro platformu iOS. Simulátor iOS -target ipa-test-interpreter-simulator -target ipa-debug-interpreter-simulator Určení adresáře rozšíření Použijte možnost ADT volba -extdir , která sdělí příkazu ADT adresář, který obsahuje nativní rozšíření (souborů ANE). Podrobnosti o této možnosti naleznete v tématu „Možnosti souboru a cesty“ na stránce 179. Zkontrolujte, že soubor ANE podporuje cílové zařízení aplikace. Při poskytování souboru ANE vás vývojář nativního rozšíření informuje, které platformy dané rozšíření podporuje. Můžete také použít nástroj extraktoru archivu, pokud si chcete obsah souboru ANE prohlédnout. Extrahované soubory zahrnují adresář pro každou podporovanou platformu. Znát, které platformy rozšíření podporuje, je důležité při balení aplikace, která bude soubor ANE používat. Vezměte v úvahu následující aspekty: • Chcete-li vytvořit balíček aplikace pro systém Android, musí soubor ANE obsahovat platformuAndroid-ARM . Nebo musí soubor ANE zahrnovat výchozí platformu a alespoň jednu další platformu. • Chcete-li vytvořit balíček aplikace pro systém iOS, musí soubor ANE obsahovat platformuiPhone-ARM . Nebo musí soubor ANE zahrnovat výchozí platformu a alespoň jednu další platformu. • Chcete-li vytvořit balíček aplikace pro simulátor iOS, musí soubor ANE obsahovat platformu iPhone-x86. • Chcete-li vytvořit balíček aplikace pro systém Mac OS X, musí soubor ANE obsahovat platformu MacOS-x86. Nebo musí soubor ANE zahrnovat výchozí platformu a alespoň jednu další platformu. • Chcete-li vytvořit balíček aplikace pro systém Windows, musí soubor ANE obsahovat platformuWindows-x86. Nebo musí soubor ANE zahrnovat výchozí platformu a alespoň jednu další platformu. Poslední aktualizace 31.8.2016 152 Kapitola 10: Kompilátory jazyka ActionScript Před zahrnutím do aplikace AIR je nutné kód jazyka ActionScript a MXML kompilovat. Jestliže použijete integrované vývojové prostředí (IDE), jako je například Adobe Flash Builder nebo Adobe Flash Professional, zpracuje prostředí IDE kompilaci na pozadí. Můžete však vyvolat kompilátory jazyka ActionScript z příkazového řádku k vytvoření souborů SWF, pokud nepoužíváte prostředí IDE nebo při použití skriptu sestavení. O nástrojích příkazového řádku prostředí AIR v sadě Flex SDK Každý nástroj příkazového řádku použitý k vytvoření aplikace Adobe AIR volá odpovídající nástroj, který slouží k sestavení aplikací: • nástroj amxmlc volá nástroj mxmlc ke kompilaci tříd aplikace, • nástroj acompc volá nástroj compc ke kompilaci tříd knihovny a komponent, • nástroj aasdoc volá nástroj asdoc k vygenerování souborů dokumentace z komentářů zdrojového kódu. Jediný rozdíl mezi verzemi nástrojů Flex a AIR je ten, že verze AIR načítají možnosti konfigurace ze souboru airconfig.xml místo souboru flex-config.xml. Nástroje Flex SDK a jejich volby příkazového řádku jsou podrobně popsány v dokumentaci k prostředí Flex. Tento dokument obsahuje základní popis nástrojů sady Flex SDK, v němž jsou vysvětleny rozdíly mezi sestavováním aplikací Flex a aplikací AIR. Další témata Nápovědy „Vytvoření první aplikace AIR pro stolní počítače pomocí sady Flex SDK“ na stránce 36 Nastavení kompilátoru Parametry kompilace se obvykle nastavují pomocí příkazového řádku a jednoho nebo více konfiguračních souborů. Globální konfigurační soubor sady Flex SDK obsahuje výchozí hodnoty, které se použijí při každém spuštění kompilátoru. Tento soubor lze upravit, aby vyhovoval vlastnímu vývojovému prostředí. Existují dva globální konfigurační soubory Flex, které se nacházejí v adresáři instalace sady Flex SDK. Soubor air-config.xml se použije při spuštění kompilátoru amxmlc. Tento soubor konfiguruje kompilátor pro prostředí AIR včetně knihoven AIR. Soubor flex-config.xml se použije při spuštění nástroje mxmlc. Pomocí výchozích hodnot konfigurace zjistíte, jak aplikace Flex a AIR fungují, když však přejdete k plnohodnotnému projektu, prozkoumejte dostupné možnosti podrobněji. Do voleb kompilátoru v místním konfiguračním souboru lze zadat hodnoty specifické pro projekt, jež budou mít přednost před globálními hodnotami pro daný projekt. Poznámka: Žádné parametry kompilace nejsou použity speciálně pro aplikace AIR, ale při kompilaci aplikace AIR je nutné vytvořit odkaz na knihovny AIR. Na tyto knihovny se obvykle odkazuje v konfiguračním souboru na úrovni projektu, v souboru k nástroji sestavení, například Ant, nebo přímo na příkazovém řádku. Poslední aktualizace 31.8.2016 153 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Kompilátory jazyka ActionScript Kompilace zdrojových souborů MXML a ActionScript pro aplikaci AIR Datové zdroje jazyka Adobe® ActionScript® 3.0 a MXML aplikace AIR můžete kompilovat pomocí kompilátoru příkazového řádku MXML (amxmlc). (Aplikace založené na HTML není nutné kompilovat. Pokud chcete kompilovat obsah SWF v aplikaci Flash Professional, publikujte film do souboru SWF.) Základní vzor příkazového řádku pro použití nástroje amxmlc: amxmlc [compiler options] -- MyAIRApp.mxml kde [možnosti kompilátoru] určují volby příkazového řádku použité ke kompilaci aplikace AIR. Příkaz amxmlc iniciuje standardní kompilátor Flex mxmlc s dodatečným parametrem +configname=air. Tento parametr dává kompilátoru pokyn použít soubor air-config.xml namísto souboru flex-config.xml. Používání kompilátoru amxmlc je jinak identické s používáním mxmlc. Kompilátor načte konfigurační soubor air-config.xml, který určuje knihovny AIR a Flex obvykle vyžadované pro kompilaci aplikace AIR. Můžete také použít lokální konfigurační soubor na úrovni projektu pro potlačení nebo přidání dodatečných voleb ke globální konfiguraci. Nejsnazším způsobem vytvoření lokálního konfiguračního souboru je obvykle upravení kopie globální verze. Lokální soubor můžete načíst pomocí volby -load-config: -load-config=project-config.xml Potlačí globální volby. -load-config+=project-config.xml Přidá dodatečné hodnoty k těm globálním volbám, které přebírají více než hodnotu, například k volbě -library-path. Globální volby, které přebírají pouze jedinou hodnotu, jsou potlačeny. Jestliže pro lokální konfigurační soubor používáte speciální konvence pojmenování, kompilátor amxmlc načte lokální soubor automaticky. Jestliže je například hlavní soubor MXML RunningMan.mxml, pojmenujte lokální konfigurační soubor: RunningMan-config.xml. Nyní musíte pro kompilaci aplikace pouze zadat: amxmlc RunningMan.mxml RunningMan-config.xml je načten automaticky, protože jeho název souboru odpovídá názvu kompilovaného souboru MXML. Příklady kompilátoru amxmlc Následující příklady ukazují použití kompilátoru amxmlc. (Musíte kompilovat pouze datové zdroje jazyka ActionScript a MXML své aplikace.) Kompilace souboru AIR MXML: amxmlc myApp.mxml Kompilace a nastavení názvu výstupu: amxmlc –output anApp.swf -- myApp.mxml Kompilace souboru AIR ActionScript: amxmlc myApp.as Určení konfiguračního souboru kompilátoru: amxmlc –load-config config.xml -- myApp.mxml Přidání dodatečných voleb z jiného konfiguračního souboru: amxmlc –load-config+=moreConfig.xml -- myApp.mxml Poslední aktualizace 31.8.2016 154 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Kompilátory jazyka ActionScript Přidání knihoven na příkazový řádek (vedle knihoven, které se již v konfiguračním souboru nacházejí): amxmlc –library-path+=/libs/libOne.swc,/libs/libTwo.swc -- myApp.mxml Kompilace souboru AIR MXML bez použití konfiguračního souboru (Win): mxmlc -library-path [AIR SDK]/frameworks/libs/air/airframework.swc, ^ [AIR SDK]/frameworks/libs/air/airframework.swc, ^ -library-path [Flex SDK]/frameworks/libs/framework.swc ^ -- myApp.mxml Kompilace souboru AIR MXML bez použití konfiguračního souboru (Mac OS X nebo Linux): mxmlc -library-path [AIR SDK]/frameworks/libs/air/airframework.swc, \ [AIR SDK]/frameworks/libs/air/airframework.swc, \ -library-path [Flex 3 SDK]/frameworks/libs/framework.swc \ -- myApp.mxml Kompilace souboru AIR MXML pro použití knihovny sdílené za běhu: amxmlc -external-library-path+=../lib/myLib.swc -runtime-shared-libraries=myrsl.swf -myApp.mxml Kompilace souboru MXML prostředí AIR pro použití souboru ANE (pro soubor ANE je nutné použít volbu external-library-path): amxmlc -external-library-path+=../lib/myANE.ane -output=myAneApp.swf -- myAneApp.mxml Kompilace z jazyka Java (s cestou třídy nastavenou tak, aby obsahovala mxmlc.jar): java flex2.tools.Compiler +flexlib [Flex SDK 3]/frameworks +configname=air [additional compiler options] -- myApp.mxml Volba flexlib určuje umístění vašeho adresáře rámce sady Flex SDK a umožňuje tak kompilátoru najít soubor flex_config.xml. Kompilace z jazyka Java (bez nastavené cesty třídy): java -jar [Flex SDK 2]/lib/mxmlc.jar +flexlib [Flex SDK 3]/frameworks +configname=air [additional compiler options] -- myApp.mxml Vyvolání kompilátoru pomocí nástroje Apache Ant (v příkladu je použita úloha Java ke spuštění souboru mxmlc.jar): <property name="SDK_HOME" value="C:/Flex46SDK"/> <property name="MAIN_SOURCE_FILE" value="src/myApp.mxml"/> <property name="DEBUG" value="true"/> <target name="compile"> <java jar="${MXMLC.JAR}" fork="true" failonerror="true"> <arg value="-debug=${DEBUG}"/> <arg value="+flexlib=${SDK_HOME}/frameworks"/> <arg value="+configname=air"/> <arg value="-file-specs=${MAIN_SOURCE_FILE}"/> </java> </target> Poslední aktualizace 31.8.2016 155 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Kompilátory jazyka ActionScript Kompilace komponenty nebo knihovny kódu aplikace AIR (Flex) Kompilátor komponenty acompc použijte ke kompilaci knihoven AIR a nezávislých komponent. Kompilátor komponenty acompc se chová jako kompilátor amxmlc, s následujícími výjimkami: • Musíte určit, které třídy v základně kódu mají být do knihovny nebo komponenty zahrnuty. • acompc nevyhledá lokální konfigurační soubor automaticky. Pro použití konfiguračního souboru projektu musíte použít volbu –load-config. Příkaz acompc iniciuje standardní kompilátor komponenty Flex compc, ale načte jeho volby konfigurace ze souboru air-config.xml namísto souboru flex-config.xml. Konfigurační soubor kompilátoru komponenty Použitím lokálního konfiguračního souboru se vyhnete zadání (a možná nesprávného zadání) zdrojové cesty a názvů tříd na příkazovém řádku. Přidejte volbu -load-config do příkazového řádku acompc a načtěte tak lokální konfigurační soubor. Následující příklad ukazuje konfiguraci pro vývoj knihovny se dvěma třídami, ParticleManager a Particle, kde obě jsou součástí balíku: com.adobe.samples.particles. Soubory třídy jsou umístěny ve složce source/com/adobe/samples/particles. <flex-config> <compiler> <source-path> <path-element>source</path-element> </source-path> </compiler> <include-classes> <class>com.adobe.samples.particles.ParticleManager</class> <class>com.adobe.samples.particles.Particle</class> </include-classes> </flex-config> Pro kompilaci knihovny pomocí konfiguračního souboru pojmenovaného ParticleLib-config.xmlzadejte: acompc -load-config ParticleLib-config.xml -output ParticleLib.swc Pro kompletní spuštění stejného příkazu na příkazovém řádku zadejte: acompc -source-path source -include-classes com.adobe.samples.particles.Particle com.adobe.samples.particles.ParticleManager -output ParticleLib.swc (Zadejte celý příkaz na jeden řádek, nebo použijte znak pro pokračování řádku pro svou skořepinu příkazu.) příklady kompilátoru acompc Tyto příklady předpokládají, že používáte konfigurační soubor pojmenovaný myLib-config.xml. Kompilace komponenty nebo knihovny AIR: acompc -load-config myLib-config.xml -output lib/myLib.swc Poslední aktualizace 31.8.2016 156 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Kompilátory jazyka ActionScript Kompilace knihovny sdílené za běhu: acompc -load-config myLib-config.xml -directory -output lib (Všimněte si, že před spuštěním příkazu musí existovat složka lib a musí být prázdná.) Poslední aktualizace 31.8.2016 157 Kapitola 11: Program AIR Debug Launcher (ADL) Nástroj AIR Debug Launcher (ADL) použijte během vyvíjení pro spuštění aplikací vycházejících z SWF i HTML. Pomocí ADL můžete spustit aplikaci bez předchozího zabalení a instalace. ADL implicitně používá runtime obsažený v sadě SDK, což znamená, že pro použití ADL nemusíte runtime instalovat samostatně. ADL vytiskne příkazy trace a chyby v době běhu do standardního výstupu, ale nepodporuje body rozdělení nebo jiné funkce ladění. K ladění složitých problémů lze použít nástroj Flash Debugger (nebo integrované vývojové prostředí, např. Flash Builder). Poznámka: Pokud se příkazy trace() nezobrazí v konzole, zkontrolujte, zda jste v souboru mm.cfg neurčili vlastnost ErrorReportingEnable nebo TraceOutputFileEnable. Další informace o umístěních tohoto souboru specifických pro platformu naleznete v článku Úpravy souboru mm.cfg. Prostředí AIR podporuje přímé ladění, takže nepotřebujete ladicí verzi běhového modulu (kterou byste potřebovali v aplikaci Adobe® Flash® Player). Chcete-li provést ladění z příkazového řádku, použijte nástroje Flash Debugger a AIR Debug Launcher (ADL). Nástroj Flash Debugger se dodává v adresáři Flex SDK. Nativní verze, například fdb.exe pro Windows, se nacházejí v podadresáři bin. Java verze se nachází v dílčím adresáři lib. Aplikace AIR Debug Launcher, adl.exe, se nachází v adresáři bin instalace sady Flex SDK. (Není k dispozici samostatná verze Java.) Poznámka: Aplikaci AIR nelze spustit přímo pomocí souboru fdb, protože soubor fdb se ji pokouší spustit v aplikaci Flash Player. Místo toho nechejte aplikaci AIR, aby se připojila ke spuštěné relaci souboru fdb. Použití nástroje ADL Chcete-li spustit aplikaci pomocí programu ADL, postupujte následovně: adl application.xml Kde application.xml je soubor deskriptoru aplikace pro danou aplikaci. Kompletní syntaxe pro program ADL je: adl [-runtime runtime-directory] [-pubid publisher-id] [-nodebug] [-atlogin] [-profile profileName] [-screensize value] [-extdir extension-directory] application.xml [root-directory] [-- arguments] (Položky v závorkách [] jsou volitelné). Poslední aktualizace 31.8.2016 158 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Program AIR Debug Launcher (ADL) -runtimeruntime-directoryUrčuje adresář obsahující běhový modul, který má být použit. Jestliže není určeno, použije se adresář runtime ve stejné sadě SDK jako v případě programu ADL. Jestliže program ADL přesunete mimo složku sady SDK, určete adresář runtime. V systémech Windows a Linux určete adresář obsahující adresář prostředí Adobe AIR . V OS X Mac určete adresář obsahující Adobe AIR.framework. -pubid publisher-id Přiřadí určenou hodnotu jako ID vydavatele aplikace AIR pro toto spuštění. Určení přechodného ID vydavatele pro testování funkcí aplikace AIR, například komunikaci přes lokální připojení, které používá ID vydavatele. To vám umožní jedinečně identifikovat aplikaci. Od verze prostředí AIR 1.5.3 lze rovněž zadat ID vydavatele do souboru deskriptoru aplikace (a tento parametr by se neměl používat). Poznámka: Od verze prostředí AIR 1.5.3 již ID vydavatele není automaticky vypočítáno a přiřazeno k aplikaci AIR. ID vydavatele můžete zadat při vytváření aktualizace stávající aplikace AIR, ale nové aplikace nemusí a ani by neměly určovat ID vydavatele. -nodebug Vypne podporu ladění. Je-li použit, proces aplikace se nemůže připojit k nástroji ladění Flash a dialogy pro zpracovávání výjimek jsou potlačeny. (Příkazy trace se nicméně stále tisknou do okna konzoly.) Vypnete-li ladění, poběží vaše aplikace o trochu rychleji a také podrobněji emuluje režim spuštění nainstalované aplikace. -atlogin Simuluje spuštění aplikace při přihlášení. Tento příznak umožňuje testování logiky aplikace, která se spustí pouze při nastavení aplikace ke spuštění při přihlášení uživatele. Je-li -atlogin použit, vlastnost reason objektu InvokeEvent odeslaného do aplikace bude login místostandard (pokud již aplikace není spuštěna). -profile profileName Program ADL ladí aplikaci pomocí určeného profilu. Proměnná profileName může mít jednu z následujících hodnot: • Stolní počítač • Rozšířený profil pro stolní počítače • Mobilní zařízení Pokud deskriptor aplikace obsahuje element supportedProfiles, musí být profil zadaný pomocí příznaku -profile členem seznamu podporovaných profilů. Pokud se příznak -profile nepoužívá, bude jako aktivní profil použit první profil v deskriptoru aplikace. Pokud deskriptor aplikace neobsahuje element supportedProfiles a nepoužijete příznak -profile, bude použit profil desktop. Další informace naleznete v tématu „supportedProfiles“ na stránce 236 a „Profily zařízení“ na stránce 242. -screensize hodnota Simulovaná velikost obrazovky při spuštění aplikace v profilu mobileDevice na ploše. Zadejte velikost obrazovky buď jako předdefinovaný typ obrazovky, nebo zadejte rozměry v pixelech pro normální šířku a výšku při rozvržení na výšku plus šířku a výšku maximalizované obrazovky. Chcete-li zadat hodnotu podle typu, použijte jeden z následujících předdefinovaných typů obrazovky: Typ obrazovky Šířka x výška normální obrazovky Šířka x výška celé obrazovky 480 720 x 480 720 x 480 720 1 280 x 720 1 280 x 720 1 080 1 920 x 1 080 1 920 x 1 080 Droid 480 x 816 480 x 854 FWQVGA 240 x 432 240 x 432 FWVGA 480 x 854 480 x 854 HVGA 320 x 480 320 x 480 iPad 768 x 1 004 768 x 1 024 Poslední aktualizace 31.8.2016 159 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Program AIR Debug Launcher (ADL) Typ obrazovky Šířka x výška normální obrazovky Šířka x výška celé obrazovky iPadRetina 1 536 x 2 008 1 536 x 2 048 iPhone 320 x 460 320 x 480 iPhoneRetina 640 x 920 640 x 960 iPhone5Retina 640 x 1 096 640 x 1 136 iPhone6 750 x 1294 750 x 1334 iPhone6Plus 1242 x 2148 1242 x 2208 iPod 320 x 460 320 x 480 iPodRetina 640 x 920 640 x 960 iPod5Retina 640 x 1 096 640 x 1 136 NexusOne 480 x 762 480 x 800 QVGA 240 x 320 240 x 320 SamsungGalaxyS 480 x 762 480 x 800 SamsungGalaxyTab 600 x 986 600 x 1 024 WQVGA 240 x 400 240 x 400 WVGA 480 x 800 480 x 800 K určení rozměrů obrazovky v obrazových bodech přímo použijte následující formát: widthXheight:fullscreenWidthXfullscreenHeight Zadané rozměry v pixelech se vždy týkají rozvržení na výšku, tzn. že šířka je menší než výška. Například obrazovku zařízení NexusOne lze specifikovat pomocí parametru: -screensize 480x762:480x800 -extdir extension-directory Adresář, ve kterém má běhové prostředí hledat nativní rozšíření. Tento adresář obsahuje podadresáře pro každé nativní rozšíření, které bude aplikace používat. Každý z těchto podadresářů obsahuje rozbalený soubor ANE rozšíření. Například: Poslední aktualizace 31.8.2016 160 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Program AIR Debug Launcher (ADL) C:\extensionDirs\ extension1.ane\ META-INF\ ANE\ Android-ARM\ library.swf extension1.jar extension.xml signatures.xml catalog.xml library.swf mimetype extension2.ane\ META-INF\ ANE\ Android-ARM\ library.swf extension2.jar extension.xml signatures.xml catalog.xml library.swf mimetype Při použití parametru -extdir mějte na paměti následující skutečnosti: • Příkaz programu ADL vyžaduje, aby každý ze zadaných adresářů měl příponu názvu souboru ANE. Nicméně část názvu souboru před příponu ANE může být jakýkoli platný název souboru. Nemusí se shodovat s hodnotou elementu extensionID souboru popisovače aplikace. • Parametr -extdir můžete určit více než jednou. • Použití parametru -extdir v nástroji ADT a v nástroji ADL se liší. V nástroji ADT určuje parametr adresář, který obsahuje soubory ANE. • Můžete také použít proměnnou prostředí AIR_EXTENSION_PATH k určení adresářů rozšíření. Viz téma „Proměnné prostředí nástroje ADT“ na stránce 185. application.xml Soubor deskriptoru aplikace. Další informace naleznete v tématu „Soubory deskriptorů aplikací AIR“ na stránce 202. Deskriptor aplikace je jediný parametr vyžadovaný programem ADL a ve většině případů je jediným potřebným parametrem. root-directory Určuje kořenový adresář aplikace, které má být spuštěna. Není-li určeno, použije se adresář obsahující soubor deskriptoru aplikace. -- argumentsJakékoliv řetězce znaků, které se zobrazí za pomlčkami „--“, jsou předány aplikaci jako argumenty příkazového řádku. Poznámka: Když spustíte aplikaci AIR, která již běží, nespustí se nová instance dané aplikace. Namísto toho se k běžící instanci odešle událost invoke. Příklady ADL Spuštění aplikace v aktuálním adresáři: adl myApp-app.xml Poslední aktualizace 31.8.2016 161 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Program AIR Debug Launcher (ADL) Spuštění aplikace v podadresáři aktuálního adresáře: adl source/myApp-app.xml release Spusťte aplikaci a předejte dva argumenty příkazového řádku, „tick“ a „tock“: adl myApp-app.xml -- tick tock Spuštění aplikace pomocí specifického runtime: adl -runtime /AIRSDK/runtime myApp-app.xml Spuštění aplikace bez podpory ladění: adl -nodebug myApp-app.xml Spusťte aplikaci v profilu mobilního zařízení a simulujte velikost obrazovky zařízení Nexus One: adl -profile mobileDevice -screensize NexusOne myMobileApp-app.xml Spusťte aplikaci pomocí programu Apache Ant pro spuštění aplikace (cesty v příkladu jsou určeny pro systém Windows): <property <property <property <property name="SDK_HOME" value="C:/AIRSDK"/> name="ADL" value="${SDK_HOME}/bin/adl.exe"/> name="APP_ROOT" value="c:/dev/MyApp/bin-debug"/> name="APP_DESCRIPTOR" value="${APP_ROOT}/myApp-app.xml"/> <target name="test"> <exec executable="${ADL}"> <arg value="${APP_DESCRIPTOR}"/> <arg value="${APP_ROOT}"/> </exec> </target> Kódy ukončení a chyb nástroje ADL Následující tabulka popisuje kódy ukončení vytištěné ADL: Kódy ukončení Popis 0 Úspěšné spuštění. ADL se ukončí po ukončení aplikace AIR. 1 Úspěšná iniciace již běžící aplikace AIR. ADL se okamžitě ukončí. 2 Chyba použití. Argumenty dodané ADL nejsou správné. 3 Runtime se nepodařilo nalézt. 4 Runtime se nepodařilo spustit. K tomu často dojde z toho důvodu, že verze určená v aplikaci neodpovídá verzi runtime. 5 Došlo k neznámé chybě. 6 Soubor deskriptoru aplikace se nepodařilo nalézt. 7 Obsah deskriptoru aplikace není platný. Tato chyba obvykle určuje, že XML není dobře vytvořen. 8 Hlavní obsahový soubor aplikace (určený v elementu <content> souboru deskriptoru aplikace) se nepodařilo nalézt. Poslední aktualizace 31.8.2016 162 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Program AIR Debug Launcher (ADL) Kódy ukončení Popis 9 Hlavní obsahový soubor aplikace není platným SWF nebo HTML souborem. 10 Aplikace nepodporuje profil určený v možnosti -profile. 11 Argument - screensize není v aktuálním profilu podporován. Poslední aktualizace 31.8.2016 163 Kapitola 12: AIR Developer Tool (ADT) AIR Developer Tool (ADT) je víceúčelový nástroj příkazového řádku pro vývoj aplikací AIR. Pomocí nástroje ADT lze provádět následující úkoly: • Zabalit aplikaci AIR jako instalační soubor .air • Zabalit aplikaci AIR jako nativní instalační balíček – například jako soubor .exe instalační služby v systému Windows, soubor .ipa v systému iOS nebo soubor .apk na platformě Android • Zabalení nativního rozšíření jako soubor AIRNative Extension (ANE) • Podepsat aplikaci AIR digitálním certifikátem • Změnit (migrovat) digitální podpis použitý pro aktualizace aplikace • Určit zařízení připojená k počítači • Vytvořit podpisový certifikát s automatickým podpisem digitálního kódu • Vzdáleně nainstalovat, spustit a odinstalovat aplikaci v mobilním zařízení • Vzdáleně nainstalovat a odinstalovat běhový modul AIR v mobilním zařízení ADT je program v jazyce Java zahrnutý v sadě AIR SDK. K jeho použití je nutná verze jazyka Java 1.5 nebo vyšší. Sada SDK obsahuje soubor skriptu pro vyvolání nástroje ADT. Chcete-li tento skript použít, musí být program Java zahrnut v proměnné prostředí path. Pokud je adresář AIR SDK bin rovněž uveden v proměnné prostředí path, můžete zadáním příkazu adt s příslušnými argumenty na příkazovém řádku vyvolat nástroj ADT. (Pokud nevíte, jak nastavit proměnnou prostředí path, naleznete informace v dokumentaci k operačnímu systému. Za účelem další podpory jsou postupy pro nastavení cesty ve většině počítačových systémů popsány v tématu „Proměnné prostředí pro cestu“ na stránce 301.) Aby bylo možné používat nástroj ADT, jsou nutné minimálně 2 GB paměti počítače. Pokud máte méně paměti, může dojít k nedostatku paměti pro nástroj ADT, zejména při balení aplikací pro iOS. Za předpokladu, že program Java i adresáře bin AIR SDK jsou oba zahrnuty v proměnné path, můžete spustit nástroj ADT pomocí následující základní syntaxe: adt -command options Poznámka: Většina integrovaných vývojových prostředí, včetně aplikací Adobe Flash Builder a Adobe Flash Professional, může balit a podepisovat aplikace AIR automaticky. Obvykle není třeba pro tyto běžné úlohy používat nástroj ADT, když již používáte toto vývojové prostředí. Nicméně může být nutné použít nástroj ADT jako nástroj příkazového řádku pro funkce, jež integrované vývojové prostředí nepodporuje. Nástroj ADT navíc můžete použít jako nástroj příkazového řádku jako součást procesu automatického sestavení. Příkazy nástroje ADT První argument předaný nástroji ADT určuje jeden z následujících příkazů. • -package – Zabalí aplikaci AIR nebo balíček ANE (AIR Native Extension). • -prepare – Zabalí aplikaci AIR jako přechodný soubor (AIRI), ale nepodepíše jej. Soubory AIRI nelze nainstalovat. Poslední aktualizace 31.8.2016 164 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) • -sign – Podepíše balíček AIRI vytvořené pomocí příkazu -prepare. Příkazy -prepare a - sign umožňují provést zabalení a podepsání v různou dobu. Příkaz -sign lze použít také k podepsání nebo opakovanému podepsání balíčku ANR. • -migrate – Použije podpis migrace u podepsaného balíčku AIR, čímž umožní použít nový nebo obnovený certifikát podpisu kódu. • -certificate – Vytvoří digitální certifikát podpisu kódu podepsaný sám sebou. • -checkstore – Ověří, zda lze přistupovat k digitálnímu certifikátu v úložišti klíčů. • -installApp – Nainstaluje aplikaci AIR do zařízení nebo do emulátoru zařízení. • -launchApp – Spustí aplikaci AIR v zařízení nebo v emulátoru zařízení. • -appVersion – Zobrazí verzi aktuálně nainstalované aplikace AIR v zařízení nebo v emulátoru zařízení. • -uninstallApp – Odinstaluje aplikaci AIR ze zařízení nebo z emulátoru zařízení. • -installRuntime – Nainstaluje běhový modul AIR do zařízení nebo do emulátoru zařízení. • -runtimeVersion – Zobrazí verzi běhového modulu AIR aktuálně nainstalovaného v zařízení nebo v emulátoru zařízení. • -uninstallRuntime – Odinstaluje aktuálně nainstalovaný běhovÝ modul AIR ze zařízení nebo z emulátoru zařízení. • -version – Zobrazí číslo verze nástroje ADT. • -devices – Zobrazí informace o zařízení pro připojená mobilní zařízení nebo emulátory. • -help – Zobrazí seznam příkazů a možností. Mnoho příkazů nástroje ADT sdílejí související sady příznaků možností a parametrů. Tyto sady možností jsou podrobně popsány samostatně: • „Možnosti podpisu kódu nástroje ADT“ na stránce 177 • „Možnosti souboru a cesty“ na stránce 179 • „Možnosti připojení debuggeru“ na stránce 180 • „Možnosti nativního rozšíření“ na stránce 181 Příkaz package nástroje ADT Příkaz -package je nutné spouštět z hlavního adresáře aplikace. Tento příkaz používá následující syntaxi: Vytvoření balíčku prostředí AIR z dílčích souborů aplikace: adt -package AIR_SIGNING_OPTIONS -target packageType -sampler -hideAneLibSymbols NATIVE_SIGNING_OPTIONS output app_descriptor FILE_OPTIONS Vytvoření nativního balíčku z dílčích souborů aplikace: Poslední aktualizace 31.8.2016 165 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) adt -package AIR_SIGNING_OPTIONS -target packageType DEBUGGER_CONNECTION_OPTIONS -airDownloadURL URL NATIVE_SIGNING_OPTIONS output app_descriptor -platformsdk path FILE_OPTIONS Vytvoření nativního balíčku obsahujícího nativní rozšíření z dílčích souborů aplikace: adt -package AIR_SIGNING_OPTIONS -migrate MIGRATION_SIGNING_OPTIONS -target packageType DEBUGGER_CONNECTION_OPTIONS -airDownloadURL URL NATIVE_SIGNING_OPTIONS output app_descriptor -platformsdk path FILE_OPTIONS Vytvoření nativního balíčku ze souboru AIR nebo AIRI: adt -package -target packageType NATIVE_SIGNING_OPTIONS output input_package Vytvoření balíčku nativního rozšíření ze souborů nativního rozšíření komponenty: adt -package AIR_SIGNING_OPTIONS -target ane output ANE_OPTIONS Poznámka: Soubor ANE není nutné podepisovat, proto jsou parametry AIR_SIGNING_OPTIONS v tomto příkladu volitelné. AIR_SIGNING_OPTIONS Možnosti podpisu AIR identifikují certifikát použitý k podepsání instalačního souboru AIR. Možnosti podpisu jsou kompletně popsány v tématu „Možnosti podpisu kódu nástroje ADT“ na stránce 177. -migrate Tento příznak určuje, že je aplikace podepsána nejen certifikátem určeným v parametrech AIR_SIGNING_OPTIONS, ale i certifikátem přenosu. Tento příznak je platný, pouze pokud balíte aplikaci pro stolní počítače jako nativní instalátor, přičemž tato aplikace využívá nativní rozšíření. V ostatních případech dojde k chybě. Možnosti podpisu pro certifikát přenosu jsou určeny jako parametry MIGRATION_SIGNING_OPTIONS. Tyto možnosti podpisu jsou podrobně popsány v části „Možnosti podpisu kódu nástroje ADT“ na stránce 177. Pomocí příznaku -migrate lze vytvořit aktualizaci aplikace nativního instalátoru pro stolní počítače, která používá nativní rozšíření, a pro tuto aplikaci změnit podpisový certifikát kódu, například když původnímu certifikátu vyprší platnost. Další informace naleznete v části „Podepisování aktualizované verze aplikace AIR“ na stránce 197. Příznak -migrate příkazu -package je k dispozici v prostředí AIR 3.6 a novějších. Poslední aktualizace 31.8.2016 166 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) -target Typ balíčku, který chcete vytvořit. Podporované typy balíčků jsou: • air – balíček aplikace AIR. air je výchozí hodnota a příznak -target nemusí být při vytváření souborů AIR nebo AIRI zadán. • airn – balíček nativní aplikace pro zařízení v profilu rozšířené televize. • ane – balíček nativního rozšíření AIR • Cíle balíčku pro platformu Android: • apk – balíček pro platformu Android Balíček vytvořený s tímto cílem lze nainstalovat pouze do zařízení se systémem Android, nikoli do emulátoru. • apk-captive-runtime – balíček pro systém Android, který obsahuje aplikaci i vázanou verzi běhového prostředí AIR. Balíček vytvořený s tímto cílem lze nainstalovat pouze do zařízení se systémem Android, nikoli do emulátoru. • apk-debug – balíček pro platformu Android se zvláštními informacemi o ladění. (Soubory SWF v aplikaci musí být také zkompilovány s podporou ladění.) • apk-emulator – balíček pro platformu Android pro použití v emulátoru bez podpory ladění. (Cíl apk-emulator použijte, chcete-li povolit ladění v emulátorech i v zařízeních.) • apk-profile – balíček pro platformu Android, který podporuje výkon aplikací a profilování paměti. • Cíle balíčku pro systém iOS: • ipa-ad-hoc – balíček iOS pro distribuci ad hoc. • ipa-app-store – balíček iOS pro distribuci úložiště aplikací Apple. • ipa-debug – balíček iOS se zvláštními informacemi o ladění. (Soubory SWF v aplikaci musí být také zkompilovány s podporou ladění.) • ipa-test – balíček iOS kompilovaný bez informací o optimalizaci nebo ladění. • ipa-debug-interpreter – funkční ekvivalent ladícího balíčku, ale s rychlejší kompilací. Bytový kód jazyka ActionScript je však interpretován a není převáděn do strojového kódu. Spuštění kódu v balíčku interpreteru je proto pomalejší. • ipa-debug-interpreter-simulator – funkce ekvivalentní k funkci ipa-debug-interpreter, ale zabalená pro simulátor iOS. Pouze systém Macintosh. Pokud použijete tuto možnost, musíte také zahrnout volbu platformsdk, která určuje cestu k simulátoru iOS sady SDK. • ipa-test-interpreter – funkční ekvivalent testovacího balíčku, ale s rychlejší kompilací. Bytový kód jazyka ActionScript je však interpretován a není převáděn do strojového kódu. Spuštění kódu v balíčku interpreteru je proto pomalejší. • ipa-test-interpreter-simulator – funkce ekvivalentní k funkci ipa-test-interpreter, ale zabalená pro simulátor iOS. Pouze systém Macintosh. Pokud použijete tuto možnost, musíte také zahrnout volbu -platformsdk, která určuje cestu k simulátoru iOS sady SDK. • native – nativní instalační program pro stolní počítač. Typ souboru, které bude vytvořen, je nativní instalační formát operačního systému, ve kterém je příkaz spuštěn: • EXE – Windows • DMG – Mac • DEB – Ubuntu Linux (AIR 2.6 nebo starší) • RPM – Fedora nebo OpenSuse Linux (AIR 2.6 nebo starší) Další informace naleznete v části „Sbalení nativního instalátoru pro stolní počítač“ na stránce 55. Poslední aktualizace 31.8.2016 167 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) -sampler (Pouze systém iOS, AIR 3.4 a vyšší) Zapíná v aplikacích systému iOS sampler jazyka ActionScript založený na telemetrii. Při použití tohoto příznaku lze aplikace profilovat nástrojem Adobe Scout. Přestože nástroj Scout může profilovat libovolný obsah platformy Flash, zapnutím podrobné telemetrie získáte lepší přehled o časování funkcí jazyka ActionScript, objektu DisplayList, vykreslování objektu Stage3D a podobně. Používáním tohoto příznaku se mírně snižuje výkon, proto ho nepoužívejte u produkčních aplikací. -hideAneLibSymbols (pouze systém iOS, AIR 3.4 a vyšší) vývojáři aplikací mohou používat více nativních rozšíření z různých zdrojů, a pokud soubory ANE sdílejí společný název symbolu, ADT vygeneruje chybu „duplicitní symbol v souboru objektu“. V některých případech se tato chyba může projevit jako selhání za běhu. Pomocí volby hideAneLibSymbols můžete určit, zda se mají symboly knihovny souboru ANE změnit na viditelné pouze pro zdroje této knihovny (yes), nebo mají být viditelné globálně (no): • yes – skryje symboly souboru ANE, čímž vyřeší případné problémy s neúmyslnými konflikty symbolů. • no – (výchozí) neskryje symboly souboru ANE. Toto je chování před uvedením verze AIR 3.4. DEBUGGER_CONNECTION_OPTIONS Možnosti připojení debuggeru určují, zda se má ladicí balíček pokusit připojit ke vzdálenému debuggeru, který je spuštěn v jiném počítači, nebo má naslouchat připojení ze vzdáleného debuggeru. Tato sada možností je podporována pouze pro ladicí balíčky pro mobilní zařízení (cíle apk-debug a ipadebug). Tyto možnosti jsou popsány v tématu „Možnosti připojení debuggeru“ na stránce 180. - airDownloadURL Určuje alternativní adresu URL pro stažení a instalaci běhového prostředí AIR do zařízení Android. Pokud není zadána, přesměruje aplikace AIR uživatele na běhové prostředí AIR na webu Android Market, pokud není běhové prostředí již nainstalováno. Pokud je aplikace distribuována prostřednictvím alternativního tržiště (jiného než web Android Market, který je spravován společností Google), bude pravděpodobně nutné zadat adresu URL pro stažení běhového prostředí AIR z daného tržiště. Některá alternativní tržiště neumožňují, aby aplikace vyžadovaly stažení z webu mimo dané tržiště. Tato možnost je podporována pouze u balíčků pro zařízení Android. NATIVE_SIGNING_OPTIONS Nativní možnosti podpisů identifikují certifikát použitý k podepsání nativního souboru balíčku. Tyto možnosti podpisů slouží k použití podpisu používaného nativním operačním systémem, nikoli běhovým modulem AIR. Možnosti jsou jinak identické s možnostmi AIR_SIGNING_OPTIONS a jsou podrobně popsány v tématu „Možnosti podpisu kódu nástroje ADT“ na stránce 177. Nativní podpisy jsou podporovány v systémech Windows a Android. V systému Windows je třeba zadat možnosti podpisů AIR i možnosti nativních podpisů. V systému Android lze zadat pouze možnosti nativních podpisů. V mnoha případech můžete použít stejný certifikát podpisu kódu k přidání podpisu AIR i nativního podpisu. Neplatí to však ve všech případech. Například zásady společnosti Google pro aplikace odeslané so služby Android Market vyžadují, aby všechny aplikace byly podepsány certifikátem, který je platný alespoň do roku 2033. To znamená, že certifikát vydaný dobře známou certifikační autoritou, který se doporučuje při použití podpisu AIR, by neměl být použit k podepsání aplikace Android. (Žádné certifikační autority nevydávají certifikát podpisu kódu s tak dlouhou dobou platnosti.) output Název souboru balíčku, který má být vytvořen. Určení přípony souboru je volitelné. Pokud není zadána, bude přidána příslušná přípona pro hodnotu -target a aktuální operační systém. app_descriptorC esta k souboru deskriptoru aplikace. Cestu lze určit relativně k aktuálnímu adresáři nebo jako absolutní cestu. (Soubor deskriptoru aplikace je v souboru AIR přejmenován na application.xml.) -platformsdk Cesta k sadě SDK platformy pro cílové zařízení: • Android – Sada AIR 2.6+ SDK obsahuje nástroje ze sady Android SDK potřebné k implementaci příslušných příkazů ADT. Tuto hodnotu nastavte pouze v případě, že chcete použít jinou verzi sady Android SDK. Cestu k sadě SDK platformy také není nutné zadávat na příkazovém řádku, pokud je již nastavena proměnná prostředí AIR_ANDROID_SDK_HOME. (Pokud jsou nastaveny obě, pak bude použita cesta na příkazovém řádku.) Poslední aktualizace 31.8.2016 168 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) • iOS – Sada AIR SDK se dodává s kaptivní sadou SDK pro systém iOS. Možnost -platformsdk umožňuje balení aplikací s externí sadou SDK, takže nejste omezení na používání kaptivní verze iOS SDK. Pokud jste například vytvořili rozšíření s nejnovější sadou iOS SDK, můžete tuto sadu SDK určit při balení aplikace. Pokud navíc sadu ADT používáte se simulátorem iOS, musíte vždy zahrnout možnost -platformsdk určující cestu k sadě SDK simulátoru iOS. -archVývojáři aplikací mohou pomocí tohoto argumentu vytvořit aplikaci APK pro platformy x86; argument může mít tyto hodnoty: • armv7 - Sada ADT zabalí aplikaci APK pro platformu Android armv7. • x86 - Sada ADT zabalí aplikaci APK pro platformu Android x86. Pokud není zadána žádná hodnota, je výchozí hodnotou armv7. FILE_OPTIONS Určuje soubory aplikace, které mají být zahrnuty do balíčku. Možnosti souboru jsou kompletně popsány v tématu „Možnosti souboru a cesty“ na stránce 179. Nezadávejte možnosti souboru při vytváření nativního balíčku ze souboru AIR nebo AIRI. input_airi Zadejte při vytváření nativního balíčku ze souboru AIRI. AIR_SIGNING_OPTIONS jsou požadovány, pokud je jako cíl zadána hodnota air (nebo pokud není zadán žádný cíl). input_air Zadejte při vytváření nativního balíčku ze souboru AIR. Nezadávejte AIR_SIGNING_OPTIONS. ANE _ OPTIONS Identifikuje možnosti a soubory k vytváření nativního balíčku rozšíření. Možnosti balíčku rozšíření jsou kompletně popsány v tématu „Možnosti nativního rozšíření“ na stránce 181. Příklady příkazu -package programu ADT Zabalení konkrétních souborů aplikace do aktuálního adresáře pro aplikaci AIR založenou na formátu SWF: adt –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.swf components.swc Zabalení konkrétních souborů aplikace do aktuálního adresáře pro aplikaci AIR založenou na jazyce HTML: adt –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.html AIRAliases.js image.gif Všechny soubory a podadresáře balíku v aktuálním pracovním adresáři: adt –package -storetype pkcs12 -keystore ../cert.p12 myApp.air myApp.xml . Poznámka: Soubor úložiště klíčů obsahuje osobní klíč použití k podepsání vaší aplikace. Certifikát podpisu nikdy nevkládejte do balíku AIR! Jestliže v příkazu programu ADT použijete zástupné znaky, uložte soubor úložiště klíčů do odlišného umístění, aby nebyl zahrnut do balíku. V tomto příkladu je soubor úložiště klíčů, cert.p12, umístěn do nadřazeného adresáře. Zabalení pouze hlavních souborů a obrazů podadresáře: adt –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.swf images Zabalení aplikace vycházející z HTML a všech souborů v podadresářích HTML, skriptů a obrazů: adt –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml index.html AIRALiases.js html scripts images Zabalení souboru application.xml a hlavního souboru SWF umístěného v pracovním adresáři(release/bin): adt –package -storetype pkcs12 -keystore cert.p12 myApp.air release/bin/myApp.xml –C release/bin myApp.swf Zabalení datových zdrojů z více než jednoho místa v systému vývoje souborů. V tomto příkladu jsou datové zdroje aplikace před zabalením umístěny v následujících složkách: Poslední aktualizace 31.8.2016 169 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) /devRoot /myApp /release /bin myApp-app.xml myApp.swf or myApp.html /artwork /myApp /images image-1.png ... image-n.png /libraries /release /libs lib-1.swf lib-2.swf lib-a.js AIRAliases.js Spuštění následujícího příkazu ADT z adresáře /devRoot/myApp: adt –package -storetype pkcs12 -keystore cert.p12 myApp.air release/bin/myApp-app.xml –C release/bin myApp.swf (or myApp.html) –C ../artwork/myApp images –C ../libraries/release libs Má za následek následující strukturu balíku: /myAppRoot /META-INF /AIR application.xml hash myApp.swf or myApp.html mimetype /images image-1.png ... image-n.png /libs lib-1.swf lib-2.swf lib-a.js AIRAliases.js Spuštění ADT jako programu jazyka Java pro jednoduchou aplikaci založenou na formátu SWF (bez nastavení cest pro třídy): java –jar {AIRSDK}/lib/ADT.jar –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.swf Spuštění ADT jako programu jazyka Java pro jednoduchou aplikaci založenou na jazyce HTML (bez nastavení cest pro třídy): java –jar {AIRSDK}/lib/ADT.jar –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.html AIRAliases.js Spuštění ADT jako programu jazyka Java (cesta třídy Java je nastavena tak, aby obsahovala balík ADT.jar): Poslední aktualizace 31.8.2016 170 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) java -com.adobe.air.ADT –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.swf Spusťte ADT jako úlohu jazyka Java v nástroji Apache Ant (přestože je obvykle nejvhodnější použít příkaz ADT přímo ve skriptech nástroje Ant). Cesty uvedené v příkladu jsou určeny pro systém Windows: <property name="SDK_HOME" value="C:/AIRSDK"/> <property name="ADT.JAR" value="${SDK_HOME}/lib/adt.jar"/> target name="package"> <java jar="${ADT.JAR}" fork="true" failonerror="true"> <arg value="-package"/> <arg value="-storetype"/> <arg value="pkcs12"/> <arg value="-keystore"/> <arg value="../../ExampleCert.p12"/> <arg value="myApp.air"/> <arg value="myApp-app.xml"/> <arg value="myApp.swf"/> <arg value="icons/*.png"/> </java> </target> Poznámka: V některých počítačových systémech mohou být chybně interpretovány dvoubajtové znaky v souboru systémových cest. V takovém případě zkuste nastavit běhové prostředí Java použité ke spuštění nástroje ADT na znakovou sadu UTF-8. Ve výchozím nastavení to provedete ve skriptu použitém ke spuštění nástroje ADT v systémech Mac a Linux. V souboru adt.bat systému Windows, nebo pokud spouštíte ADT přímo prostřednictvím jazyka Java, určete na příkazovém řádku jazyka Java volbu -Dfile.encoding=UTF-8. Příkaz prepare nástroje ADT Příkaz -prepare vytvoří nepodepsaný balíček AIRI. Balíček AIRI nelze použít samostatně. Použijte příkaz -sign k převodu souboru AIRI na podepsaný balíček AIR nebo použijte příkaz package k převodu souboru AIRI na nativní balíček. Příkaz -prepare používá následující syntaxi: adt -prepare output app_descriptor FILE_OPTIONS output Název souboru AIRI, který je vytvořen. app_descriptorC esta k souboru deskriptoru aplikace. Cestu lze určit relativně k aktuálnímu adresáři nebo jako absolutní cestu. (Soubor deskriptoru aplikace je v souboru AIR přejmenován na application.xml.) FILE_OPTIONS Určuje soubory aplikace, které mají být zahrnuty do balíčku. Možnosti souboru jsou plně popsány v tématu „Možnosti souboru a cesty“ na stránce 179. Příkaz sign nástroje ADT Příkaz -sign podepíše soubory AIRI a ANE. Příkaz -sign používá následující syntaxi: adt -sign AIR_SIGNING_OPTIONS input output AIR_SIGNING_OPTIONS Možnosti podpisu aplikace AIR identifikují certifikát použitý k podepsání souboru balíčku. Možnosti podpisu jsou kompletně popsány v tématu „Možnosti podpisu kódu nástroje ADT“ na stránce 177. input Název souboru AIRI nebo ANE, který má být podepsán. Poslední aktualizace 31.8.2016 171 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) output Název podepsaného balíčku, který má být vytvořen. Pokud je soubor ANE již podepsán, bude původní podpis zrušen. (Soubory AIR nelze podepsat znovu – chcete-li pro aktualizaci aplikace použít nový podpis, použijte příkaz -migrate.) Příkaz migrate nástroje ADT Příkaz -migrate použije podpis migrace u souboru AIR. Podpis migrace musí být použit při obnovení nebo změně digitálního certifikátu, či pokud je nutné aktualizovat aplikace podepsané starým certifikátem. Další informace o balení aplikací AIR pomocí podpisu přenosu naleznete v části „Podepisování aktualizované verze aplikace AIR“ na stránce 197. Poznámka: Certifikát přenosu je nutné použít do 365 dnů od vypršení platnosti. Po uplynutí této lhůty již aktualizace aplikace nemohou být podepsány podpisem migrace. Uživatelé mohou nejprve aktualizovat na verzi aplikace, která byla podepsána podpisem migrace, a pak nainstalovat nejnovější aktualizaci, nebo mohou původní aplikaci odinstalovat a nainstalovat nový balíček AIR. Chcete-li použít podpis migrace, nejprve podepište aplikaci AIR pomocí nového či obnoveného certifikátu (použijte příkaz -package nebo -sign) a pak použijte podpis migrace pomocí původního certifikátu a příkazu -migrate. Příkaz -migrate používá následující syntaxi: adt -migrate AIR_SIGNING_OPTIONS input output AIR_SIGNING_OPTIONS Možnosti podpisu aplikace AIR identifikující původní certifikát, který byl použit k podepsání stávajících verzí aplikace AIR. Možnosti podpisu jsou kompletně popsány v tématu „Možnosti podpisu kódu nástroje ADT“ na stránce 177. input Soubor AIR již podepsaný pomocí NOVÉHO certifikátu aplikace. output Název konečného balíčku s podpisy z nového i starého certifikátu. Názvy souborů použité pro vstupní a výstupní soubory AIR musí být odlišné. Poznámka: Příkaz migrate nástroje ADT nelze použít u aplikací AIR pro stolní počítače, které zahrnují nativní rozšíření, protože tyto aplikace jsou zabaleny jako nativní instalátory a nikoli jako soubory s příponou AIR. Chcete-li změnit certifikáty pro aplikaci AIR pro stolní počítače, která zahrnuje nativní rozšíření, zabalte aplikaci pomocí „Příkaz package nástroje ADT“ na stránce 164 s příznakem -migrate. Příkaz checkstore nástroje ADT Příkaz -checkstore umožňuje zkontrolovat platnost úložiště klíčů. Příkaz používá následující syntaxi: adt -checkstore SIGNING_OPTIONS SIGNING_OPTIONS Možnosti podpisu identifikující úložiště klíčů, které má být ověřeno. Možnosti podpisu jsou kompletně popsány v tématu „Možnosti podpisu kódu nástroje ADT“ na stránce 177. Příkaz certificate nástroje ADT Příkaz -certificate umožňuje vytvořit digitální certifikát podpisu kódu podepsaný sám sebou. Příkaz používá následující syntaxi: adt -certificate -cn name -ou orgUnit -o orgName -c country -validityPeriod years key-type output password -cn Řetězec přiřazený jako běžný název nového certifikátu. Poslední aktualizace 31.8.2016 172 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) -ou Řetězec přiřazený jako organizační jednotka vydávající certifikát. (Volitelné.) -o Řetězec přiřazený jako organizace vydávající certifikát. (Volitelné.) -c Kód země ISO-3166 obsahující dvě písmena. Certifikát není vygenerován, je-li zadán neplatný kód. (Volitelné.) -validityPeriod Počet let, během kterých bude certifikát platný. Pokud není tato hodnota určena, je přiřazena doba platnosti pět let. (Volitelné.) key_type Typ klíče, který se použije pro certifikát, je 2048-RSA. output Cesta a název souboru pro soubor certifikátu, který má být vygenerován. password Heslo pro přístup k novému certifikátu. Heslo je vyžadováno při podepisování souborů AIR tímto certifikátem. Příkaz installApp nástroje ADT Příkaz - installApp nainstaluje aplikaci do zařízení nebo emulátoru. Před opětovnou instalací pomocí tohoto příkazu je nutné odinstalovat existující aplikace. Příkaz používá následující syntaxi: adt -installApp -platform platformName -platformsdk path-to-sdk -device deviceID -package fileName -platform Název platformy zařízení. Určete systém ios nebo android. -platformsdk Cesta k sadě SDK platformy pro cílové zařízení (volitelné): • Android – Sada AIR 2.6+ SDK obsahuje nástroje ze sady Android SDK potřebné k implementaci příslušných příkazů ADT. Tuto hodnotu nastavte pouze v případě, že chcete použít jinou verzi sady Android SDK. Cestu k sadě SDK platformy také není nutné zadávat na příkazovém řádku, pokud je již nastavena proměnná prostředí AIR_ANDROID_SDK_HOME. (Pokud jsou nastaveny obě, pak bude použita cesta na příkazovém řádku.) • iOS – Sada AIR SDK se dodává s kaptivní sadou SDK pro systém iOS. Možnost -platformsdk umožňuje balení aplikací s externí sadou SDK, takže nejste omezení na používání kaptivní verze iOS SDK. Pokud jste například vytvořili rozšíření s nejnovější sadou iOS SDK, můžete tuto sadu SDK určit při balení aplikace. Pokud navíc sadu ADT používáte se Simulátorem iOS, musíte vždy zahrnout možnost -platformsdk určující cestu k sadě SDK simulátoru iOS. -device Určete vlastnost ios_simulator, sériové číslo (Android) nebo parametr handle (iOS) připojeného zařízení. V systému iOS je tento parametr vyžadován, v systému Android je tento parametr třeba určovat pouze tehdy, když je k počítači připojeno a spuštěno více než jedno zařízení nebo emulátor se systémem Android. Pokud není určené zařízení připojeno, vrací nástroj ADT kód ukončení 14: Chyba zařízení (Android) nebo Určeno neplatné zařízení (iOS). Pokud je připojeno více zařízení nebo emulátorů a zařízení není zadáno, vrátí nástroj ADT kód ukončení 2: Chyba použití. Poznámka: Instalace souboru IPA přímo do zařízení se systémem iOS je možná v prostředí AIR 3.4 a vyšších a vyžaduje přehrávač iTunes 10.5.0 nebo vyšší. Za účelem určení parametru handle nebo sériového čísla připojených zařízení použijte příkaz adt -devices (k dispozici v prostředí AIR 3.4 a novějším). Upozorňujeme, že v systému iOS je třeba použít parametr handle, a nikoli identifikátor UUID zařízení. Další informace naleznete v tématu „Příkaz devices nástroje ADT“ na stránce 176. U platformy Android můžete kromě toho seznam sériových čísel připojených zařízení a spuštěných emulátorů zobrazit pomocí nástroje Android ADB: adb devices Poslední aktualizace 31.8.2016 173 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) -package Název souboru pro instalovaný balíček. V systému iOS se musí jednat o soubor IPA. U platformy Android to musí být balíček APK. Pokud je zadaný balíček již nainstalován, vrátí nástroj ADT kód chyby 14: Chyba zařízení. Příkaz appVersion nástroje ADT Příkaz - appVersion zobrazí nainstalovanou verzi aplikace v zařízení nebo emulátoru. Příkaz používá následující syntaxi: adt -appVersion -platform platformName -platformsdk path_to_sdk -device deviceID -appid applicationID -platform Název platformy zařízení. Určete systém ios nebo android. -platformsdk Cesta k sadě SDK platformy pro cílové zařízení: • Android – Sada AIR 2.6+ SDK obsahuje nástroje ze sady Android SDK potřebné k implementaci příslušných příkazů ADT. Tuto hodnotu nastavte pouze v případě, že chcete použít jinou verzi sady Android SDK. Cestu k sadě SDK platformy také není nutné zadávat na příkazovém řádku, pokud je již nastavena proměnná prostředí AIR_ANDROID_SDK_HOME. (Pokud jsou nastaveny obě, pak bude použita cesta na příkazovém řádku.) • iOS – Sada AIR SDK se dodává s kaptivní sadou SDK pro systém iOS. Možnost -platformsdk umožňuje balení aplikací s externí sadou SDK, takže nejste omezení na používání kaptivní verze iOS SDK. Pokud jste například vytvořili rozšíření s nejnovější sadou iOS SDK, můžete tuto sadu SDK určit při balení aplikace. Pokud navíc sadu ADT používáte se Simulátorem iOS, musíte vždy zahrnout možnost -platformsdk určující cestu k sadě SDK simulátoru iOS. -device Určete ios_simulator nebo sériové číslo zařízení. Zařízení je nutné určit pouze v případě, že je k počítači připojeno a spuštěno více zařízení nebo emulátorů Android. Pokud zadané zařízení není připojeno, vrátí nástroj ADT kód ukončení 14: Chyba zařízení. Pokud je připojeno více zařízení nebo emulátorů a zařízení není zadáno, vrátí nástroj ADT kód ukončení 2: Chyba použití. U platformy Android zobrazte seznam sériových čísel připojených zařízení a spuštěných emulátorů pomocí nástroje Android ADB: adb devices -appid ID aplikace AIR nainstalované aplikace. Pokud v zařízení není nainstalována žádná aplikace se zadaným ID, vrátí nástroj ADT vrátí kód ukončení 14: Chyba zařízení. Příkaz launchApp nástroje ADT Příkaz - launchApp spustí nainstalované aplikace v zařízení nebo emulátoru. Příkaz používá následující syntaxi: adt -launchApp -platform platformName -platformsdk path_to_sdk -device deviceID -appid applicationID -platform Název platformy zařízení. Určete systém ios nebo android. -platformsdk Cesta k sadě SDK platformy pro cílové zařízení: • Android – Sada AIR 2.6+ SDK obsahuje nástroje ze sady Android SDK potřebné k implementaci příslušných příkazů ADT. Tuto hodnotu nastavte pouze v případě, že chcete použít jinou verzi sady Android SDK. Cestu k sadě SDK platformy také není nutné zadávat na příkazovém řádku, pokud je již nastavena proměnná prostředí AIR_ANDROID_SDK_HOME. (Pokud jsou nastaveny obě, pak bude použita cesta na příkazovém řádku.) Poslední aktualizace 31.8.2016 174 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) • iOS – Sada AIR SDK se dodává s kaptivní sadou SDK pro systém iOS. Možnost -platformsdk umožňuje balení aplikací s externí sadou SDK, takže nejste omezení na používání kaptivní verze iOS SDK. Pokud jste například vytvořili rozšíření s nejnovější sadou iOS SDK, můžete tuto sadu SDK určit při balení aplikace. Pokud navíc sadu ADT používáte se Simulátorem iOS, musíte vždy zahrnout možnost -platformsdk určující cestu k sadě SDK simulátoru iOS. -device Určete ios_simulator nebo sériové číslo zařízení. Zařízení je nutné určit pouze v případě, že je k počítači připojeno a spuštěno více zařízení nebo emulátorů Android. Pokud zadané zařízení není připojeno, vrátí nástroj ADT kód ukončení 14: Chyba zařízení. Pokud je připojeno více zařízení nebo emulátorů a zařízení není zadáno, vrátí nástroj ADT kód ukončení 2: Chyba použití. U platformy Android zobrazte seznam sériových čísel připojených zařízení a spuštěných emulátorů pomocí nástroje Android ADB: adb devices -appid ID aplikace AIR nainstalované aplikace. Pokud v zařízení není nainstalována žádná aplikace se zadaným ID, vrátí nástroj ADT vrátí kód ukončení 14: Chyba zařízení. Příkaz uninstallApp nástroje ADT Příkaz - uninstallApp slouží k úplnému odebrání nainstalovaných aplikací ze vzdáleného zařízení nebo emulátoru. Příkaz používá následující syntaxi: adt -uninstallApp -platform platformName -platformsdk path_to_sdk -device deviceID -appid applicationID -platform Název platformy zařízení. Určete systém ios nebo android. -platformsdk Cesta k sadě SDK platformy pro cílové zařízení: • Android – Sada AIR 2.6+ SDK obsahuje nástroje ze sady Android SDK potřebné k implementaci příslušných příkazů ADT. Tuto hodnotu nastavte pouze v případě, že chcete použít jinou verzi sady Android SDK. Cestu k sadě SDK platformy také není nutné zadávat na příkazovém řádku, pokud je již nastavena proměnná prostředí AIR_ANDROID_SDK_HOME. (Pokud jsou nastaveny obě, pak bude použita cesta na příkazovém řádku.) • iOS – Sada AIR SDK se dodává s kaptivní sadou SDK pro systém iOS. Možnost -platformsdk umožňuje balení aplikací s externí sadou SDK, takže nejste omezení na používání kaptivní verze iOS SDK. Pokud jste například vytvořili rozšíření s nejnovější sadou iOS SDK, můžete tuto sadu SDK určit při balení aplikace. Pokud navíc sadu ADT používáte se Simulátorem iOS, musíte vždy zahrnout možnost -platformsdk určující cestu k sadě SDK simulátoru iOS. -device Určete ios_simulator nebo sériové číslo zařízení. Zařízení je nutné určit pouze v případě, že je k počítači připojeno a spuštěno více zařízení nebo emulátorů Android. Pokud zadané zařízení není připojeno, vrátí nástroj ADT kód ukončení 14: Chyba zařízení. Pokud je připojeno více zařízení nebo emulátorů a zařízení není zadáno, vrátí nástroj ADT kód ukončení 2: Chyba použití. U platformy Android zobrazte seznam sériových čísel připojených zařízení a spuštěných emulátorů pomocí nástroje Android ADB: adb devices -appid ID aplikace AIR nainstalované aplikace. Pokud v zařízení není nainstalována žádná aplikace se zadaným ID, vrátí nástroj ADT vrátí kód ukončení 14: Chyba zařízení. Příkaz installRuntime nástroje ADT Příkaz - installRuntime nainstaluje běhový modul AIR do zařízení. Poslední aktualizace 31.8.2016 175 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) Před opětovnou instalací pomocí tohoto příkazu je nutné odinstalovat stávající verzi běhového modulu AIR. Příkaz používá následující syntaxi: adt -installRuntime -platform platformName -platformsdk path_to_sdk -device deviceID -package fileName -platform Název platformy zařízení. Tento příkaz je aktuálně podporován pouze na Android platform. Použijte název android. -platformsdk Cesta k sadě SDK platformy pro cílové zařízení. V současné době je jedinou podporovanou sadou SDK platformy Android. Sada AIR 2.6+ SDK obsahuje nástroje ze sady Android SDK potřebné k implementaci příslušných příkazů ADT. Tuto hodnotu nastavte pouze v případě, že chcete použít jinou verzi sady Android SDK. Cestu k sadě SDK platformy také není nutné zadávat na příkazovém řádku, pokud je již nastavena proměnná prostředí AIR_ANDROID_SDK_HOME. (Pokud jsou nastaveny obě, pak bude použita cesta na příkazovém řádku.) -device Sériové číslo zařízení Zařízení je nutné zadat pouze v případě, že je k počítači připojeno a spuštěno více zařízení nebo emulátorů. Pokud zadané zařízení není připojeno, vrátí nástroj ADT kód ukončení 14: Chyba zařízení. Pokud je připojeno více zařízení nebo emulátorů a zařízení není zadáno, vrátí nástroj ADT kód ukončení 2: Chyba použití. U platformy Android zobrazte seznam sériových čísel připojených zařízení a spuštěných emulátorů pomocí nástroje Android ADB: adb devices -package Název souboru pro instalovaný běhový modul. U platformy Android to musí být balíček APK. Pokud není zadán žádný balíček, bude vybrán příslušný běhový modul pro emulátor nebo zařízení z těch, které jsou k dispozici v sadě SDK AIR. Pokud je běhový modul již nainstalován, vrátí nástroj ADT kód chyby 14:Chyba zařízení. Příkaz runtimeVersion nástroje ADT Příkaz - runtimeVersion zobrazí nainstalovanou verzi běhového modulu AIR v zařízení nebo emulátoru. Příkaz používá následující syntaxi: adt -runtimeVersion -platform platformName -platformsdk path_to_sdk -device deviceID -platform Název platformy zařízení. Tento příkaz je aktuálně podporován pouze na Android platform. Použijte název android. -platformsdk Cesta k sadě SDK platformy pro cílové zařízení. V současné době je jedinou podporovanou sadou SDK platformy Android. Sada AIR 2.6+ SDK obsahuje nástroje ze sady Android SDK potřebné k implementaci příslušných příkazů ADT. Tuto hodnotu nastavte pouze v případě, že chcete použít jinou verzi sady Android SDK. Cestu k sadě SDK platformy také není nutné zadávat na příkazovém řádku, pokud je již nastavena proměnná prostředí AIR_ANDROID_SDK_HOME. (Pokud jsou nastaveny obě, pak bude použita cesta na příkazovém řádku.) -device Sériové číslo zařízení Zařízení je nutné zadat pouze v případě, že je k počítači připojeno a spuštěno více zařízení nebo emulátorů. Pokud není nainstalován běhový modulu nebo zadané zařízení není připojeno, vrátí nástroj ADT kód ukončení 14: Chyba zařízení. Pokud je připojeno více zařízení nebo emulátorů a zařízení není zadáno, vrátí nástroj ADT kód ukončení 2: Chyba použití. U platformy Android zobrazte seznam sériových čísel připojených zařízení a spuštěných emulátorů pomocí nástroje Android ADB: adb devices Poslední aktualizace 31.8.2016 176 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) Příkaz uninstallRuntime nástroje ADT Příkaz - uninstallRuntime zcela odstraní běhový modul AIR ze zařízení nebo emulátoru. Příkaz používá následující syntaxi: adt -uninstallRuntime -platform platformName -platformsdk path_to_sdk -device deviceID -platform Název platformy zařízení. Tento příkaz je aktuálně podporován pouze na Android platform. Použijte název android. -platformsdk Cesta k sadě SDK platformy pro cílové zařízení. V současné době je jedinou podporovanou sadou SDK platformy Android. Sada AIR 2.6+ SDK obsahuje nástroje ze sady Android SDK potřebné k implementaci příslušných příkazů ADT. Tuto hodnotu nastavte pouze v případě, že chcete použít jinou verzi sady Android SDK. Cestu k sadě SDK platformy také není nutné zadávat na příkazovém řádku, pokud je již nastavena proměnná prostředí AIR_ANDROID_SDK_HOME. (Pokud jsou nastaveny obě, pak bude použita cesta na příkazovém řádku.) -device Sériové číslo zařízení Zařízení je nutné zadat pouze v případě, že je k počítači připojeno a spuštěno více zařízení nebo emulátorů. Pokud zadané zařízení není připojeno, vrátí nástroj ADT kód ukončení 14: Chyba zařízení. Pokud je připojeno více zařízení nebo emulátorů a zařízení není zadáno, vrátí nástroj ADT kód ukončení 2: Chyba použití. U platformy Android zobrazte seznam sériových čísel připojených zařízení a spuštěných emulátorů pomocí nástroje Android ADB: adb devices Příkaz devices nástroje ADT Příkaz -help nástroje ADT zobrazí ID zařízení pro aktuálně připojená mobilní zařízení a emulátory: adt -devices -platform iOS|android -platform Zobrazí název platformy ke kontrole. Zadejte hodnoty android nebo iOS. Poznámka: V systému iOS tento příkaz vyžaduje přehrávač iTunes 10.5.0 nebo vyšší. Příkaz help nástroje ADT Příkaz -help nástroje ADT zobrazí výstižné připomenutí možností příkazového řádku: adt -help Výstup nápovědy používá následující konvence symbolů: • < > – položky v lomených závorkách označují informace, které je nutné zadat. • () – položky v závorkách označují možnosti, které jsou ve výstupu příkazu help považovány za skupinu. • ALL_CAPS – položky velkými písmeny označují sadu možností, které jsou popsány zvlášť. • | – Nebo Například (A | B) znamená položka A nebo položka B. • ? – 0 nebo 1. Otazník následující za položkou označuje, že položka je volitelná a pokud je použita, může se vyskytnout pouze jedenkrát. • * – 0 nebo více Hvězdička následující za položkou znamená, že položka je nepovinná a může se vyskytovat v libovolném počtu instancí. • + – 1 nebo více. Znaménko plus následující za položkou označuje, že položka je vyžadována a může se vyskytovat ve více instancích. • žádný symbol – Pokud za položkou nenásleduje žádný symbol, je vyžadována a může se vyskytnout pouze jedenkrát. Poslední aktualizace 31.8.2016 177 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) Sady možností nástroje ADT Několik příkazů nástroje ADT sdílí společné sady možností. Možnosti podpisu kódu nástroje ADT Program ADT používá funkci Java Cryptography Architecture (JCA) k získání přístupu k osobním klíčům a certifikátům pro podpis aplikací AIR. Možnosti podpisu určují úložiště klíčů a osobní klíče a certifikáty v daném úložišti klíčů. Úložiště klíčů musí obsahovat osobní klíč i asociovaný řetězec certifikátu. Jestliže certifikát podpisu provede propojení k důvěryhodnému certifikátu v počítači, zobrazí se obsah běžného názvu certifikátu jako název vydavatele v dialogovém okně instalace AIR. Nástroj ADT vyžaduje, aby certifikát odpovídal normě x509v3 (RFC3280) a obsahoval příponu rozšířeného použití klíče (Extended Key Usage) s řádnou hodnotou pro podepsání kódu. Omezení definovaná v rámci certifikátu jsou respektována a mohou vyloučit použití některých certifikátů pro podepsání aplikací AIR. Poznámka: Je-li to vhodné, používá nástroj ADT nastavení proxy běhového prostředí jazyka Java pro připojení ke zdrojům na Internetu ke kontrole seznamu zrušených certifikátů a získání časových známek. Jestliže používáte nástroj ADT a při připojování ke zdrojům na Internetu dojde k potížím a vaše síť vyžaduje specifické nastavení proxy, bude třeba nakonfigurovat nastavení proxy běhového prostředí Java. Syntaxe možností podpisu aplikace AIR U možností podpisu se používá následující syntaxe (na jednom příkazovém řádku): -alias aliasName -storetype type -keystore path -storepass password1 -keypass password2 -providerName className -tsa url -alias Alias klíče v úložišti klíčů. Určení alias není nutné, jestliže úložiště klíčů obsahuje pouze jediný certifikát. Neníli určen žádný alias, použije program ADT první klíč v úložišti klíčů. Ne všechny aplikace pro správu úložiště klíčů umožňují přiřazení alias certifikátům. Například při používání úložiště klíčů systému Windows použijte jako alias rozlišující název certifikátu. Můžete použít utilitu Java Keytool pro zobrazení dostupných certifikátů, takže budete moct určit alias. Například spuštění příkazu: keytool -list -storetype Windows-MY vytvoří pro certifikát výstup podobný následující ukázce: CN=TestingCert,OU=QE,O=Adobe,C=US, PrivateKeyEntry, Certificate fingerprint (MD5): 73:D5:21:E9:8A:28:0A:AB:FD:1D:11:EA:BB:A7:55:88 Pro odkázání tohoto certifikátu na příkazovém řádku ADT nastavte alias na: CN=TestingCert,OU=QE,O=Adobe,C=US V OS Mac X je alias certifikátu v řetězci klíčů název zobrazený v aplikaci přístupu k řetězci klíčů. Poslední aktualizace 31.8.2016 178 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) -storetype Typ úložiště klíčů určený implementací úložiště. Výchozí implementace úložiště klíčů zahrnutá ve většině instalací jazyka Java podporuje typy JKS a PKCS12. Java 5.0 obsahuje podporu pro typ PKCS11 pro získání přístupu k úložištím klíčů na známkách hardware a typ Keychain pro získání přístupu k řetězci klíčů OS Mac X. Java 6.0 obsahuje podporu pro typ MSCAPI (pro OS Windows). Jestliže byly nainstalovány a nakonfigurovány jiní poskytovatelé JCA, mohou být k dispozici další typy úložišť klíčů. Jestliže nebyly určeny žádné typy úložiště klíčů, použije se výchozí typ pro výchozího poskytovatele JCA. Typ uložení Formát úložiště klíčů Minimální verze Java JKS Soubor úložiště klíčů Java (.keystore) 1.2 PKCS12 soubor PKCS12 (.p12 nebo .pfx) 1.4 PKCS11 Známka hardware 1.5 Úložiště řetězce klíčů Úložiště řetězce klíčů pro OS Mac X 1.5 Windows-MY nebo Windows-ROOT MSCAPI 1.6 -keystore Cesta k souboru úložiště klíčů pro typy uložení vycházející ze souborů. -storepass Heslo vyžadované pro přístup k úložišti klíčů. Není-li určeno, nástroj ADT požádá o zadání hesla. -keypass Heslo vyžadované pro přístup k osobnímu klíči, který je použit pro podepsání aplikace AIR. Není-li určeno, nástroj ADT požádá o zadání hesla. Poznámka: Pokud jako součást příkazu nástroje ADT zadáte heslo, budou znaky hesla uloženy do historie příkazového řádku. Proto se použití příkazu -keypass nebo -storepass nedoporučuje, je-li důležité zabezpečení certifikátu. Všimněte si také, že při vynechání možnosti hesla se znaky zadané při výzvě k zadání hesla nezobrazí (ze stejných důvodů zabezpečení). Jednoduše zadejte heslo a stiskněte klávesu Enter. -providerName Poskytovatel JCA pro určený typ úložiště klíčů. Není-li určen, použije nástroj ADT výchozího poskytovatele pro daný typ úložiště klíčů. -tsa Určuje adresu URL RFC3161vyhovujícího serveru časového razítka pro přidání časového razítka k digitálnímu podpisu. Není-li určena žádná URL, použije se výchozí server časové známky poskytnutý autoritou Geotrust. Když je podpis aplikace AIR opatřen časovou známkou, aplikace může být stále instalována i po vypršení certifikátu podpisu, protože časová známka ověří, že certifikát byl v době podpisu platný. Jestliže se program ADT nemůže připojit k serveru časové známky, je podepisování zrušeno a nebude vytvořen žádný balík. Pro vypnutí získávání časové známky určete -tsa none. Nicméně aplikace AIR zabalená bez časové známky nemůže být nainstalována po vypršení certifikátu podpisu. Poznámka: Mnoho možností podpisu je shodných se stejnou možností v nástroji Java Keytool. Utilitu Keytool můžete použít k prozkoumání a správě úložišť klíčů v systému Windows. Utilitu zabezpečení Apple® lze za tímto účelem také použít v OS Mac X. -provisioning-profile Soubor zajišťování Apple iOS. (Požadováno pouze pro balení aplikací iOS.) Příklady možností podepsání Podepsání se souborem .p12: -storetype pkcs12 -keystore cert.p12 Podepsání s výchozím úložištěm klíčů Java: Poslední aktualizace 31.8.2016 179 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) -alias AIRcert -storetype jks Podepsání se specifickým úložištěm klíčů Java: -alias AIRcert -storetype jks -keystore certStore.keystore Podepsání s řetězcem klíčů OS Mac X: -alias AIRcert -storetype KeychainStore -providerName Apple Podepsání s úložištěm klíčů OS Windows: -alias cn=AIRCert -storeype Windows-MY Podepsání známkou hardware (rady pro konfiguraci Java k použití známky a správnou hodnotu providerName naleznete v pokynech výrobce známky): -alias AIRCert -storetype pkcs11 -providerName tokenProviderName Podepsání bez vložení časové známky: -storetype pkcs12 -keystore cert.p12 -tsa none Možnosti souboru a cesty Možnosti souboru a cestu určují všechny soubory, které jsou součástí balíčku. Možnosti souboru a cesty používají následující syntaxi: files_and_dirs -C dir files_and_dirs -e file_or_dir dir -extdir dir files_and_dirs Soubory a adresáře, které budou zabaleny v souboru AIR. Lze určit jakýkoliv počet souborů a slovníků, oddělených prázdným prostorem. Jestliže uvedete adresář, budou všechny soubory a podadresáře, s výjimkou skrytých souborů, přidány do balíku. (Pokud je určen soubor deskriptoru aplikace, přímo nebo pomocí zástupného znaku či doplnění aplikace, je ignorován a není podruhé přidán do balíku.) Určené soubory a slovníky musí být umístěny v aktuálním adresáři nebo jednom z jeho podadresářích. Pomocí volby -C změňte aktuální adresář. Důležité: Zástupné znaky nelze použít v argumentech file_or_dir po volbě –C. (Skořepiny příkazu rozšiřují zástupné znaky před předání argumentů do programu ADT a tento program vyhledá soubory ve špatném umístění.) Pro nahrazení stávajícího adresáře můžete nicméně použít znak tečky „.“. Například: -C assets. zkopíruje vše v adresáři datového zdroje, včetně všech dílčích adresářů, až ke kořenové úrovni balíku aplikace. -C dir files_and_dirs Změní pracovní adresář na hodnotu dir před tím, než zpracuje následné soubory a adresáře přidané do balíčku aplikace určeného argumentem files_and_dirs). Soubory nebo adresáře jsou přidány ke kořenům balíku aplikace. Volbu –C lze použít tolikrát, kolikrát si přejete, pro zahrnutí souborů s více bodů do systému souborů. Je-li pro dirurčena relativní cesta, je cesta vždy získána z původního pracovního adresáře. Když program ADT zpracovává soubory a adresáře obsažené v balení, uloží se relativní cesta mezi aktuálním adresářem a cílovými soubory. Tyto cesty jsou při instalaci balíku rozšířeny do struktury adresáře aplikace. Proto určením -C release/bin lib/feature.swf umístíte soubor release/bin/lib/feature.swf do podadresáře lib kořenové složky aplikace. -e file_or_dir dir Umístí soubor nebo adresář do zadaného adresáře balíčku. Tuto možnost nelze použít při balení souboru ANE. Poznámka: Element <content> souboru deskriptoru aplikace musí určit finální umístění hlavního souboru aplikace ve stromové struktuře adresáře balíku aplikace. -extdir dir Hodnota dir je název adresáře pro vyhledávání nativních rozšíření (souborů ANE). Určuje absolutní nebo relativní cestu k aktuálnímu adresáři. Možnost -extdir můžete zadat vícekrát. Poslední aktualizace 31.8.2016 180 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) Zadaný adresář obsahuje soubory ANE pro nativní rozšíření, která bude aplikace používat. Každý soubor ANE v tomto adresáři má příponu názvu souboru .ane. Název souboru před příponou ANE však nemusí odpovídat hodnotě elementu extensionID v souboru deskriptoru aplikace. Pokud například použijete hodnotu -extdir./extensions , může adresář extensions vypadat například takto: extensions/ extension1.ane extension2.ane Poznámka: Použití možnosti -extdir v nástroji ADT a v nástroji ADL se liší. V nástroji ADL tato možnost určuje adresář obsahující podadresáře, z nichž každý obsahuje nerozbalený soubor ANE. V nástroji ADT určuje tato možnost adresář, který obsahuje soubory ANE. Možnosti připojení debuggeru Pokud je cílem balíčku apk-debug a ipa-debug nebo ipa-debug-interpreter, lze pomocí možností připojení určit, zda se má aplikace pokusit připojit ke vzdálenému debuggeru, (který se obvykle používá k ladění wifi) nebo zda má naslouchat příchozímu připojení ze vzdáleného debuggeru (obvykle používaného k ladění USB). Pro připojení k ladicímu programu použijte volbu -connect. Chcete-li přijmout připojení z ladicímu programu přes rozhraní USB, použijte volbu -listen. Tyto volby se vzájemně vylučují, což znamená, že je nelze použít společně. Možnost -connect používá následující syntaxi: -connect hostString -connect Pokud je tato možnost zadána, aplikace se pokusí připojit ke vzdálenému debuggeru. hostString Řetězec identifikující počítač se spuštěným nástrojem ladění Flash FDB. Pokud tato možnost není zadána, aplikace se pokusí připojit k debuggeru spuštěnému v počítači, ve kterém je balíček vytvořen. Řetězec host může být plně kvalifikovaný název domény počítače: machinename.subgroup.example.com nebo adresa IP 192.168.4.122. Pokud zadaný (nebo výchozí) počítač nebyl nalezen, zobrazí běhový modul dialogové okno požadující platný název hostitele. Možnost -listen používá následující syntaxi: -listen port -listen Pokud je tato možnost zadána, běhové prostředí čeká na připojení ze vzdáleného debuggeru. port (volitelné) Port pro naslouchání. Ve výchozím nastavení běhové prostředí naslouchá na portu 7936. Další informace o použití možnosti -listen naleznete v části „Vzdálené ladění pomocí nástroje FDB přes port USB“ na stránce 103. Možnosti profilování aplikace Android Pokud je cílem balíčku apk-profile, lze pomocí možností profileru určit, který předem zavedený soubor SWF má být použit pro profilování výkonu a paměti. Možnosti profileru používají následující syntaxi: -preloadSWFPath directory -preloadSWFPath Je-li tato možnost zadána, aplikace se pokusí najít předem zavedený soubor SWF v zadaném adresáři. Pokud není zadána, obsahuje nástroj ADT předem zavedený soubor SWF ze sady AIR SDK. directory Adresář obsahující předem zavedený soubor SWF profileru. Poslední aktualizace 31.8.2016 181 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) Možnosti nativního rozšíření Možnosti nativního rozšíření určují možnosti a soubory pro balení souboru ANE pro nativní rozšíření. Tyto možnosti použijte s příkazem package nástroje ADT, ve kterém má možnost -target hodnotu ane. extension-descriptor -swc swcPath -platform platformName -platformoptions path/platform.xml FILE_OPTIONS extension-descriptor Soubor deskriptoru pro nativní rozšíření. -swc Soubor SWC obsahující kód jazyka ActionScript a prostředky pro nativní rozšíření. -platform Název platformy, kterou tento soubor ANE podporuje. Můžete zahrnout více možností -platform, každou s vlastním parametrem FILE_OPTIONS. -platformoptions Cesta k souboru obsahujícímu možnosti platformy (platform.xml). Tento soubor můžete použít k určení jiných než výchozích možností propojení, sdílených knihoven a statických knihoven třetích stran používaných v rozšíření. Další informace a ukázky naleznete v části Nativní knihovny iOS. FILE_OPTIONS Určuje nativní soubory platformy, které budou součástí balíčku, jako např. statické knihovny obsažené v nativním balíčku rozšíření. Možnosti souboru jsou kompletně popsány v tématu „Možnosti souboru a cesty“ na stránce 179. (Všimněte si, že možnost -e nelze použít při balení souboru ANE.) Další témata Nápovědy Zabalení nativního rozšíření Chybová hlášení programu ADT Následující tabulka obsahuje seznam možných chyb, které může nahlásit program ADT, a jejich pravděpodobné příčiny: Chyby ověření deskriptoru aplikace Kód chyby Popis Poznámky 100 Deskriptor aplikace nelze analyzovat. Zkontrolujte, zda se v souboru deskriptoru aplikace nevyskytují chyby syntaxe jazyka XML, jako jsou například neuzavřené tagy. 101 Chybí jmenný prostor. Přidejte chybějící jmenný prostor. 102 Neplatný jmenný prostor Zkontrolujte pravopis jmenného prostoru. 103 Neočekávaný element nebo atribut Odstraňte nevhodné elementy a atributy. V souboru deskriptoru nejsou povoleny vlastní hodnoty. Zkontrolujte pravopis názvů elementů a atributů. Ujistěte se, že jsou elementy umístěny ve správném nadřazeném elementu a že jsou atributy použity se správnými elementy. 104 Chybějící element nebo atribut Přidejte požadovaný element nebo atribut. Poslední aktualizace 31.8.2016 182 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) Kód chyby Popis Poznámky 105 Element nebo atribut obsahuje neplatnou hodnotu. Opravte nevhodnou hodnotu. 106 Nesprávná kombinace atributu okna Některá nastavení oken nelze používat společně (například nastavení transparency = true a systemChrome = standard. Změňte jedno z nekompatibilních nastavení. 107 Minimální velikost okna je větší než maximální velikost okna. Změňte buď nastavení minimální velikosti, nebo nastavení maximální velikosti. 108 Atribut se již používá v předchozím elementu. 109 Element je duplicitní. Odeberte duplicitní element. 110 Je vyžadován alespoň jeden element určeného typu. Přidejte chybějící element. 111 Žádné profily uvedené v deskriptoru aplikace nepodporují nativní rozšíření. Do seznamu supportedProfies přidejte profil, který podporuje nativní rozšíření 112 Cíl AIR nepodporuje nativní rozšíření. Vyberte cíl, který podporuje nativní rozšíření. 113 <nativeLibrary> a <initializer> musí být uvedeny společně. Funkce inicializátoru musí být zadána pro každou nativní knihovnu v nativním rozšíření. 114 Byl nalezen <finalizer> bez <nativeLibrary>. Nezadávejte finalizační metodu, pokud platforma používá nativní knihovnu. 115 Výchozí platforma nesmí obsahovat nativní Nezadávejte nativní knihovnu ve výchozím implementaci. elementu platformy. 116 Vyvolání prohlížeče není pro tento cíl podporováno. 117 Tento cíl vyžaduje minimálně obor názvů n Změňte obor názvů AIR v deskriptoru pro zabalení nativních rozšíření. aplikace na podporovanou hodnotu. Element <allowBrowserInvocation> nemůže mít pro zadaný cíl balíčku hodnotu true. Informace o oborech názvů, elementech, atributech a jejich platných hodnotách naleznete v tématu „Soubory deskriptorů aplikací AIR“ na stránce 202. Chyby ikony aplikace Poslední aktualizace 31.8.2016 183 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) Kód chyby Popis Poznámky 200 Nelze otevřít soubor ikony. Zkontrolujte, že soubor v určené cestě existuje. Ujistěte se pomocí jiné aplikace, že soubor lze otevřít. 201 Ikona má nesprávnou velikost. Velikost ikony (v obrazových bodech) musí odpovídat tagu XML. Je-li například daný element deskriptoru aplikace: <image32x32>icon.png</image32x3 2> Musí mít obraz v souboru icon.png rozměry 32 x 32 obrazových bodů. 202 Soubor ikony obsahuje nepodporovaný formát souboru. Podporován je pouze formát PNG. Před zabalením aplikace převeďte obrazy v jiných formátech. Chyby souboru aplikace Kód chyby Popis Poznámky 300 Soubor chybí nebo nelze otevřít. Soubor určený na příkazovém řádku nelze najít nebo otevřít. 301 Soubor deskriptoru aplikace chybí nebo nelze otevřít. Soubor deskriptoru aplikace nelze v určené cestě najít nebo ho nelze otevřít. 302 V balíčku chybí soubor kořenového obsahu. Do balíčku je třeba přidat soubor SWF nebo HTML odkazovaný v elementu <content> deskriptoru aplikace – zahrňte tento soubor do souborů, které jsou uvedeny na příkazovém řádku programu ADT. 303 V balíčku chybí soubor ikony. Do balíčku je třeba přidat soubory ikony určené v deskriptoru aplikace – zahrňte tyto soubory do souborů uvedených na příkazovém řádku programu ADT. Soubory ikon nejsou přidávány automaticky. 304 Počáteční obsah okna je neplatný. Soubor odkazovaný v elementu <content> deskriptoru aplikace není rozpoznán jako platný soubor HTML nebo SWF. 305 Počáteční verze SWF obsahu okna je vyšší než verze jmenného prostoru Verze formátu SWF souboru odkazovaného v elementu <content> deskriptoru aplikace není podporována verzí aplikace AIR, která je určena ve jmenném prostoru deskriptoru. Tuto chybu například vygenerujete, pokud se pro počáteční obsah aplikace AIR 1.1 pokusíte zabalit soubor ve formátu SWF10 (Flash Player 10). 306 Profil není podporován. Profil, který zadáváte v souboru deskriptoru aplikace, není podporován. Viz „supportedProfiles“ na stránce 236. 307 Obor názvů musí být alespoň nnn. Použijte příslušný obor názvů pro funkce použité v aplikaci (například obor názvů 2.0). Poslední aktualizace 31.8.2016 184 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) Kódy ukončení pro jiné chyby Kódy ukončení Popis Poznámky 2 Chyba použití Zkontrolujte, jestli argumenty v příkazovém řádku neobsahují chyby 5 Neznámá chyba Tato chyba označuje situaci, kterou nelze vysvětlit pomocí běžných podmínek chyb. Mezi hlavní příčiny patří nekompatibilita mezi programem ADT a prostředím runtime jazyka Java, poškozené instalace programu ADT nebo prostředí JRE a programovací chyby uvnitř programu ADT. 6 Nelze provést zápis do výchozího adresáře. Ujistěte se, že je určený (nebo předpokládaný) výstupní adresář přístupný a že na jednotce, která tento adresář obsahuje, je dostatek volného místa. 7 Nelze získat přístup k certifikátu Ujistěte se, že je cesta ke stisknutí klávesy určena správně. Zkontrolujte, zda lze k certifikátu přistupovat v rámci stisknutí klávesy. K řešení potíží s přístupem k certifikátu slouží nástroj Java 1.6 Keytool. 8 Neplatný certifikát Soubor certifikátu je utvořený nesprávně, upravený, má vypršenou platnost nebo byl odvolán. 9 Soubor AIR nelze podepsat. Ověřte možnosti podpisu předané programu ADT. 10 Nelze vytvořit časové razítko. Program ADT nedokáže ustavit připojení k serveru časového razítka. Pokud jste k internetu připojeni prostřednictvím serveru proxy, bude patrně potřeba nakonfigurovat nastavení proxy prostředí JRE. 11 Chyba vytvoření certifikátu Ověřte argumenty příkazového řádku použité k vytvoření podpisů. 12 Neplatné zadání Ověřte cesty souborů a další argumenty předané programu ADT na příkazovém řádku. 13 Chybí sada SDK zařízení Zkontrolujte konfiguraci sady SDK zařízení. Nástroj ADT nemůže najít sadu SDK zařízení potřebnou pro provedení zadaného příkazu. 14 Chyba zařízení Nástroj ADT nemůže provést příkaz z důvodu omezení nebo problému u zařízení. Tento kód ukončení je například odeslán při pokusu o odinstalaci aplikace, která není ve skutečnosti nainstalována. Poslední aktualizace 31.8.2016 185 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) Kódy ukončení Popis Poznámky 15 Žádná zařízení Ověřte, zda je zařízení připojeno a zapnuto, nebo že je spuštěn emulátor. 16 Chybějící komponenty GPL Aktuální sada AIR SDK nezahrnuje všechny komponenty potřebné k provedení požadované operace. 17 Nástroj balení zařízení vygenerovat chybu. Balíček nelze vytvořit, protože očekávané komponenty operačního systému nebyly nalezeny. Chyby systému Android Kódy ukončení Popis Poznámky 400 Aktuální verze sady SDK systému Android Zkontrolujte, zda je název atributu zadán nepodporuje atribut. správně a zda se jedná o platný atribut pro element, ve kterém se vyskytuje. Může být nutné nastavit příznak -platformsdk v příkazu nástroje ADT, pokud byl atribut zaveden po verzi Android 2.2. 401 Aktuální verze sady SDK systému Android Zkontrolujte, zda je správně zadána nepodporuje hodnotu atributu. hodnota atributu a zda je platná pro atribut. Může být nutné nastavit příznak platformsdk v příkazu nástroje ADT, pokud byla hodnota atributu zavedena po verzi Android 2.2. 402 Aktuální verze sady SDK systému Android Zkontrolujte, zda je název tagu XML zadán nepodporuje tag XML. správně a zda se jedná o platný element dokumentu manifestu systému Android. Může být nutné nastavit příznak platformsdk v příkazu nástroje ADT, pokud byl element zaveden po verzi Android 2.2. 403 Přepsání tagu systému Android není povoleno. Aplikace se pokouší o přepsání elementu manifestu systému Android, který je vyhrazen pro použití aplikacemi AIR. Viz téma „Nastavení systému Android“ na stránce 73. 404 Přepsání atributu systému Android není povoleno. Aplikace se pokouší o přepsání atributu manifestu systému Android, který je vyhrazen pro použití aplikacemi AIR. Viz téma „Nastavení systému Android“ na stránce 73. 405 Tag %1 systému Android musí být první element v tagu manifestAdditions. Přesuňte zadaný tag do požadovaného umístění. 406 Atribut % 1 tagu %2 systému Android má neplatnou hodnotu % 3. Zadejte platnou hodnotu pro atribut. Proměnné prostředí nástroje ADT Nástroj ADT načítá hodnoty proměnných prostředí (pokud jsou nastaveny): Poslední aktualizace 31.8.2016 186 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR AIR Developer Tool (ADT) AIR_ANDROID_SDK_HOME Určuje cestu ke kořenovému adresáři sady Android SDK (adresář obsahující složku nástrojů). Sada AIR 2.6+ SDK obsahuje nástroje ze sady Android SDK potřebné k implementaci příslušných příkazů ADT. Tuto hodnotu nastavte pouze v případě, že chcete použít jinou verzi sady Android SDK. Pokud je tato proměnná nastavena, není nutné zadávat příkaz -platformsdk při spouštění příkazů nástroje ADT, které ji vyžadují. Pokud je nastavena tato proměnná i možnost příkazového řádku, bude použita cesta zadaná na příkazovém řádku. Proměnná prostředí AIR_EXTENSION_PATHurčuje cestu pro hledání nativních rozšíření, která jsou vyžadována pro aplikaci. Tento seznam adresářů bude prohledán za účelem nalezení jakýchkoli adresářů nativního rozšíření zadaných na příkazovém řádku nástroje ADT. Příkaz nástroje ADL také používá tuto proměnnou prostředí. Poznámka: V některých počítačových systémech mohou být chybně interpretovány dvoubajtové znaky v systémových cestách k souborům uložených v těchto proměnných prostředí. V takovém případě zkuste nastavit běhové prostředí Java použité ke spuštění nástroje ADT na znakovou sadu UTF-8. Ve výchozím nastavení to provedete ve skriptu použitém ke spuštění nástroje ADT v systémech Mac a Linux. V souboru adt.bat systému Windows nebo při spuštění nástroje ADT přímo z jazyka Java zadejte možnost -Dfile.encoding=UTF-8 na příkazovém řádku jazyka Java. Poslední aktualizace 31.8.2016 187 Kapitola 13: Podepisování aplikací AIR Digitální podepisování souboru AIR Digitální podpis vašich instalačních souborů AIR s certifikátem vydaným uznávanou certifikační autoritou (CA) poskytuje vašim uživatelům významnou záruku, že aplikace, kterou instalují, nebyla náhodně nebo úmyslně upravena a identifikuje vás jako autora podpisu (vydavatele). AIR zobrazí název vydavatele během instalace, pokud byla aplikace AIR podepsána s certifikátem, který je důvěryhodný, nebo který provede propojení na důvěryhodný certifikát v počítači instalace: Dialog potvrzení instalace pro aplikaci, která je podepsána důvěryhodným certifikátem Pokud podepíšete aplikaci pomocí certifikátu podepsaného svým držitelem (nebo certifikátu, který není spojen s důvěryhodným certifikátem), uživatel musí při instalaci vaší aplikace podstoupit větší bezpečnostní riziko. V dialozích instalace bude toto riziko uvedeno: Dialog potvrzení instalace pro aplikaci, která je podepsána certifikátem podepsaným svým držitelem Důležité: Podvodné entity by mohly falsifikovat soubor AIR s vaší totožností, jestliže nějakým způsobem získají váš soubor úložiště klíčů podpisu nebo zjistí váš osobní klíč. Poslední aktualizace 31.8.2016 188 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR Certifikáty podpisu kódu Záruky zabezpečení, omezení a právní závazky týkající se použití certifikátů podpisu kódu jsou uvedeny v Prohlášení o postupech certifikátu (Certificate Practice Statements - CPS) a v ujednáních odběratele zveřejněných vydávající certifikační autoritou. Více informací o ujednáních pro certifikační autority, které aktuálně vydávají certifikáty pro podpis kódu aplikace AIR, naleznete na níže uvedených odkazech: ChosenSecurity (http://www.chosensecurity.com/products/tc_publisher_id_adobe_air.htm) CPS ChosenSecurity (http://www.chosensecurity.com/resource_center/repository.htm) GlobalSign (http://www.globalsign.com/code-signing/index.html) GlobalSign CPS (http://www.globalsign.com/repository/index.htm) Thawte CPS (http://www.thawte.com/cps/index.html) VeriSign CPS (http://www.verisign.com/repository/CPS/) Smlouva předplatitele společnosti VeriSign (https://www.verisign.com/repository/subscriber/SUBAGR.html) O podepisování kódu AIR Když je soubor AIR podepsán, je digitální podpis zahrnut v instalačním souboru. Podpis zahrnuje souhrn balíku, který je použit pro ověření, že soubor AIR nebyl od podepsání upraven a zahrnuje informace o certifikátu podpisu, který je použit pro ověření totožnosti vydavatele. AIR používá infrastrukturu veřejného klíče (PKI) podporovanou pomocí certifikátu operačního systému uloženého pro určení důvěryhodnosti certifikátu. Pro ověření informace vydavatele musí počítač, na kterém je aplikace AIR nainstalována, buď přímo důvěřovat certifikátu použitému pro podepsání aplikace AIR, nebo musí důvěřovat řetězci certifikátů propojujícímu certifikát s důvěryhodnou certifikační autoritou. Jestliže je soubor AIR podepsán s certifikátem, který neprovede propojení k jednomu z důvěryhodných kořenových certifikátů (a toto běžně zahrnuje všechny certifikáty s vlastním podpisem), nelze informace vydavatele ověřit. Zatímco AIR může určit, že balík AIR nebyl od jeho podepsání změněn, neexistuje způsob pro zjištění, kdo daný soubor vlastně vytvořil a podepsal. Poznámka: Uživatel si může zvolit důvěřovat certifikátu s vlastním podpisem a libovolná aplikace AIR podepsaná s certifikátem poté zobrazí hodnotu pole společného názvu v daném certifikátu jako název vydavatele. AIR neposkytuje uživatelům žádné prostředky k označení certifikátu jako důvěryhodného. Certifikát (neobsahující osobní klíč) musí být poskytnut uživateli samostatně a uživatel musí k importu certifikátu do příslušného umístění v systémovém úložišti certifikátu použít jeden z mechanismů poskytnutých operačním systémem nebo příslušným nástrojem. O identifikátorech vydavatele AIR Důležité: Od verze prostředí AIR 1.5.3 se ID vydavatele nepoužívá a není již vypočítáno na základě certifikátu pro podpis kódu. Nové aplikace nemusí a ani by neměly používat ID vydavatele. Při aktualizaci stávajících aplikací je nutné zadat do souboru deskriptoru aplikace původní ID vydavatele. Před vydáním verze prostředí AIR 1.5.3 generoval ID vydavatele instalační program aplikace AIR během instalace souboru AIR. Jednalo se o identifikátor, který byl jedinečný pro certifikát použitý k podpisu souboru AIR. Pokud jste znovu použili stejný certifikát pro více aplikací AIR, tyto aplikace získaly stejné ID vydavatele. Podpis aktualizace aplikace jiným certifikátem a v některých případech dokonce i obnovenou instancí původního certifikátu změnil ID vydavatele. Poslední aktualizace 31.8.2016 189 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR Ve verzi prostředí AIR 1.5.3 a starších není ID vydavatele přiřazováno prostředím AIR. Aplikace publikovaná prostředím AIR 1.5.3 může mít řetězec ID vydavatele uveden v deskriptoru aplikace. ID vydavatele je nutné určit pouze při publikování aktualizací pro aplikace původně publikované pro verze prostředí AIR starší než verze 1.5.3. Pokud nezadáte původní ID do deskriptoru aplikace, nový balík AIR nebude považován za aktualizaci stávající aplikace. Chcete-li zjistit původní ID vydavatele, vyhledejte soubor publisherid v podadresáři META-INF/AIR, kde je nainstalována původní aplikace. Řetězec uvnitř tohoto souboru je ID vydavatele. Deskriptor vaší aplikace musí určovat běhový modul AIR 1.5.3 (nebo novější) v deklaraci jmenného prostoru deskriptoru aplikace, aby bylo možné zadat ID vydavatele ručně. ID vydavatele, pokud je přítomno, slouží k těmto účelům: • Jako součást šifrovacího klíče pro šifrované místní úložiště • Jako součást cesty pro adresář úložiště aplikace • Jako součást připojovacího řetězce pro místní připojení • Jako součást řetězce identity používaného k vyvolání aplikace pomocí rozhraní API v prohlížeči prostředí AIR • Jako součást specifikace OSID (používané při vytváření vlastních instalačních a odinstalačních programů) Když se změní ID vydavatele, změní se i chování veškerých funkcí prostředí AIR, které na tomto ID závisí. Například data ve stávajícím zašifrovaném úložišti již nejsou přístupná a veškeré instance prostředí Flash nebo AIR, které vytvářejí místní připojení k aplikaci, musí v připojovacím řetězci používat nové ID. V prostředí AIR 1.5.3 nebo novějším nelze změnit ID vydavatele nainstalované aplikace. Pokud při publikování balíku AIR použijete jiné ID vydavatele, instalátor nebude s novým balíčkem pracovat jako s aktualizací, ale jako s jinou aplikací. O formátech certifikátu Podpisové nástroje AIR přijímají jakékoliv úložiště klíčů přístupné pomocí funkce Java Cryptography Architecture (JCA). Mezi ně patří úložiště klíčů vycházející ze souborů, například soubory s formátem PKCS12 (které obvykle používají koncovku souboru .pfx nebo .p12), soubory jazyka Java .keystore, úložiště klíčů hardware PKCS11 a systémová úložiště klíčů. Formáty úložiště klíčů, ke kterým může program ADT získat přístup, závisí na verzi a konfiguraci runtime jazyka Java použitého ke spuštění programu ADT. Přístup k některým typům úložišť klíčů, například k známkám hardware PKCS11, může vyžadovat instalaci a konfiguraci dalších ovladačů software a modulů JCA. K podepsání souborů AIR můžete použít stávající certifikát podpisu kódu nebo můžete získat nový certifikát vydaný výlučně za účelem podpisu aplikací AIR. Lze použít například libovolný z následujících typů certifikátů od společností VeriSign, Thawte, GlobalSign nebo ChosenSecurity: • ChosenSecurity • Služba TC Publisher ID for Adobe AIR • GlobalSign • Služba ObjectSign Code Signing Certificate • Thawte: • AIR Developer Certificate • Apple Developer Certificate • JavaSoft Developer Certificate • Microsoft Authenticode Certificate Poslední aktualizace 31.8.2016 190 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR • VeriSign: • Digitální identifikátor Adobe AIR • Microsoft Authenticode Digital ID • Sun Java Signing Digital ID Poznámka: Certifikát musí být vytvořen pro podpis kódu. K podpisu souborů AIR nelze použít certifikát SSL nebo jiný typ certifikátů. Časové známky Když podepíšete soubor AIR, nástroj balení pošle serveru dotaz ohledně autority časové známky pro získání nezávisle ověřitelného data a času podpisu. Získaná časová známka je vložena do souboru AIR. Pokud je certifikát podpisu platný v době podpisu, lze soubor AIR nainstalovat, i po vypršení certifikátu. Pokud ale není obdržena žádná časová známka, soubor AIR již nelze nainstalovat, pokud certifikát vyprší nebo je zrušen. Nástroje balení AIR implicitně získají časovou známku. Pokud ale chcete povolit zabalení aplikace, když je služba časových známek nedostupná, můžete získávání časových známek vypnout. Společnost Adobe doporučuje, aby všechny veřejně distribuované soubory AIR obsahovaly časovou známku. Výchozí autorita časových známek používaná nástroji balení AIR je Geotrust. Získání certifikátu Pro získání certifikátu navštivte webové stránky certifikační autority a projděte procesem zprostředkování dané společnosti. Nástroje použité k vytvoření souboru úložiště klíčů potřebného nástroji AIR závisí na typu zakoupeného certifikátu, způsobu uložení certifikátu na počítači příjemce a někdy také na prohlížeči použitém k získání certifikátu. Chcete-li například získat a exportovat certifikát Adobe Developer od společnosti Thawte, musíte použít prohlížeč Mozilla Firefox. Certifikát lze poté exportovat jako soubor .p12 nebo .pfx přímo z uživatelského rozhraní prohlížeče Firefox. Poznámka: Jazyk Java verze 1.5 a vyšší nepřijímá hesla obsahující znaky high-ASCII pro ochranu souborů certifikátů PKCS12. Vývojářské nástroje prostředí AIR používají k vytváření podepsaných balíků AIR jazyk Java. Když exportujete certifikát jako soubor .p12 nebo .pfx, používejte jako heslo pouze běžné znaky ASCII. Certifikát s vlastním podpisem můžete vygenerovat pomocí programu Air Development Tool (ADT) používaného k balení instalačních souborů AIR. Lze také použít některé nástroje třetích stran. Pokyny pro vygenerování certifikátu s vlastním podpisem i pokyny pro podepsání souboru AIR naleznete v tématu „AIR Developer Tool (ADT)“ na stránce 163. Soubory AIR lze rovněž vyexportovat a podepsat pomocí aplikací Flex Builder, Dreamweaver a aktualizace AIR pro nástroj Flash. Následující příklad popisuje způsob získání certifikátu vývojáře AIR od certifikační autority Thawte a přípravu tohoto certifikátu pro jeho použití s programem ADT. Příklad: Získání certifikátu vývojáře AIR od autority Thawte Poznámka: Tento příklad ukazuje pouze jeden z mnoha způsobů získání a přípravy certifikátu podpisu kódu, který můžete použít. Každá certifikační autorita má vlastní zásady a postupy. Pro zakoupení certifikátu vývojáře AIR server autority Thawte vyžaduje použití prohlížeče Mozilla Firefox. Osobní klíč pro certifikát je uložen v úložišti klíčů prohlížeče. Ujistěte se, zda je úložiště klíčů Firefox zajištěno pomocí hlavního hesla, a že je samotný počítač fyzicky zabezpečen. (Jakmile je proces zprostředkování dokončen, můžete certifikát a osobní klíč z úložiště klíčů prohlížeče exportovat a odstranit.) Poslední aktualizace 31.8.2016 191 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR Jako součást procesu přihlášení certifikátu je vygenerována dvojice osobního a veřejného klíče. Osobní klíč je automaticky uložen v úložišti klíčů aplikace Firefox. Pro vyžádání i načtení certifikátu ze serveru autority Thawte musíte použít stejný počítač a stejný prohlížeč. 1 Navštivte server autority Thawte a přejděte na Stránka produktů pro certifikáty podpisu kódu. 2 Ze seznamu certifikátů podpisu kódu vyberte Adobe AIR Developer Certificate. 3 Absolvujte proces přihlášení zahrnující dva kroky. Je třeba poskytnout informace o organizaci a vaše kontaktní údaje. Thawte poté provede proces ověření identity a může požádat o dodatečné informace. Po dokončení ověření vám autorita Thawte odešle e-mail s pokyny, jak načíst certifikát. Poznámka: Dodatečné informace o typu vyžadované dokumentace lze nalézt zde: https://www.thawte.com/ssldigital-certificates/free-guides-whitepapers/pdf/enroll_codesign_eng.pdf. 4 Načtěte vydaný certifikát ze serveru Thawte. Certifikát je automaticky uložen do úložiště klíčů aplikace Firefox. 5 Exportujte soubor úložiště klíčů obsahující osobní klíč a certifikát z úložiště klíčů Firefox pomocí následujících kroků: Poznámka: Při exportu osobního klíče a certifikátu z aplikace Firefox je export proveden ve formátu .p12 (pfx), který může být použit programy ADT, Flex, Flash a Dreamweaver. a Otevřete dialogové okno aplikace Firefox Správce certifikátu: b V systému Windows: Otevřete položky Nástroje -> Možnosti -> Rozšířené -> Šifrování -> Certifikáty. c V systému Mac OS: Otevřete aplikaci Firefox -> Preference -> Rozšířené -> Šifrování -> Zobrazit certifikáty d V systému Linux: Otevřete položky Nástroje -> Možnosti -> Rozšířené -> Šifrování -> Certifikáty. e Ze seznamu certifikátů vyberte Adobe AIR Code Signing Certificate a klepněte na tlačítko Záloha. f Zadejte název souboru a umístění, kam chcete soubor úložiště klíčů exportovat. Poté klepněte na možnost Uložit. g Jestliže používáte hlavní heslo Firefox, budete požádání o zadání svého hesla pro zařízení k zabezpečení software, abyste mohli soubor exportovat. (Toto heslo je použito pouze aplikací Firefox.) h V dialogovém okně Výběr hesla pro zálohování certifikátu vytvořte heslo pro soubor úložiště klíčů. Důležité: Toto heslo chrání soubor úložiště klíčů a je vyžadováno, je-li soubor použit pro podpis aplikací AIR. Měli byste zvolit bezpečné heslo. i Klikněte na tlačítko OK. Měli byste obdržet zprávu o úspěšném provedení zálohy hesla. Soubor úložiště klíčů obsahující osobní klíč a certifikát je uložen s příponou .p12 (ve formátu PKCS12) 6 Exportovaný soubor úložiště klíčů použijte s programy ADT, Flex Builder, Flash nebo Dreamweaver. Heslo vytvořené pro tento soubor je vyžadováno při každém podpisu aplikace AIR. Důležité: Osobní klíč a certifikát jsou stále uloženy v úložišti klíčů aplikace Firefox. To vám nejen umožňuje exportovat další kopii souboru certifikátu, ale jedná se také o další bod přístupu, který musí být chráněn, aby bylo zajištěno zabezpečení vašeho certifikátu a osobního klíče. Změna certifikátů V některých situacích je nutné změnit certifikát, který používáte k podepsání aktualizací pro vaši aplikaci AIR. Mezi takové okolnosti patří: • Obnovení původního podpisového certifikátu. • Aktualizace z certifikátu s vlastním podpisem na certifikát vydaný certifikační autoritou. Poslední aktualizace 31.8.2016 192 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR • Změna z certifikátu s vlastním podpisem, který za chvíli vyprší, na jiný • Změna z jednoho komerčního certifikátu na jiný, například při změně identity vaší společnosti. Aby prostředí AIR rozpoznalo soubor AIR jako aktualizaci, je nutné buďto podepsat původní i aktualizační soubor AIR stejným certifikátem, nebo použít na aktualizaci podpis přesunu certifikátu. Podpis přesunu je druhý podpis použitý na aktualizační balík AIR pomocí původního certifikátu. Podpis přesunu používá původní certifikát k potvrzení, že podepsaný je původní vydavatel aplikace. Po instalaci souboru AIR s podpisem přesunu se nový certifikát stane primárním certifikátem. Následující aktualizace podpis přesunu nevyžadují. Podpisy přesunu je však třeba používat co nejdéle, čímž vyjdete vstříc uživatelům, kteří vynechávají aktualizace. Důležité: Je nutné změnit certifikát a použít podpis migrace u aktualizace s původním certifikátem před jeho vypršením. Uživatelé jinak budou muset před instalací nové verze odinstalovat stávající verzi aplikace. V prostředí AIR 5.3.365 nebo novějším můžete používat podpis přesunu pomocí certifikátu s prošlou platností během lhůty odkladu 365 dní od vypršení platnosti. Certifikát s prošlou platností však nelze použít k uplatnění podpisu hlavní aplikace. Chcete-li změnit certifikáty: 1 Vytvořte aktualizaci své aplikace 2 Zabalte a podepište aktualizovaný soubor AIR pomocí certifikátu nový 3 Znovu podepište soubor AIR pomocí certifikátu původní (pomocí příkazu programu ADT -migrate) Soubor AIR s podpisem přesunu je v jiných ohledech běžným souborem AIR. Jestliže je aplikace v systému nainstalována bez původní verze, AIR nainstaluje novou verzi obvyklým způsobem. Poznámka: Před vydáním verze prostředí AIR 1.5.3 podpis aplikace AIR obnoveným certifikátem ne vždy vyžadoval podpis přesunu. Počínaje prostředím AIR verze 1.5.3 je pro obnovené certifikáty vždy vyžadován podpis přesunu. Podpis přesunu lze použít pomocí „Příkaz migrate nástroje ADT“ na stránce 171, jak je uvedeno v části „Podepisování aktualizované verze aplikace AIR“ na stránce 197. Poznámka: Příkaz migrate nástroje ADT nelze použít u aplikací AIR pro stolní počítače, které zahrnují nativní rozšíření, protože tyto aplikace jsou zabaleny jako nativní instalátory a nikoli jako soubory s příponou AIR. Chcete-li změnit certifikáty pro aplikaci AIR pro stolní počítače, která zahrnuje nativní rozšíření, zabalte aplikaci pomocí „Příkaz package nástroje ADT“ na stránce 164 s příznakem -migrate. Změny identity aplikace Před vydáním verze prostředí AIR 1.5.3 se identita aplikace AIR změnila po instalaci aktualizace podepsané podpisem přesunu. Změna identity aplikace má mimo jiné tyto důsledky: • Nová verze aplikace nemůže získat přístup k datům ve stávajícím kódovaném lokálním úložišti. • Umístění adresáře ukládání aplikace se změní. Data ve starém umístění nejsou zkopírována do nového adresáře. (Nicméně nová aplikace může najít původní adresář na základě starého ID vydavatele). • Aplikace již nemůže otevřít místní připojení pomocí starého ID vydavatele. • Řetězec identity použitý pro přístup k aplikaci z webové stránky se změní. • Změní se specifikace OSID aplikace. (Specifikace OSID se používá při psaní vlastních instalačních a odinstalačních programů.) Při publikování aktualizace pomocí prostředí AIR 1.5.3 nebo novějšího se nemůže změnit identita aplikace. ID původní aplikace a vydavatele musí být uvedeno v deskriptoru aplikace aktualizačního souboru AIR. Jinak nebude nový balík rozpoznán jako aktualizace. Poslední aktualizace 31.8.2016 193 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR Poznámka: Při publikování nové aplikace AIR pomocí prostředí AIR verze 1.5.3 a novějších nesmí být určeno ID vydavatele. Terminologie Tato část poskytuje slovníček některých klíčových pojmů, kterým byste měli rozumět při rozhodování o způsobu podepsání své aplikace pro veřejnou distribuci. Pojem Popis Certifikační autorita (CA) Objekt v síti infrastruktury veřejných klíčů, který slouží jako důvěryhodná třetí strana a certifikuje totožnost vlastníka veřejného klíče. CA obvykle vydává digitální certifikáty podepsané jejím vlastním osobním klíčem a označuje tak, že ověřila totožnost držitele certifikátu. Prohlášení o postupech certifikátu (Certificate Practice Statement - CPS) Stanovuje postupy a zásady certifikační autority při vydávání a ověřování certifikátů. CPS je součástí smlouvy mezi CA a jejími odběrateli a souvisejícími stranami. Udává také postupy pro ověření totožnosti a úroveň zaručení nabízenou certifikátem, který autorita poskytuje. Seznam zrušených certifikátů (Certificate Revocation List - CRL) Seznam vydaných certifikátů, které byly zrušeny a nelze již na ně spoléhat. AIR zkontroluje CRL při podpisu aplikace AIR a dále při instalaci aplikace, jestliže není přítomna žádná časová známka. Řetězec certifikátu Řetězec certifikátu je sekvence certifikátů, kde je každý certifikát v řetězci podepsán dalším certifikátem. Digitální certifikát Digitální dokument obsahující informace o totožnosti majitele, veřejném klíči majitele a totožnosti certifikátu jako takového. Certifikát vydaný certifikační autoritou je podepsán certifikátem patřícím vydávající CA. Digitální podpis Kódovaná zpráva nebo souhrn, který lze dekódovat pouze pomocí veřejného klíče, poloviny dvojice veřejného a osobního klíče. V infrastruktuře veřejného klíče obsahuje digitální podpis jeden nebo více digitálních certifikátů, které lze dosledovat k certifikační autoritě. Digitální podpis lze použít k ověření, zda zpráva (nebo soubor počítače) nebyla od podpisu pozměněna (v rámci omezení zajištění poskytovaného použitým kryptografickým algoritmem) a, za předpokladu, že důvěřujete vydávající certifikační autoritě, k ověření totožnosti autora podpisu. Úložiště klíčů Databáze obsahující digitální certifikáty a v některých případech související osobní klíče. Java Cryptography Architecture (JCA) Rozšířitelná architektura pro správu a získání přístupu k úložištím klíčům. Více informací naleznete v Referenční příručka Java Cryptography Architecture. PKCS #11 Standard rozhraní kryptografické známky od RSA Laboratories. Úložiště klíčů založené na známce hardware. PKCS #12 Standard syntaxe pro výměnu osobních informací od RSA Laboratories. Úložiště klíčů vycházející ze souboru obvykle obsahující osobní klíč a jeho asociovaný digitální certifikát. Osobní klíč Osobní polovina z dvoudílného asymetrického kryptografického systému veřejného a osobního klíče. Osobní klíč je nutné uchovat v tajnosti a nikdy jej nepřenášet sítí. Digitálně podepsané zprávy jsou kódovány pomocí osobního klíče autorem podpisu. Veřejný klíč Veřejná polovina z dvoudílného asymetrického kryptografického systému veřejného a osobního klíče. Veřejný klíč je volně dostupný a používá se k dekódování zpráv kódovaných pomocí osobního klíče. Poslední aktualizace 31.8.2016 194 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR Pojem Popis Infrastruktura veřejného klíče (Public Key Infrastructure - PKI) Systém důvěry, kde certifikační autority ověřují totožnost majitelů veřejných klíčů. Klienti sítě se spoléhají na digitální certifikáty vydané důvěryhodnou CA pro ověření totožnosti autora podpisu digitální zprávy (nebo souboru). Časová známka Digitálně podepsaný údaj obsahující datum a čas, kdy došlo k události. ADT může do balíku AIR zahrnout časovou známku z časového serveru podléhajícího RFC 3161. Je-li časová známka k dispozici, použije ji AIR pro stanovení platnosti certifikátu v době podpisu. To umožňuje instalaci aplikace AIR po vypršení jejího certifikátu podpisu. Autorita časové známky Autorita, která vydává časové známky. Pro to, aby byla časová známka programem AIR rozpoznána, musí se shodovat s normou RFC 3161 a podpis časové známky musí provést zřetězení k důvěryhodnému kořenovému certifikátu v počítači instalace. Certifikáty iOS Podpisové certifikáty kódu vydané společností Apple slouží k podepisování aplikací iOS, včetně aplikací vyvinutých v prostředí Adobe AIR. Použití podpisu pomocí vývojového certifikátu společnosti Apple je nutné k instalaci aplikace do zkušebních zařízení. Použití podpisu pomocí distribučního certifikátu je vyžadováno pro distribuci dokončených aplikací. K podpisu aplikace vyžaduje program ADT přístup k oběma certifikátům podpisu kódu a k přidruženému soukromému klíči. Soubor certifikátu sám neobsahuje soukromý klíč. Je třeba vytvořit úložiště klíčů ve formátu souboru pro výměnu osobních informací (soubor s příponou P12 nebo PFX), který obsahuje certifikát i soukromý klíč. Další informace naleznete v tématu „Převod certifikátu pro vývojáře do souboru úložiště klíčů P12“ na stránce 195. Vytvoření podpisové žádosti certifikátu Chcete-li získat certifikát pro vývojáře, vytvořte soubor podpisové žádosti certifikátu, který odešlete na web Apple iOS Provisioning Portal. Proces podpisové žádosti certifikátu generuje dvojici veřejného a soukromého klíče. Soukromý klíč zůstane v počítači. Podpisovou žádost obsahující veřejný klíč a vaše identifikační údaje odešlete společnosti Apple, která zastává roli certifikační autority. Společnost Apple podepíše certifikát vlastním certifikátem World Wide Developer Relations. Vytvoření podpisové žádosti certifikátu v systému Mac OS V systému Mac OS můžete k vytvoření podpisové žádostí kódu použít aplikaci Keychain Access. Aplikace Keychain Access se nachází v podadresáři Utilities (Nástroje) adresáře Applications (Aplikace). Pokyny pro vytvoření podpisové žádosti certifikátu jsou k dispozici na webu Apple iOS Provisioning Portal. Vytvoření podpisové žádosti certifikátu v systému Windows Pro vývojáře pro systém Windows může být jednodušší získat certifikát vývojáře pro zařízení iPhone v počítači Macintosh. Získat certifikát je však možné i v počítači se systémem Windows. Nejdříve je třeba pomocí softwaru OpenSSL vytvořit podpisovou žádost certifikátu (soubor CSR): 1 Instalace softwaru OpenSSL v počítači se systémem Windows: (Přejděte na adresu http://www.openssl.org/related/binaries.html.) Je možné, že bude také třeba nainstalovat redistribuční soubory programu Visual C++ 2008 uvedené na stránce stažení softwaru Open SSL. (Nepotřebujete instalovat program Visual C++ do počítače.) 2 Otevřete příkazovou relaci systému Windows a pomocí příkazového řádku přejděte do složky bin softwaru OpenSSL (jako je například složka c:\OpenSSL\bin\). 3 Vytvořte soukromý klíč. Zadejte na příkazový řádek následující příkaz: Poslední aktualizace 31.8.2016 195 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR openssl genrsa -out mykey.key 2048 Uložte soubor s tímto soukromým klíčem. Použijete jej později. Při používání softwaru OpenSSL neignorujte chybové zprávy. I když software OpenSSL vygeneruje chybovou zprávu, může stále poskytovat soubory. Tyto soubory však nemusejí být použitelné. Pokud zjistíte chyby, zkontrolujte syntaxi a spusťte příkaz znovu. 4 Vytvořte soubor CSR. Zadejte na příkazový řádek následující příkaz: openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest "/[email protected], CN=John Doe, C=US" -subj Nahraďte hodnoty e-mailové adresy, CN (název certifikátu) a C (země) vlastními informacemi. 5 Odešlete soubor CSR společnosti Apple na web pro vývojáře pro zařízení iPhone. (Viz část „Použití certifikátu vývojáře pro zařízení iPhone a vytvoření prováděcího profilu“.) Převod certifikátu pro vývojáře do souboru úložiště klíčů P12 Chcete-li vytvořit úložiště klíčů P12, je nutné zkombinovat certifikát pro vývojáře společnosti Apple a přidružený soukromý klíč do jednoho souboru. Proces vytváření souboru úložiště klíčů závisí na metodě použité ke generování původní podpisové žádosti certifikátu a umístění úložiště soukromého klíče certifikátu. Převod certifikátu vývojáře pro zařízení iPhone na soubor P12 v systému Mac OS Po stažení certifikátu zařízení Apple iPhone od společnosti Apple certifikát jej exportujte do formátu úložiště klíčů P12. Postup v systému Mac® OS: 1 Otevřete aplikaci Keychain Access (ve složce Applications/Utilities (Aplikace/Nástroje)). 2 Pokud jste do aplikace Keychain dosud nepřidali certifikát, zvolte položku File (Soubor) > Import. Poté přejděte k souboru certifikátu (soubor .cer) získaného od společnosti Apple. 3 V aplikaci Keychain Access vyberte kategorii Keys (Klíče). 4 Vyberte soukromý klíč přiřazený vašemu vývojovému certifikátu pro zařízení iPhone. Soukromý klíč je označen na základě veřejného certifikátu iPhone Developer: <Jméno> <Příjmení>, s nímž je spárován. 5 Klikněte na certifikát pro vývojáře iPhone a vyberte možnost Exportovat „iPhone Developer: název...“. 6 Úložiště klíčů uložte do formátu souborů pro výměnu osobních informací (.p12). 7 Zobrazí se výzva k vytvoření hesla, které se používá při použití úložiště klíčů k podpisu aplikace nebo k převodu klíče a certifikátu v tomto úložišti klíčů do jiného úložiště klíčů. Převod certifikátu vývojáře od společnosti Apple do souboru P12 v systému Windows Chcete-li vyvíjet aplikace AIR pro aplikace iOS, je nutné použít soubor certifikátu P12. Tento certifikát vytvoříte na základě souboru certifikátu vývojáře pro zařízení Apple iPhone získaného od společnosti Apple. 1 Převeďte soubor certifikátu vývojáře od společnosti Apple na soubor certifikátu PEM. Spusťte ze složky bin softwaru OpenSSL následující příkaz příkazového řádku: openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM 2 Pokud používáte soukromý klíč z řetězce klíčů v počítači Macintosh, převeďte tento klíč na klíč PEM: openssl pkcs12 -nocerts -in mykey.p12 -out mykey.pem 3 Na základě tohoto klíče a verze PEM certifikátu vývojáře pro zařízení iPhone můžete nyní vygenerovat platný soubor P12: Poslední aktualizace 31.8.2016 196 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12 Pokud používáte klíč z řetězce klíčů systémů MacOS, použijte verzi PEM, kterou jste vygenerovali v předchozím kroku. V opačném případě použijte dříve vygenerovaný klíč OpenSSL (v systému Windows). Vytvoření nepodepsaného přechodného souboru AIR pomocí programu ADT K vytvoření nepodepsaného přechodného souboru AIR použijte příkaz -prepare. Přechodný soubor AIR musí být podepsán použitím příkazu programu ADT -sign pro vytvoření platného instalačního souboru AIR. Příkaz -prepare přebírá stejné příznaky a parametry jako příkaz -package (s výjimkou možností podpisu). Jediným rozdílem je to, že výstupní soubor není podepsaný. Přechodný soubor je vygenerován s příponou názvu souboru: airi. Pro podpis přechodného souboru AIR použijte příkaz programu ADT -sign. (Viz „Příkaz prepare nástroje ADT“ na stránce 170.) Ukázka příkazu ADT -prepare adt -prepare unsignedMyApp.airi myApp.xml myApp.swf components.swc Podpis přechodného souboru AIR pomocí programu ADT Pro podpis přechodného souboru AIR pomocí programu ADT použijte příkaz -sign. Příkaz podpisu je funkční pouze u přechodných souborů AIR (přípona airi). Soubor AIR nelze podepsat podruhé. Pro podpis přechodného souboru AIR použijte příkaz programu ADT -prepare. (Viz „Příkaz prepare nástroje ADT“ na stránce 170.) Podpis souboru AIRI ❖ Použijte příkaz ADT -sign s následující syntaxí: adt -sign SIGNING_OPTIONS airi_file air_file SIGNING_OPTIONS Možnosti podpisu určují osobní klíč a certifikát použitý k podepsání souboru AIR. Tyto možnosti podpisu jsou popsány v tématu „Možnosti podpisu kódu nástroje ADT“ na stránce 177. airi_file Cesta k nepodepsanému přechodnému souboru AIR, který musí být podepsán. air_file Název souboru AIR, který má být vytvořen. Ukázka příkazu ADT -sign adt -sign -storetype pkcs12 -keystore cert.p12 unsignedMyApp.airi myApp.air Další informace naleznete v tématu „Příkaz sign nástroje ADT“ na stránce 170. Poslední aktualizace 31.8.2016 197 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR Podepisování aktualizované verze aplikace AIR Pokaždé, když vytvoříte aktualizovanou verzi existující aplikace AIR, podepíšete aktualizovanou aplikaci. V nejlepším případě můžete k podpisu aktualizované verze použít stejný certifikát, který jste použili k podpisu předchozí verze. Pak je podepisování naprosto stejné, jako když aplikaci podepisujete poprvé. Pokud certifikátu použitému k podpisu předchozí verze aplikace vypršela platnost a byl obnoven nebo nahrazen, můžete k podpisu aktualizované verze použít obnovený nebo nový (náhradní) certifikát. Provedete to tak, že aplikaci podepíšete novým certifikátem a podpis přesunu použijete pomocí původního certifikátu. Podpis migrace ověří, že původní vlastník certifikátu publikoval aktualizaci. Před použitím podpisu migrace zvažte následující body: • Aby bylo možné použít podpis migrace, musí být původní certifikát dosud platný, nebo jeho platnost musela vypršet během posledních 365 dnů. Toto období je označováno jako období odkladu a jeho doba trvání se v budoucnu může změnit. Poznámka: Období odkladu bylo do vydání verze aplikace AIR 2.6 180 dní. • Podpis migrace nelze použít po vypršení platnosti certifikátu a uplynutí lhůty 365 dnů. V takovém případě musí uživatelé před instalací aktualizované verze odinstalovat stávající verzi. • Období odkladu trvající 365 dní se vztahuje pouze na aplikace, které ve jmenném prostoru deskriptoru aplikace uvádějí verzi prostředí AIR 1.5.3 nebo vyšší. Důležité: Podepisování aktualizací pomocí podpisů migrace z certifikátů s prošlou platností je dočasné řešení. Pro komplexní řešení vytvořte standardizovaný pracovní postup podepisování pro nasazení aktualizací aplikací. Jednotlivé aktualizace můžete například podepsat nejnovějším certifikátem a certifikát přesunu použít pomocí certifikátu použitého k podpisu předchozí aktualizace (pokud je to možné). Jednotlivé aktualizace odesílejte na jejich vlastní adresy URL, z nichž si uživatelé mohou stáhnout aplikaci. Další informace naleznete v části „Pracovní postup podepisování pro aktualizace aplikací“ na stránce 257. Následující tabulka a obrázek shrnují pracovní postup pro podpisy přesunu: Scénář Stav původního certifikátu Akce vývojáře Akce uživatele Aplikace založená na běhovém modulu Adobe AIR verze 1.5.3 nebo vyšší Platné Publikování nejnovější verze aplikace AIR Není požadována žádná akce Aplikace bude automaticky upgradována. Prošlý, ale v mezích období odkladu trvajícího 365 dní Podepište aplikaci novým certifikátem. Podpis přesunu použijte pomocí prošlého certifikátu. Není požadována žádná akce Platnost vypršela a není v období odkladu Podpis migrace nelze použít pro aktualizaci aplikace AIR. Odinstalujte aktuální verzi aplikace AIR a nainstalujte nejnovější verzi Místo toho je třeba publikovat jinou verzi aplikace AIR pomocí nového certifikátu. Po odinstalování stávající verze aplikace AIR mohou uživatelé instalovat novou verzi. Poslední aktualizace 31.8.2016 Aplikace bude automaticky upgradována. 198 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR Scénář Stav původního certifikátu Akce vývojáře Akce uživatele • Platné Publikování nejnovější verze aplikace AIR Není požadována žádná akce Aplikace založená na běhovém modulu Adobe AIR verze 1.5.2 nebo nižší • ID vydavatele v deskriptoru aplikace v aktualizaci se shoduje s ID vydavatele předchozí verze • Aplikace založená na běhovém modulu Adobe AIR verze 1.5.2 nebo nižší • ID vydavatele v deskriptoru aplikace v aktualizaci se neshoduje s ID vydavatele předchozí verze Aplikace bude automaticky upgradována. Platnost vypršela a není v období odkladu Podpis migrace nelze použít pro aktualizaci aplikace AIR. Místo toho je třeba publikovat jinou verzi aplikace AIR pomocí nového certifikátu. Po odinstalování stávající verze aplikace AIR mohou uživatelé instalovat novou verzi. Jakýkoli Podepište aplikaci AIR pomocí platného Odinstalujte aktuální verzi aplikace certifikátu a publikujte nejnovější verzi aplikace AIR a nainstalujte nejnovější verzi AIR 1.0 C1 AIR verze nižší než 1.5.3 Shoda s originální ID PUB? AIR verze 1.5.3 a vyšší Čistá instalace Platnost certifikátu vypršela? Ne 1.0 Ne C1 Odebrat Ano Ano 2.0 Platnost certifikátu vypršela? Ne Odinstalujte aktuální verzi aplikace AIR a nainstalujte nejnovější verzi Ano C2 Instalovat Doba vypršení platnost < 180 dnů? Ne Uživatel musí před instalací aktualizované verze odinstalovat starší verzi. Ano Publikovat aktualizaci Vytvořte aktualizovanou verzi vaší aplikace. Podepište aplikaci novým certifikátem C2. Použijte podpis migrace na aplikaci s původním certifikátem C1 pomocí příkazu adt -migrate. Legenda: 1.0 C1 2.0 C2 Původní aplikace Původní certifikát Nová aplikace Nový certifikát Pracovní postup podepisování pro aktualizace Poslední aktualizace 31.8.2016 199 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR Přesun aplikace AIR za účelem použití nového certifikátu Chcete-li přesunout aplikaci AIR k novému certifikátu a současně ji aktualizovat, postupujte takto: 1 Vytvořte aktualizaci své aplikace 2 Zabalte a podepište aktualizovaný soubor AIR pomocí certifikátu nový 3 Znovu podepište soubor AIR certifikátem původní pomocí příkazu -migrate Soubor AIR podepsaný pomocí příkazu -migrate lze použít nejen k aktualizaci libovolné předchozí verze aplikace podepsané starým certifikátem, ale i k instalaci nové verze. Poznámka: Při aktualizaci aplikace publikované pro prostředí AIR verze starší než 1.5.3 zadejte do deskriptoru aplikace původní ID vydavatele. V opačném případě musí uživatelé vaší aplikace před instalací aktualizace odinstalovat starší verzi. Použijte příkaz ADT -migrate s následující syntaxí: adt -migrate SIGNING_OPTIONS air_file_in air_file_out • SIGNING_OPTIONS Možnosti podpisu určují osobní klíč a certifikát použitý k podepsání souboru AIR. Tyto možnosti musí určovat původní certifikát podpisu a jsou popsány v tématu „Možnosti podpisu kódu nástroje ADT“ na stránce 177. • air_file_in Soubor AIR pro aktualizaci podepsaný novým certifikátem. • air_file_out Soubor AIR, který má být vytvořen. Poznámka: Názvy souborů používané pro vstupní a výstupní soubory aplikace AIR se musí lišit. Následující příklad uvádí použití podpisu přesunu na aktualizovanou verzi aplikace AIR voláním nástroje ADT s příznakem -migrate: adt -migrate -storetype pkcs12 -keystore cert.p12 myAppIn.air myApp.air Poznámka: Příkaz -migrate byl přidán do nástroje ADT ve verzi prostředí AIR 1.1. Přesun aplikace AIR nativního instalátoru za účelem použití nového certifikátu Aplikaci AIR, která je publikována jako nativní instalátor (např. aplikace, která využívá rozhraní API nativního rozšíření), nelze podepsat pomocí příkazu -migrate nástroje ADT, protože je to nativní aplikace specifická pro platformu, nikoli soubor s příponou AIR. Chcete-li přenést aplikaci AIR publikovanou jako nativní rozšíření k novému certifikátu, postupujte takto: 1 Vytvořte pro svou aplikaci aktualizaci. 2 Přesvědčte se, že tag <supportedProfiles> v souboru deskriptoru vaší aplikace (app.xml) obsahuje profil desktop i extendedDesktop (nebo tag <supportedProfiles> z deskriptoru aplikace odstraňte). 3 Zabalte a podepište aktualizaci aplikace jako soubor s příponou AIR pomocí příkazu -package nástroje ADT s novým certifikátem. 4 Na soubor s příponou AIR použijte pomocí příkazu -migrate nástroje ADT podpis přesunu s původním certifikátem (jak bylo popsáno dříve v části „Přesun aplikace AIR za účelem použití nového certifikátu“ na stránce 199). 5 Soubor s příponou AIR zabalte do nativního instalátoru pomocí příkazu -package nástroje ADT s příznakem target native. Aplikace je již podepsaná, a proto v tomto kroku neurčíte podpisový certifikát. Poslední aktualizace 31.8.2016 200 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR V následujícím příkladu jsou uvedeny kroky 3–5 tohoto postupu. Kód voláním nástroje ADT příkazem -package, příkazem -migrate a znovu příkazem -package zabalí aktualizovanou verzi aplikace AIR jako nativní instalátor: adt -package -storetype pkcs12 -keystore new_cert.p12 myAppUpdated.air myApp.xml myApp.swf adt -migrate -storetype pkcs12 -keystore original_cert.p12 myAppUpdated.air myAppMigrate.air adt -package -target native myApp.exe myAppMigrate.air Přenos aplikace AIR využívající nativní rozšíření za účelem použití nového certifikátu Aplikaci AIR, která používá nativní rozšíření, nelze podepsat příkazem -migrate nástroje ADT. Nelze ji ani přenést postupem pro přenos aplikace AIR nativního instalátoru, protože ji není možné publikovat jako přechodný soubor s příponou AIR. Chcete-li přenést aplikaci AIR, která používá nativní rozšíření, k novému certifikátu, postupujte takto: 1 Vytvořte pro svou aplikaci aktualizaci. 2 Nativní instalátor aktualizace zabalte a podepište pomocí příkazu -package nástroje ADT. Zabalte aplikaci s novým certifikátem a vložte příznak -migrate určující původní certifikát. Pomocí následující syntaxe volejte příkaz -package nástroje ADT s příznakem -migrate: adt -package AIR_SIGNING_OPTIONS -migrate MIGRATION_SIGNING_OPTIONS -target package_type NATIVE_SIGNING_OPTIONS output app_descriptor FILE_OPTIONS • AIR_SIGNING_OPTIONS Možnosti podpisu určují privátní klíč a certifikát pro podpis souboru AIR. Tyto možnosti určují nový podpisový certifikát a jsou popsány v části „Možnosti podpisu kódu nástroje ADT“ na stránce 177. • MIGRATION_SIGNING_OPTIONS Možnosti podpisu určují privátní klíč a certifikát pro podpis souboru AIR. Tyto možnosti určují původní podpisový certifikát a jsou popsány v části „Možnosti podpisu kódu nástroje ADT“ na stránce 177. • Ostatní možnosti jsou stejné jako možnosti použité při balení aplikace AIR nativního instalátoru a jsou popsány v části „Příkaz package nástroje ADT“ na stránce 164. Následující příklad demonstruje volání nástroje ADT příkazem -package s příznakem -migrate za účelem zabalení aktualizované verze aplikace AIR, která používá nativní rozšíření, a použití podpisu přenosu na tuto aktualizaci: adt -package -storetype pkcs12 -keystore new_cert.p12 -migrate -storetype pkcs12 -keystore original_cert.p12 -target native myApp.exe myApp.xml myApp.swf Poznámka: Příznak -migrate příkazu -package je k dispozici v nástroji ADT v prostředí AIR 3.6 a novějších. Vytvoření certifikátu s vlastním podpisem pomocí programu ADT Certifikáty s vlastním podpisem můžete použít k vytvoření platného instalačního souboru AIR. Certifikáty s vlastním podpisem ale nabízejí vašim uživatelům pouze omezené zabezpečení. Pravost certifikátů s vlastním podpisem nelze ověřit. Při instalaci souboru AIR s vlastním podpisem je informace o vydavateli zobrazena uživateli jako Neznámé. Certifikát vygenerovaný programem ADT je platný po dobu pěti let. Poslední aktualizace 31.8.2016 201 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Podepisování aplikací AIR Jestliže vytvoříte aktualizaci pro aplikaci AIR, která byla podepsána vámi vytvořeným certifikátem, musíte stejný certifikát použít k podepsání původních i aktualizovaných souborů AIR. Certifikáty vytvořené programem ADT jsou vždy jedinečné, i při použití stejných parametrů. Jestliže si proto přejete vámi podepsané aktualizace pomocí certifikátu vygenerovaného programem ADT, zachovejte původní certifikát v bezpečném umístění. Dále nebude možné aktualizovaný soubor AIR vytvořit po vypršení původního certifikátu vygenerovaného programem ADT. (Nové aplikace můžete publikovat s odlišným certifikátem, ale nikoliv však nové verze stejné aplikace.) Důležité: Z důvodů omezení certifikátů s vlastním podpisem společnost Adobe důrazně doporučuje používat pro podepisování veřejně dostupných aplikací AIR komerční certifikáty vydané uznávaným certifikačním úřadem. Certifikát a přiřazený osobní klíč vygenerovaný programem ADT jsou uloženy v souboru úložiště klíčů typu PKCS12. Určené heslo je nastaveno na samotném klíči, nikoliv na úložišti. Příklady vygenerování certifikátu adt -certificate -cn SelfSign -ou QE -o "Example, Co" -c US 2048-RSA newcert.p12 39#wnetx3tl adt -certificate -cn ADigitalID 1024-RSA SigningCert.p12 39#wnetx3tl Pro použití těchto certifikátů k podepsání souborů AIR použijte následující možnosti podpisu s příkazy programu ADT -package nebo -prepare: -storetype pkcs12 -keystore newcert.p12 -storepass 39#wnetx3tl -storetype pkcs12 -keystore SigningCert.p12 -storepass 39#wnetx3tl Poznámka: Jazyk Java verze 1.5 a vyšší nepřijímá hesla obsahující znaky high-ASCII pro ochranu souborů certifikátů PKCS12. V heslech používejte pouze běžné znaky ASCII. Poslední aktualizace 31.8.2016 202 Kapitola 14: Soubory deskriptorů aplikací AIR Každá aplikace AIR vyžaduje soubor deskriptoru. Soubor deskriptoru aplikace je dokument XML, který definuje základní vlastnosti aplikace. Řada vývojových prostředí podporujících aplikace AIR automaticky vygeneruje při vytvoření projektu deskriptor aplikace. V opačném případě je nutné vytvořit vlastní soubor deskriptoru. V adresáři samples sady AIR SDK i Flex SDK je umístěn vzorový soubor deskriptoru descriptor-sample.xml. Pro soubor deskriptoru aplikace lze použít libovolný název souboru. Po sbalení aplikace je soubor deskriptoru aplikace přejmenován na application.xml a umístěn do zvláštního adresáře uvnitř balíku AIR. Příklad deskriptoru aplikace Následující dokument deskriptoru aplikace nastaví základní vlastnosti používané většinou aplikací AIR: <?xml version="1.0" encoding="utf-8" ?> <application xmlns="http://ns.adobe.com/air/application/3.0"> <id>example.HelloWorld</id> <versionNumber>1.0.1</versionNumber> <filename>Hello World</filename> <name>Example Co. AIR Hello World</name> <description> <text xml:lang="en">This is an example.</text> <text xml:lang="fr">C'est un exemple.</text> <text xml:lang="es">Esto es un ejemplo.</text> </description> <copyright>Copyright (c) 2010 Example Co.</copyright> <initialWindow> <title>Hello World</title> <content> HelloWorld.swf </content> </initialWindow> <icon> <image16x16>icons/smallIcon.png</image16x16> <image32x32>icons/mediumIcon.png</image32x32> <image48x48>icons/bigIcon.png</image48x48> <image128x128>icons/biggerIcon.png</image128x128> </icon> </application> Jestliže aplikace používá jako kořenový obsah soubor HTML místo souboru SWF, liší se pouze element <content>: <content> HelloWorld.html </content> Poslední aktualizace 31.8.2016 203 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Změny deskriptoru aplikace Deskriptor aplikace AIR se změnil v následujících verzích prostředí AIR. Změny deskriptoru ve verzi AIR 1.1 Byla povolena lokalizace elementů aplikace name a description pomocí elementu text. Změny deskriptoru ve verzi AIR 1.5 Element contentType se stal povinným podřízeným prvkem elementu fileType. Změny deskriptoru ve verzi AIR 1.5.3 Byl přidán element publisherID, který v aplikacích umožňuje zadat hodnotu ID vydavatele. Změny deskriptoru ve verzi AIR 2.0 Přidáno: • aspectRatio • autoOrients • fullScreen • image29x29 (viz imageNxN) • image57x57 • image72x72 • image512x512 • iPhone • renderMode • supportedProfiles Změny deskriptoru ve verzi AIR 2.5 Odebráno: version Přidáno: • android • extensionID • extensions • image36x36 (viz imageNxN) • manifestAdditions • versionLabel • versionNumber Poslední aktualizace 31.8.2016 204 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Změny deskriptoru ve verzi AIR 2.6 Přidáno: • image114x114 (viz imageNxN) • requestedDisplayResolution • softKeyboardBehavior Změny deskriptoru ve verzi AIR 3.0 Přidáno: • colorDepth • direct jako platná hodnota elementu renderMode • renderMode již není ignorován u platforem stolních počítačů • Lze zadat element systému Android <uses-sdk>. (Předtím nebyl povolen.) Změny deskriptoru prostředí AIR 3.1 Přidáno: • „Entitlements“ na stránce 216 Změny deskriptoru ve verzi AIR 3.2 Přidáno: • depthAndStencil • supportedLanguages Změny deskriptoru ve verzi AIR 3.3 Přidáno: • aspectRatio nyní obsahuje možnost ANY. Změny deskriptoru prostředí AIR 3.4 Přidáno: • image50x50 (viz „imageNxN“ na stránce 223) • image58x58 (viz „imageNxN“ na stránce 223) • image100x100 (viz „imageNxN“ na stránce 223) • image1024x1024 (viz „imageNxN“ na stránce 223) Poslední aktualizace 31.8.2016 205 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Změny deskriptoru prostředí AIR 3.6 Přidáno: • Element „requestedDisplayResolution“ na stránce 233 v elementu „iPhone“ na stránce 227 nyní obsahuje atribut excludeDevices a umožňuje určit cílová zařízení se systémem iOS, která budou používat vysoké nebo standardní rozlišení • Nový element „requestedDisplayResolution“ na stránce 233v elementu „initialWindow“ na stránce 225 určuje, zda se má v počítačových platformách, jako je Mac s displejem s vysokým rozlišením, používat vysoké nebo standardní rozlišení Změny deskriptoru prostředí AIR 3.7 Přidáno: • Element „iPhone“ na stránce 227 nyní poskytuje element „externalSwfs“ na stránce 218, který umožňuje zadat seznam souborů SWF učených k načtení za běhu. • Element „iPhone“ na stránce 227 nyní poskytuje element „forceCPURenderModeForDevices“ na stránce 221, který umožňuje vynucení režimu vykreslování pomocí CPU v určené množině zařízení. Struktura souboru deskriptoru aplikace Soubor deskriptoru aplikace představuje dokument XML s následující strukturou: <application xmlns="http://ns.adobe.com/air/application/3.0"> <allowBrowserInvocation>...<allowBrowserInvocation> <android> <colorDepth>...</colorDepth> <manifestAdditions <manifest>...</manifest> ]]> </manifestAdditions </android> <copyright>...</copyright> customUpdateUI>...</ <description> <text xml:lang="...">...</text> </description> <extensions> <extensionID>...</extensionID> </extensions> <filename>...</filename> <fileTypes> <fileType> <contentType>...</contentType> <description>...</description> <extension>...</extension> <icon> <imageNxN>...</imageNxN> </icon> <name>...</name> </fileType> </fileTypes> Poslední aktualizace 31.8.2016 206 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR <icon> <imageNxN>...</imageNxN> </icon> <id>...</id> <initialWindow> <aspectRatio>...</aspectRatio> <autoOrients>...</autoOrients> <content>...</content> <depthAndStencil>...</depthAndStencil> <fullScreen>...</fullScreen> <height>...</height> <maximizable>...</maximizable> <maxSize>...</maxSize> <minimizable>...</minimizable> <minSize>...</minSize> <renderMode>...</renderMode> <requestedDisplayResolution>...</requestedDisplayResolution> <resizable>...</resizable> <softKeyboardBehavior>...</softKeyboardBehavior> <systemChrome>...</systemChrome> <title>...</title> <transparent>...</transparent> <visible>...</visible> <width>...</width> <x>...</x> <y>...</y> </initialWindow> <installFolder>...</installFolder> <iPhone> <Entitlements>...</Entitlements> <InfoAdditions>...</InfoAdditions> <requestedDisplayResolution>...</requestedDisplayResolution> <forceCPURenderModeForDevices>...</forceCPURenderModeForDevices> <externalSwfs>...</externalSwfs> </iPhone> <name> <text xml:lang="...">...</text> </name> <programMenuFolder>...</programMenuFolder> <publisherID>...</publisherID> <„supportedLanguages“ na stránce 235>...</„supportedLanguages“ na stránce 235> <supportedProfiles>...</supportedProfiles> <versionNumber>...</versionNumber> <versionLabel>...</versionLabel> </application> Elementy deskriptoru aplikace AIR Následující slovník elementů popisuje každý z povolených elementů v souboru deskriptoru aplikace AIR. Poslední aktualizace 31.8.2016 207 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR allowBrowserInvocation Prostředí Adobe AIR 1.0 a novější – volitelný Umožňuje detekci a spuštění aplikace prostřednictvím rozhraní API prostředí AIR v prohlížeči. Jestliže nastavíte tuto možnost na hodnotu true, určitě vezměte v úvahu dopady na zabezpečení. Ty jsou popsány v tématech Vyvolání aplikace AIR z prohlížeče (pro vývojáře používající jazyk ActionScript) a Vyvolání aplikace AIR z prohlížeče (pro vývojáře používající jazyk HTML). Další informace viz „Spuštění nainstalované aplikace AIR z prohlížeče“ na stránce 253. Nadřízený element:„application“ na stránce 208 Podřízené elementy: žádné Obsah true nebo false (výchozí) Příklad <allowBrowserInvocation>true </allowBrowserInvocation> android Prostředí Adobe AIR 2.5 a novější – volitelný Umožňuje přidat elementy do souboru manifestu systému Android. Prostředí AIR vytvoří soubor AndroidManifest.xml pro každý balíček APK. Element android v deskriptoru aplikace AIR umožňuje do něj přidat další položky. Ignorováno na všech platformách s výjimkou systému Android. Nadřízený element:„application“ na stránce 208 Podřízené elementy: • „colorDepth“ na stránce 212 • „manifestAdditions“ na stránce 228 Obsah Elementy definující vlastnosti specifické pro systém Android, které mají být přidány do manifestu aplikace pro systém Android. Příklad <android> <manifestAdditions> ... </manifestAdditions> </android> Další témata Nápovědy „Nastavení systému Android“ na stránce 73 Soubor AndroidManifest.xml Poslední aktualizace 31.8.2016 208 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR application Prostředí Adobe AIR 1.0 a novější – povinný Kořenový element dokumentu deskriptoru aplikace AIR. Nadřízený element: žádný Podřízené elementy: • „allowBrowserInvocation“ na stránce 207 • „android“ na stránce 207 • „copyright“ na stránce 214 • „customUpdateUI“ na stránce 214 • „description“ na stránce 215 • „extensions“ na stránce 217 • „filename“ na stránce 218 • „fileTypes“ na stránce 220 • „icon“ na stránce 222 • „id“ na stránce 223 • „initialWindow“ na stránce 225 • „installFolder“ na stránce 227 • „iPhone“ na stránce 227 • „name“ na stránce 231 • „programMenuFolder“ na stránce 232 • „publisherID“ na stránce 232 • „supportedLanguages“ na stránce 235 • „supportedProfiles“ na stránce 236 • „version“ na stránce 239 • „versionLabel“ na stránce 239 • „versionNumber“ na stránce 239 Atributy minimumPatchLevel – Minimální úroveň dočasné opravy běhového modulu AIR požadovaná touto aplikací. xmlns – Atribut jmenného prostoru XML určuje požadovanou verzi běhového modulu AIR pro aplikaci. Jmenný prostor se změní s každou hlavní verzí AIR (ale nikoliv s malými záplatami). Poslední část oboru názvů, například „3.0“, určuje verzi běhového modulu, kterou aplikace vyžaduje. Hodnoty xmlns pro hlavní verze prostředí AIR: Poslední aktualizace 31.8.2016 209 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR xmlns="http://ns.adobe.com/air/application/1.0" xmlns="http://ns.adobe.com/air/application/1.1" xmlns="http://ns.adobe.com/air/application/1.5" xmlns="http://ns.adobe.com/air/application/1.5.2" xmlns="http://ns.adobe.com/air/application/1.5.3" xmlns="http://ns.adobe.com/air/application/2.0" xmlns="http://ns.adobe.com/air/application/2.5" xmlns="http://ns.adobe.com/air/application/2.6" xmlns="http://ns.adobe.com/air/application/2.7" xmlns="http://ns.adobe.com/air/application/3.0" xmlns="http://ns.adobe.com/air/application/3.1" xmlns="http://ns.adobe.com/air/application/3.2" xmlns="http://ns.adobe.com/air/application/3,3" xmlns="http://ns.adobe.com/air/application/3.4" xmlns="http://ns.adobe.com/air/application/3.5" xmlns="http://ns.adobe.com/air/application/3.6" xmlns="http://ns.adobe.com/air/application/3.7" U aplikací založených na formátu SWF nastavuje maximální verzi formátu SWF, kterou lze načíst jako počáteční obsah aplikace, verze runtime aplikace AIR určená v deskriptoru aplikace. Aplikace, které mají nastaveny verze AIR 1.0 nebo AIR 1.1, mohou jako počáteční obsah využívat pouze formát SWF9 (Flash Player 9), a to dokonce i tehdy, když jsou spuštěny pomocí běhového modulu aplikace AIR 2. Aplikace, které mají nastavenu verzi AIR 1.5 (nebo novější), mohou jako počáteční obsah používat soubory ve formátu SWF9 nebo SWF10 (Flash Player 10). Verze formátu SWF určuje, která verze rozhraní API aplikací AIR nebo Flash Player je dostupná. Pokud je jako počáteční obsah aplikace AIR 1.5 použitý soubor ve formátu SWF9, bude mít tato aplikace přístup pouze k rozhraním API verzí AIR 1.1 a Flash Player 9. Kromě toho nebudou změny provedené ve stávajících rozhraních API v aplikacích AIR 2.0 a Flash Player 10.1 účinné. (Výjimkou z tohoto pravidla jsou důležité změny rozhraní API související se zabezpečením; tyto změny lze ve stávajících nebo budoucích opravách runtime používat i se zpětnou platností.) U aplikací založených na jazyku HTML určuje verzi aplikací AIR a Flash Player, které jsou pro aplikaci dostupné, pouze verze běhového modulu určená v deskriptoru aplikace. Chování jazyků HTML a JavaScript a stylů CSS je vždy určeno verzí knihovny Webkit, která je v nainstalovaném runtime aplikace AIR použita, a ne deskriptorem aplikace. Když aplikace AIR načítá obsah ve formátu SWF, závisí verze rozhraní API aplikací AIR a Flash Player na způsobu načítání obsahu. Někdy platnou verzi určuje jmenný prostor deskriptoru aplikace, někdy ji určuje verze načítaného obsahu a někdy ji určuje verze načteného obsahu. Následující tabulka ukazuje způsob, jakým je verze rozhraní API určena na základě metody načítání: Způsob načítání obsahu Způsob určení verze rozhraní API Počáteční obsah, aplikace založená na formátu SWF Verze formátu SWF načítaného souboru Počáteční obsah, aplikace založená na formátu HTML Obor názvů deskriptoru aplikace Soubor SWF načítaný obsahem SWF Verze načítajícího obsahu Knihovna SWF načtená obsahem HTML pomocí tagu <script> Obor názvů deskriptoru aplikace Soubor SWF načtený obsahem HTML pomocí rozhraní API aplikací AIR nebo Flash Player (například flash.display.Loader) Jmenný prostor deskriptoru aplikace Soubor SWF načtený obsahem HTML pomocí tagů <object> nebo <embed> (nebo ekvivalentních rozhraní API jazyka JavaScript) Verze formátu SWF načítaného souboru Poslední aktualizace 31.8.2016 210 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Při načítání souboru SWF, který má jinou verzi než načítající obsah, se mohou vyskytnout tyto dva problémy: • Načtení novější verze SWF starší verzí SWF – Odkazy na rozhraní API přidané v novějších verzích prostředí AIR a přehrávače Flash Player budou v načteném obsahu nevyřešené. • Načtení starší verze SWF novější verzí SWF – Rozhraní API přidaná v novějších verzích prostředí AIR a přehrávače Flash Player se mohou chovat způsobem, který není načteným obsahem očekáván. Obsah Element application obsahuje podřízené elementy, které definují vlastnosti aplikace AIR. Příklad <?xml version="1.0" encoding="utf-8" ?> <application xmlns="http://ns.adobe.com/air/application/3.0"> <id>HelloWorld</id> <version>2.0</version> <filename>Hello World</filename> <name>Example Co. AIR Hello World</name> <description> <text xml:lang="en">This is an example.</text> <text xml:lang="fr">C'est un exemple.</text> <text xml:lang="es">Esto es un ejemplo.</text> </description> <copyright>Copyright (c) 2010 Example Co.</copyright> <initialWindow> <title>Hello World</title> <content> HelloWorld.swf </content> <systemChrome>none</systemChrome> <transparent>true</transparent> <visible>true</visible> <minSize>320 240</minSize> </initialWindow> <installFolder>Example Co/Hello World</installFolder> <programMenuFolder>Example Co</programMenuFolder> <icon> <image16x16>icons/smallIcon.png</image16x16> <image32x32>icons/mediumIcon.png</image32x32> Poslední aktualizace 31.8.2016 211 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR <image48x48>icons/bigIcon.png</image48x48> <image128x128>icons/biggestIcon.png</image128x128> </icon> <customUpdateUI>true</customUpdateUI> <allowBrowserInvocation>false</allowBrowserInvocation> <fileTypes> <fileType> <name>adobe.VideoFile</name> <extension>avf</extension> <description>Adobe Video File</description> <contentType>application/vnd.adobe.video-file</contentType> <icon> <image16x16>icons/avfIcon_16.png</image16x16> <image32x32>icons/avfIcon_32.png</image32x32> <image48x48>icons/avfIcon_48.png</image48x48> <image128x128>icons/avfIcon_128.png</image128x128> </icon> </fileType> </fileTypes> </application> aspectRatio Adobe AIR 2.0 a novější, systém iOS a Android – volitelný Určuje poměr stran aplikace. Pokud není zadán, bude mít aplikace při otevření „přirozený“ poměr stran a orientaci příslušného zařízení. Přirozená orientace se v různých zařízeních liší. V zařízeních s malou obrazovkou, jako jsou telefony, je to obvykle orientace na výšku. V některých zařízeních, například v tabletu iPad, se aplikace otevře v aktuální orientaci. V prostředí AIR 3.3 a vyšším se tento postup vztahuje k celé aplikaci, nejen k počátečnímu zobrazení. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah na výšku, na ší ku nebo jakýkoli Příklad <aspectRatio> landscape</aspectRatio> autoOrients Adobe AIR 2.0 a novější, systém iOS a Android – volitelný Určuje, zda se orientace obsahu v aplikaci automaticky mění podle změny fyzické orientace zařízení. Další informace naleznete v tématu Orientace plochy. Při použití automatické orientace zvažte nastavení vlastností align a scaleMode objektu Stage na následující hodnoty: stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; Poslední aktualizace 31.8.2016 212 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Toto nastavení umožní aplikaci otáčení kolem levého horního rohu a zabrání automatickým změnám velikosti obsahu aplikace. Při jiných režimech změn velikosti jsou sice prováděny úpravy obsahu s cílem přizpůsobení rozměrům otočené plochy, dochází však také k oříznutí, deformaci nebo nadměrnému zmenšení obsahu. Lepších výsledků lze téměř vždy dosáhnout překreslením nebo samostatným přenesením obsahu. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah true nebo false (výchozí) Příklad <autoOrients>true </autoOrients> colorDepth Prostředí Adobe AIR 3 a novější – volitelné Určuje, zda se mají používat 16bitové nebo 32bitové barvy. Používání 16bitových barev může zvýšit rychlost vykreslování, avšak na úkor věrnosti barev. Před verzí AIR 3 se v systému Android vždy používaly 16bitové barvy. Ve verzi AIR 3 se standardně používají 32bitové barvy. Poznámka: Pokud vaše aplikace používá třídu StageVideo, je třeba používat 32bitové barvy. Nadřízený element:„android“ na stránce 207 Podřízené elementy: žádné Obsah Jedna z následujících hodnot: • 16 bitů • 32 bitů Příklad <android> <colorDepth>16bit</colorDepth> <manifestAdditions>...</manifestAdditions> </android> containsVideo Udává, zda aplikace bude obsahovat nějaký video obsah či nikoli. Nadřízený element:„android“ na stránce 207 Podřízené elementy: žádné Obsah Jedna z následujících hodnot: • true Poslední aktualizace 31.8.2016 213 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR • false Příklad <android> <containsVideo>true</containsVideo> <manifestAdditions>...</manifestAdditions> </android> content Prostředí Adobe AIR 1.0 a novější – povinný Hodnota určená pro elementcontent představuje adresu URL pro hlavní obsahový soubor aplikace. Může se jednat buď o soubor SWF nebo soubor HTML. URL je určena relativně ke kořeni instalační složky aplikace. (Při spuštění aplikace AIR s programem ADL je URL relativní ke složce obsahující soubor deskriptoru aplikace. Parametr rootdir programu ADL můžete použít pro určení odlišného kořenového adresáře.) Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah Adresa URL relativní k adresáři aplikace. Vzhledem k tomu, že hodnota elementu obsahu je zpracovávána jako URL, musí být znaky v názvu obsahového souboru kódovány dle URL podle pravidel definovaných v RFC 1738. Znaky mezer musí být například kódovány jako %20. Příklad <content>TravelPlanner.swf </content> contentType Prostředí Adobe AIR 1.0 až 1.1 – volitelný; prostředí AIR 1.5 a novější – povinný Element contentType je vyžadován od verze AIR 1.5 (ve verzích AIR 1.0 a 1.1 byl volitelný). Tato vlastnost pomáhá některým operačním systémům vyhledat nejvhodnější aplikaci k otevření souboru. Tato hodnota by měla označovat typ MIME obsahu souboru. Upozorňujeme, že pokud je v systému Linux tento typ souboru již zaregistrován a má přiřazený typ MIME, je tato hodnota ignorována. Nadřízený element:„fileType“ na stránce 219 Podřízené elementy: žádné Obsah Typ a podtyp MIME. Další informace o typech MIME naleznete v dokumentu RFC2045. Příklad <contentType> text/plain</contentType> Poslední aktualizace 31.8.2016 214 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR copyright Prostředí Adobe AIR 1.0 a novější – volitelný Informace o autorských právech pro aplikaci AIR. V OS Mac se text autorských práv pro nainstalovanou aplikaci zobrazí v dialogovém okně Adobe. V OS Mac je informace o autorských právech také použita v poli NSHumanReadableCopyright v souboru Info.plist aplikace. Nadřízený element:„application“ na stránce 208 Podřízené elementy: žádné Obsah Řetězec obsahující informace o autorských právech aplikace. Příklad <copyright>© 2010, Examples, Inc.All rights reserved. </copyright> customUpdateUI Prostředí Adobe AIR 1.0 a novější – volitelný Označuje, zda bude aplikace poskytovat vlastní aktualizační dialogová okna. Je-li nastavena hodnota false, prostředí AIR uživateli nabídne standardní aktualizační dialogy. Integrovaný aktualizační systém prostředí AIR mohou používat pouze aplikace distribuované jako soubory AIR. Jestliže má nainstalovaná verze vaší aplikace element customUpdateUI nastavený na hodnotu true a uživatel poklepe na soubor AIR pro novou verzi nebo nainstaluje aktualizaci aplikace pomocí funkce hladké instalace, otevře runtime nainstalovanou verzi aplikace. Runtime neotevře výchozí instalační program aplikace AIR. Logika vaší aplikace může poté určit, jak s operací aktualizace pokračovat. (ID aplikace a ID vydavatele v souboru AIR musí odpovídat hodnotám v nainstalované aplikaci, aby mohla aktualizace pokračovat.) Poznámka: Mechanismus customUpdateUI je k dispozici pouze tehdy, když je aplikace již nainstalována a uživatel poklepe na instalační soubor AIR obsahující aktualizace nebo nainstaluje aktualizaci aplikace pomocí funkce hladké instalace. Aktualizaci můžete stáhnout a spustit pomocí logiky své vlastní aplikace, která dle potřeby zobrazí vaše uživatelské UI, ať je customUpdateUI nastaveno na hodnotu true nebo nikoliv. Další informace naleznete v části „Aktualizace aplikací AIR“ na stránce 255. Nadřízený element:„application“ na stránce 208 Podřízené elementy: žádné Obsah true nebo false (výchozí) Příklad <customUpdateUI> true</customUpdateUI> Poslední aktualizace 31.8.2016 215 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR depthAndStencil Prostředí Adobe AIR 3.2 a novější – volitelný Označuje, že aplikace vyžaduje použití vyrovnávací paměti pro hloubku nebo pro šablonu. Tyto vyrovnávací paměti se běžně používají při práci s 3D obsahem. Hodnota tohoto elementu je ve výchozím nastavení false, takže je vyrovnávací paměť pro hloubku a šablonu zakázána. Tento element je nezbytný, protože vyrovnávací paměti musí být přiděleny při spuštění aplikace před načtením jakéhokoli obsahu. Nastavení tohoto elementu musí odpovídat hodnotě předané pro argument enableDepthAndStencil metodě Context3D.configureBackBuffer(). Pokud hodnota neodpovídá, aplikace AIR zobrazí chybu. Tento element je použitelný, pouze pokud má atribut renderMode hodnotu direct. Pokud se atribut nerovná hodnotě direct, aplikace ADT vyvolá chybu 118: <depthAndStencil> element unexpected for render mode cpu. It requires "direct" render mode. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah true nebo false (výchozí) Příklad <depthAndStencil> true</depthAndStencil> description Prostředí Adobe AIR 1.0 a novější – volitelný Popis aplikace zobrazený v instalátoru aplikace AIR. Jestliže určíte jediný textový uzel (nikoliv více elementů text), použije instalátor aplikace AIR tento popis, a to bez ohledu na jazyk systému. V opačném případě použije instalátor aplikace AIR popis, který nejvíce odpovídá jazyku uživatelskému rozhraní operačního systému uživatele. Představme si například instalaci, kde element description souboru deskriptoru aplikace zahrnuje hodnotu pro místní nastavení „en“ (angličtina). Instalátor aplikace AIR použije popis „en“, jestliže operační systém identifikuje „en“ (angličtina) jako jazyk uživatelského rozhraní. Popis „en“ použije také v případě, že jazyk uživatelského systému jazyka je en-US (americká angličtina). Pokud je však jazyk uživatelského rozhraní systému en-US a soubor deskriptoru aplikace definuje název en-US i en-GB, instalátor aplikace AIR použije hodnotu en-US. Jestliže aplikace nedefinuje žádný popis, který by odpovídal jazyku uživatelského rozhraní systému, použije instalátor aplikace AIR první hodnotu description definovanou v souboru deskriptoru aplikace. Další informace týkající se vyvíjení vícejazyčných aplikací naleznete v tématu „Lokalizace aplikací AIR“ na stránce 290. Nadřízený element:„application“ na stránce 208 Podřízené elementy:„text“ na stránce 237 Obsah Schéma deskriptoru aplikace AIR 1.0 umožňuje pouze jeden jednoduchý textový uzel, který bude pro název definován (nikoliv více elementů text). Poslední aktualizace 31.8.2016 216 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR V aplikaci AIR 1.1 (nebo novějších) můžete v elementu description určit více jazyků. Atribut xml:lang pro každý textový element určuje jazykový kód, dle definice v RFC4646 (http://www.ietf.org/rfc/rfc4646.txt). Příklad Popis s jednoduchým textovým uzlem: <description>This is a sample AIR application.</description> Popis s lokalizovanými elementy text pro angličtinu, francouzštinu a španělštinu (platné ve verzi AIR 1.1 a novějších): <description> <text xml:lang="en">This is an example.</text> <text xml:lang="fr">C'est un exemple.</text> <text xml:lang="es">Esto es un ejemplo.</text> </description> description Prostředí Adobe AIR 1.0 a novější – povinný Popis typu souboru, který uživateli zobrazí operační systém. Popis typu souboru není lokalizovatelný. Viz také: „description“ na stránce 215 jako podřízený element elementu application Nadřízený element:„fileType“ na stránce 219 Podřízené elementy: žádné Obsah Řetězec popisující obsah souboru. Příklad <description> PNG image</description> Entitlements Adobe AIR 3.1 a novější – pouze systém iOS, volitelný Systém iOS používá vlastnosti zvané entitlements (oprávnění), aby zajistil přístup aplikací k dalším prostředkům a funkcím. Element Entitlements slouží k určení těchto informací v mobilní aplikaci systému iOS. Nadřazený element:„iPhone“ na stránce 227 Podřízené elementy: elementy Entitlements.plist systému iOS Obsah Obsahuje podřízené elementy určující dvojice klíč-hodnota, které budou použity jako nastavení Entitlements.plist pro aplikaci. Obsah elementu Entitlements musí být uzavřen v bloku CDATA. Další informace naleznete v příručce Reference klíčů oprávnění v knihovně pro vývojáře systému iOS. Poslední aktualizace 31.8.2016 217 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Příklad <iphone> ... <Entitlements> <![CDATA[ <key>aps-environment</key> <string>development</string> ]]> </Entitlements> </iphone> extension Prostředí Adobe AIR 1.0 a novější – povinný Řetězec přípony u typu souboru. Nadřízený element:„fileType“ na stránce 219 Podřízené elementy: žádné Obsah Řetězec identifikující znaky přípony souboru (bez tečky, „.“). Příklad <extension> png</extension> extensionID Adobe AIR 2.5 a novější Určuje ID rozšíření jazyka ActionScript, jež aplikace používá. ID je definováno v dokumentu deskriptoru rozšíření. Nadřízený element:„extensions“ na stránce 217 Podřízené elementy: žádné Obsah Řetězec určující ID rozšíření jazyka ActionScript. Příklad <extensionID> com.example.extendedFeature</extensionID> extensions Adobe AIR 2.5 a novější – volitelné Určuje rozšíření jazyka ActionScript, jež aplikace používá. Nadřízený element:„application“ na stránce 208 Podřízené elementy:„extensionID“ na stránce 217 Poslední aktualizace 31.8.2016 218 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Obsah Podřízené elementy extensionID obsahující identifikátory rozšíření jazyka ActionScript ze souboru deskriptoru rozšíření. Příklad <extensions> <extensionID>extension.first</extensionID> <extensionID>extension.next</extensionID> <extensionID>extension.last</extensionID> </extensions> externalSwfs Prostředí Adobe AIR 3.7 a novější, pouze systém iOS – volitelný Určuje název textového souboru se seznamem souborů SWF, které má nástroj ADT konfigurovat pro vzdálené hostování. Počáteční velikost stahované aplikace je možné minimalizovat zabalením podmnožiny souborů SWF, které tato aplikace používá, a načtením zbývajících externích souborů SWF (obsahujících pouze datové zdroje) za běhu pomocí metody Loader.load(). Abyste mohli tuto funkci použít, musíte aplikaci zabalit tak, aby nástroj ADT přesunul všechen kód ABC (ActionScript ByteCode) z externě načtených souborů SWF do hlavního souboru SWF aplikace a ponechal soubor SWF, který obsahuje pouze datové zdroje. Účelem tohoto postupu je vyhovět pravidlu obchodu Apple Store, které zakazuje stahování jakéhokoli kódu po instalaci aplikace. Další informace naleznete v části „Minimalizace velikosti stahovaného obsahu načítáním externích souborů SWF obsahujících pouze datové zdroje“ na stránce 83. Nadřazený element:„iPhone“ na stránce 227, „initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah Název textového souboru obsahujícího seznam souborů SWF oddělených řádky, které mají být vzdáleně hostovány. Atributy: Žádné Příklady iOS: <iPhone> <externalSwfs>FileContainingListofSWFs.txt</externalSwfs> </iPhone> filename Prostředí Adobe AIR 1.0 a novější – povinný Řetězec, který bude použit jako název souboru aplikace (bez přípony) při její instalaci. Soubor aplikace spustí aplikaci AIR v běhovém modulu. Jestliže není zadána žádná hodnota name, hodnota filename se použije také jako název složky instalace. Nadřízený element:„application“ na stránce 208 Poslední aktualizace 31.8.2016 219 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Podřízené elementy: žádné Obsah Vlastnost filename může obsahovat jakýkoliv znak Unicode (UTF-8), s výjimkou následujících, které nemohou být v různých systémech použity jako názvy souborů: Znak Hexadecimální kód různé 0x00 – x1F * x2A “ x22 : x3A > x3C < x3E ? x3F \ x5C | x7C Hodnota filename nemůže skončit v období. Příklad <filename> MyApplication</filename> fileType Prostředí Adobe AIR 1.0 a novější – volitelný Popisuje jediný typ souboru, pro který lze aplikaci zaregistrovat. Nadřízený element:„fileTypes“ na stránce 220 Podřízené elementy: • „contentType“ na stránce 213 • „description“ na stránce 216 • „extension“ na stránce 217 • „icon“ na stránce 222 • „name“ na stránce 232 Obsah Elementy popisující typ souboru. Poslední aktualizace 31.8.2016 220 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Příklad <fileType> <name>foo.example</name> <extension>foo</extension> <description>Example file type</description> <contentType>text/plain</contentType> <icon> <image16x16>icons/fooIcon16.png</image16x16> <image48x48>icons/fooIcon48.png</imge48x48> <icon> </fileType> fileTypes Prostředí Adobe AIR 1.0 a novější – volitelný Element fileTypes vám umožňuje deklarovat typy souborů, se kterými lze aplikaci AIR asociovat. Při nainstalování aplikace AIR je v operačním systému zaregistrován jakýkoliv deklarovaný typ souboru. Jestliže tyto typy souborů ještě nejsou asociovány s jinou aplikací, jsou asociovány s aplikací AIR. Pro potlačení stávající asociace mezi typem souboru a jinou aplikací použijte metodu NativeApplication.setAsDefaultApplication() v době běhu (nejlépe se svolením uživatele). Poznámka: Metody runtime mohou pouze spravovat asociace pro typy souborů deklarované v deskriptoru aplikace. Element fileTypes je volitelný. Nadřízený element:„application“ na stránce 208 Podřízené elementy:„fileType“ na stránce 219 Obsah Element fileTypes může obsahovat libovolný počet elementů fileType. Příklad <fileTypes> <fileType> <name>adobe.VideoFile</name> <extension>avf</extension> <description>Adobe Video File</description> <contentType>application/vnd.adobe.video-file</contentType> <icon> <image16x16>icons/AIRApp_16.png</image16x16> <image32x32>icons/AIRApp_32.png</image32x32> <image48x48>icons/AIRApp_48.png</image48x48> <image128x128>icons/AIRApp_128.png</image128x128> </icon> </fileType> </fileTypes> Poslední aktualizace 31.8.2016 221 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR forceCPURenderModeForDevices Prostředí Adobe AIR 3.7 a novější, pouze systém iOS – volitelný V určené množině zařízení vynutí režim vykreslování pomocí CPU. Tato funkce fakticky umožňuje selektivní povolování režimu vykreslování pomocí CPU u zbývajících zařízení se systémem iOS. Tento tag přidáte jako podřízený prvek tagu iPhone a určíte seznam názvů modelů zařízení oddělených mezerami. Mezi platné názvy modelů zařízení patří tyto položky: iPad1,1 iPhone1,1 iPod1,1 iPad2,1 iPhone1,2 iPod2,1 iPad2,2 iPhone2,1 iPod3,3 iPad2,3 iPhone3.1 iPod4,1 iPad2,4 iPhone3,2 iPod5,1 iPad2,5 iPhone4,1 iPad3,1 iPhone5,1 iPad3,2 iPad3,3 iPad3,4 Nadřazený element:„iPhone“ na stránce 227, „initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah Seznam názvů modelů zařízení oddělených mezerami Atributy: Žádné Příklady iOS: ... <renderMode>GPU</renderMode> ... <iPhone> ... <forceCPURenderModeForDevices>iPad1,1 iPhone1,1 iPhone1,2 iPod1,1 </forceCPURenderModeForDevices> </iPhone> fullScreen Adobe AIR 2.0 a novější, systém iOS a Android – volitelný Určuje, zda se aplikace spustí v celoobrazovkovém režimu. Poslední aktualizace 31.8.2016 222 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah true nebo false (výchozí) Příklad <fullscreen>true </fullscreen> height Prostředí Adobe AIR 1.0 a novější – volitelný Počáteční výška hlavního okna aplikace. Pokud výšku nenastavíte, je určena podle nastavení v kořenovém souboru SWF nebo (v případě aplikace AIR v jazyce HTML) podle operačního systému. Maximální výška okna se ve verzi AIR 2 změnila z 2 048 na 4 096 obrazových bodů. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah Kladné celé číslo s maximální hodnotou 4 095. Příklad <height>4095 </height> icon Prostředí Adobe AIR 1.0 a novější – volitelný Vlastnost icon určuje jeden nebo více souborů ikon, které budou pro aplikaci použity. Zahrnutí ikony je volitelné. Jestliže neurčíte vlastnosticon, zobrazí operační systém výchozí ikonu. Určená cesta je relativní ke kořenovému adresáři aplikace. Soubory ikon musí být ve formátu PNG. Můžete určit všechny z následujících velikostí ikon: Jestliže je přítomen element pro danou velikost, musí mít obraz v souboru přesnou velikost odpovídající zadané velikosti. Jestliže nejsou poskytnuty všechny velikosti, změní se nejbližší velikost tak, aby odpovídala danému použití ikony operačním systémem. Poznámka: Určené ikony nejsou automaticky přidány do balíku AIR. Soubory ikon musí být při zabalení aplikace obsaženy ve svých příslušných relativních umístěních. Pro dosažení nejlepších výsledků poskytněte pro každou z dostupných velikostí obraz. Mimo to se ujistěte, že ikony vypadají reprezentativně v 16- i 32-bitových barevných režimech. Nadřízený element:„application“ na stránce 208 Podřízené elementy:„imageNxN“ na stránce 223 Poslední aktualizace 31.8.2016 223 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Obsah Element imageNxN pro každou požadovanou velikost ikony. Příklad <icon> <image16x16>icons/smallIcon.png</image16x16> <image32x32>icons/mediumIcon.png</image32x32> <image48x48>icons/bigIcon.png</image48x48> <image128x128>icons/biggestIcon.png</image128x128> </icon> id Prostředí Adobe AIR 1.0 a novější – povinný Řetězec identifikátoru pro danou aplikaci, který je označován jako ID aplikace. Často se používá identifikátor v obráceném stylu DNS, ale tento styl není vyžadován. Nadřízený element:„application“ na stránce 208 Podřízené elementy: žádné Obsah Hodnota ID je omezena na následující znaky: • 0–9 • a–z • A–Z • . (tečka) • - (pomlčka) Hodnota musí obsahovat 1 až 212 znaků. Tento element je vyžadován. Příklad <id>org.example.application</id> imageNxN Prostředí Adobe AIR 1.0 a novější – volitelný Definuje cestu k ikoně relativně vzhledem k adresáři aplikace. Lze použít následující obrazy ikon, přičemž každá určuje odlišnou velikost ikony: • image16x16 • image29x29 (AIR 2+) • image32x32 • image36x36 (AIR 2.5+) • image48x48 • image50x50 (AIR 3.4+) Poslední aktualizace 31.8.2016 224 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR • image57x57 (AIR 2+) • image58x58 (AIR 3.4+) • image72x72 (AIR 2+) • image100x100 (AIR 3.4+) • image114x114 (AIR 2.6+) • image128x128 • image144x144 (AIR 3.4+) • image512x512 (AIR 2+) • image1024x1024 (AIR 3.4+) Ikonu musí představovat grafika PNG, jejíž velikost přesně odpovídá velikosti indikované elementem image. Soubory ikon musejí být součástí balíčku aplikace; ikony uvedené v dokumentu deskriptoru aplikace nebudou zahrnuty automaticky. Nadřízený element:„application“ na stránce 208 Podřízené elementy: žádné Obsah Cesta k souboru ikony může obsahovat jakýkoli znak Unicode (UTF-8) s výjimkou následujících, které nemohou být v různých systémech použity jako názvy souborů: Znak Hexadecimální kód různé 0x00 – x1F * x2A “ x22 : x3A > x3C < x3E ? x3F \ x5C | x7C Příklad <image32x32>icons/icon32.png</image32x32> InfoAdditions Prostředí Adobe AIR 1.0 a novější – volitelný Umožňuje určení dalších vlastností aplikace systému iOS. Nadřazený element:„iPhone“ na stránce 227 Podřízené elementy: elementy Info.plist systému iOS Poslední aktualizace 31.8.2016 225 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Obsah Obsahuje podřízené elementy určující páry klíčových hodnot, které se mají použít jako nastavení Info.plist pro danou aplikaci. Obsah elementu InfoAdditions by měl být uzavřen v bloku CDATA. Nahlédněte do příručky Information Property List Key Reference (Referenční informace ke klíčům seznamů informačních vlastností) v knihovně Apple iPhone Reference Library, kde naleznete páry klíčových hodnot a způsob jejich vyjádření v jazyce XML. Příklad <InfoAdditions> <![CDATA[ <key>UIStatusBarStyle</key> <string>UIStatusBarStyleBlackOpaque</string> <key>UIRequiresPersistentWiFi</key> <string>NO</string> ]]> </InfoAdditions> Další témata Nápovědy „Nastavení systému iOS“ na stránce 79 initialWindow Prostředí Adobe AIR 1.0 a novější – povinný Definuje hlavní soubor obsahu a počáteční vzhled aplikace. Nadřízený element:„application“ na stránce 208 Podřízené elementy: Jako podřízené elementy elementu initialWindow se mohou objevit všechny následující elementy. V závislosti na tom, zda prostředí AIR podporuje na platformě okna, jsou však některé elementy ignorovány: Element Stolní počítač Mobilní zařízení „aspectRatio“ na stránce 211 ignorován používán „autoOrients“ na stránce 211 ignorován používán „content“ na stránce 213 používán používán „depthAndStencil“ na stránce 215 používán používán „fullScreen“ na stránce 221 ignorován používán „height“ na stránce 222 používán ignorován „maximizable“ na stránce 229 používán ignorován „maxSize“ na stránce 230 používán ignorován „minimizable“ na stránce 230 používán ignorován „minSize“ na stránce 230 používán ignorován Poslední aktualizace 31.8.2016 226 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Element Stolní počítač Mobilní zařízení „renderMode“ na stránce 233 Používán (AIR 3.0 a vyšší) používán „requestedDisplayResolutio n“ na stránce 233 Používá se (AIR 3.6 a vyšší) ignorován „resizable“ na stránce 235 používán ignorován „softKeyboardBehavior“ na stránce 235 ignorován používán „systemChrome“ na stránce 237 používán ignorován „title“ na stránce 238 používán ignorován „transparent“ na stránce 238 používán ignorován „visible“ na stránce 240 používán ignorován „width“ na stránce 240 používán ignorován „x“ na stránce 241 používán ignorován „y“ na stránce 241 používán ignorován Obsah Podřízené elementy definující vzhled a chování aplikace. Příklad <initialWindow> <title>Hello World</title> <content> HelloWorld.swf </content> <depthAndStencil>true</depthAndStencil> <systemChrome>none</systemChrome> <transparent>true</transparent> <visible>true</visible> <maxSize>1024 800</maxSize> <minSize>320 240</minSize> <maximizable>false</maximizable> <minimizable>false</minimizable> <resizable>true</resizable> <x>20</x> <y>20</y> <height>600</height> <width>800</width> <aspectRatio>landscape</aspectRatio> <autoOrients>true</autoOrients> <fullScreen>false</fullScreen> <renderMode>direct</renderMode> </initialWindow> Poslední aktualizace 31.8.2016 227 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR installFolder Prostředí Adobe AIR 1.0 a novější – volitelný Určuje podadresář výchozího instalačního adresáře. V OS Windows je výchozím podadresářem instalace adresář Program Files. V OS Mac se jedná o adresář /Applications. V systému Linux je to adresář /opt/. Jestliže je například vlastnost installFolder nastavena na "Acme" a aplikace má název "ExampleApp", pak je v systému Windows aplikace nainstalována do umístění C:\Program Files\Acme\ExampleApp, v systému Mac OS do umístění /Applications/Acme/Example.app a v systému Linux do umístění /opt/Acme/ExampleApp. Vlastnost installFolder je volitelná. Jestliže neurčíte žádnou vlastnost installFolder, je aplikace nainstalovaná do podadresáře výchozího adresáře instalace, na základě vlastnosti name. Nadřízený element:„application“ na stránce 208 Podřízené elementy: žádné Obsah Vlastnost installFolder může obsahovat libovolný znak Unicode (UTF-8) s výjimkou těch, které nesmějí být v různých systémech použity jako názvy složek (seznam výjimek viz vlastnost filename). Jestliže chcete určit vnořený podadresář, použijte jako oddělovač adresářů znak lomítka (/). Příklad <installFolder>utilities/toolA</installFolder> iPhone Adobe AIR 2.0, pouze systém iOS – volitelný Definuje vlastnosti aplikace specifické pro systém iOS. Nadřízený element:„application“ na stránce 208 Podřízené elementy: • „Entitlements“ na stránce 216 • „externalSwfs“ na stránce 218 • „forceCPURenderModeForDevices“ na stránce 221 • „InfoAdditions“ na stránce 224 • „requestedDisplayResolution“ na stránce 233 Další témata Nápovědy „Nastavení systému iOS“ na stránce 79 manifest Prostředí Adobe AIR 2.5 a novější, pouze systém Android – volitelný Určuje informace, které mají být pro danou aplikaci přidány do souboru manifestu systému Android. Poslední aktualizace 31.8.2016 228 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Nadřízený element:„manifestAdditions“ na stránce 228 Podřízené elementy: Definované sadou Android SDK. Obsah Element manifest není technicky vzato součástí schématu deskriptoru aplikace AIR. Je to kořen dokumentu XML manifestu systému Android. Jakýkoliv obsah, který umístíte do elementu manifest, musí odpovídat schématu AndroidManifest.xml. Při generování souboru APK pomocí nástrojů prostředí AIR se informace v elementu manifest zkopírují do odpovídající části vygenerovaného souboru AndroidManifest.xml dané aplikace. Zadáte-li manifestované hodnoty systému Android, které jsou k dispozici pouze v novější verzi sady SDK, než jakou přímo podporuje prostředí AIR, potom je nutné při sbalení aplikace nastavit příznak -platformsdk na hodnotu ADT. Nastavte příznak cesty k systému souborů na takovou verzi sady Android SDK, která podporuje přidávané hodnoty. Samotný element manifest musí být v deskriptoru aplikace AIR uzavřen do bloku CDATA. Příklad <![CDATA[ <manifest android:sharedUserID="1001"> <uses-permission android:name="android.permission.CAMERA"/> <uses-feature android:required="false" android:name="android.hardware.camera"/> <application android:allowClearUserData="true" android:enabled="true" android:persistent="true"/> </manifest> ]]> Další témata Nápovědy „Nastavení systému Android“ na stránce 73 Soubor AndroidManifest.xml manifestAdditions Prostředí Adobe AIR 2.5 a novější, pouze systém Android Určuje informace, které mají být přidány do souboru manifestu systému Android. Každá aplikace pro systém Android obsahuje soubor manifestu, který definuje její základní vlastnosti. Koncept manifestu systému Android se podobá deskriptoru aplikace AIR. Aplikace AIR pro systém Android obsahuje deskriptor aplikace i automaticky generovaný soubor manifestu systému Android. Při balení aplikace AIR pro systém Android se informace v tomto elementu manifestAdditions přidají do odpovídajících částí dokumentu manifestu systému Android. Nadřízený element:„android“ na stránce 207 Podřízené elementy:„manifest“ na stránce 227 Obsah Informace v elementu manifestAdditions budou přidány do dokumentu XML AndroidManifest. Prostředí AIR nastaví v generovaném dokumentu manifestu systému Android několik položek, které zajistí správné fungování této aplikace a běhového modulu. Nemůžete přepsat následující nastavení: Poslední aktualizace 31.8.2016 229 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Nemůžete nastavit následující atributy elementu manifest: • package • android:versionCode • android:versionName Nemůžete nastavit následující atributy hlavního elementu activity: • android:label • android:icon Nemůžete nastavit následující atributy elementu application: • android:theme • android:name • android:label • android:windowSoftInputMode • android:configChanges • android:screenOrientation • android:launchMode Příklad <manifestAdditions> <![CDATA[ <manifest android:installLocation="preferExternal"> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowClearUserData="true" android:enabled="true" android:persistent="true"/> </manifest> ]]> </manifestAdditions> Další témata Nápovědy „Nastavení systému Android“ na stránce 73 Soubor AndroidManifest.xml maximizable Prostředí Adobe AIR 1.0 a novější – volitelný Určuje, zda lze okno maximalizovat. Poznámka: V operačním systému, například OS Mac X, kde je maximalizace oken operací změny velikosti, musí být elementy maximalizace i změny velikosti nastaveny na hodnotu false, aby se zabránilo zvětšení nebo změně velikosti okna. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Poslední aktualizace 31.8.2016 230 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Obsah true (výchozí) nebo false Příklad <maximizable>false </maximizable> maxSize Prostředí Adobe AIR 1.0 a novější – volitelný Maximální velikost okna. Pokud nenastavíte maximální velikost, určí se podle operačního systému. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah Dvě celá čísla představující maximální šířku a výšku, oddělená mezerou. Poznámka: Maximální velikost okna podporovaná prostředím AIR se ve verzi AIR 2 zvýšila z 2048x2048 na 4096x4096 obrazových bodů. (Protože souřadnice obrazovky začínají hodnotou nula, maximální hodnota použitelná pro šířku nebo výšku je 4095.) Příklad <maxSize>1024 360</maxSize> minimizable Prostředí Adobe AIR 1.0 a novější – volitelný Určuje, zda lze okno minimalizovat. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah true (výchozí) nebo false Příklad <minimizable>false</minimizable> minSize Prostředí Adobe AIR 1.0 a novější – volitelný Určuje minimální povolenou velikost okna. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Poslední aktualizace 31.8.2016 231 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Obsah Dvě celá čísla představující minimální šířku a výšku, oddělená mezerou. Mějte na paměti, že před hodnotou nastavenou v deskriptoru aplikace má přednost minimální velikost vynucovaná operačním systémem. Příklad <minSize>120 60</minSize> name Prostředí Adobe AIR 1.0 a novější – volitelný Název aplikace zobrazovaný instalátorem aplikace AIR. Jestliže není určen žádný element name, instalátor aplikace AIR jako název aplikace zobrazí element filename. Nadřízený element:„application“ na stránce 208 Podřízené elementy:„text“ na stránce 237 Obsah Jestliže určíte jediný textový uzel (namísto více elementů<text>), použije instalátor aplikace AIR tento název, a to bez ohledu na jazyk systému. Schéma deskriptoru aplikace AIR 1.0 umožňuje jako název definovat pouze jeden jednoduchý textový uzel (nikoliv více elementů text). V aplikaci AIR 1.1 (nebo novějších) můžete v elementu name určit více jazyků. Atribut xml:lang pro každý textový element určuje jazykový kód, dle definice v RFC4646 (http://www.ietf.org/rfc/rfc4646.txt). Instalátor aplikace AIR používá název, který nejvíce odpovídá jazyku uživatelskému rozhranní operačního systému uživatele. Vezměte například v úvahu instalaci, kde element name souboru deskriptoru aplikace zahrnuje hodnotu pro místní nastavení „en“ (angličtina). Instalátor aplikace AIR používá název „en“, jestliže operační systém identifikuje „en“ (angličtina) jako jazyk uživatelského rozhraní. Název „en“ také používá, jestliže jazyk uživatelského systému jazyka je en-US (Americká angličtina). Nicméně pokud je rozhraní uživatelského jazyka en-US a soubor deskriptoru aplikace definuje název en-US i en-GB, poté instalátor aplikace AIR používá hodnotu en-US. Jestliže aplikace nedefinuje žádný název, který odpovídá jazykům uživatelského rozhraní systému, používá instalátor aplikace AIR první hodnotu name definovanou v souboru deskriptoru aplikace. Element name definuje pouze název aplikace používaný v instalátoru aplikace AIR. Instalátor aplikace AIR podporuje více jazyků: tradiční čínštinu, zjednodušenou čínštinu, češtinu, nizozemštinu, angličtinu, francouzštinu, němčinu, italštinu, japonštinu, korejštinu, polštinu, brazilskou portugalštinu, ruštinu, španělštinu, švédštinu a turečtinu. Instalátor aplikace AIR zvolí svůj zobrazený jazyk (pro jiný text než titul a popis aplikace) na základě jazyka uživatelského rozhraní systému. Tento výběr jazyka nezávisí na nastavení v souboru deskriptoru aplikace. Element name nedefinuje místní nastavení dostupné pro spuštěnou a nainstalovanou aplikaci. Podrobnosti o vyvíjení vícejazyčných aplikací naleznete v tématu „Lokalizace aplikací AIR“ na stránce 290. Příklad V následujícím příkladu je název definován pomocí jednoduchého textového uzlu: <name>Test Application</name> V následujícím příkladu, platném ve verzi AIR 1.1 a novějších, je název zadán ve třech jazycích (angličtině, francouzštině a španělštině) pomocí uzlů elementu <text>: Poslední aktualizace 31.8.2016 232 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR <name> <text xml:lang="en">Hello AIR</text> <text xml:lang="fr">Bonjour AIR</text> <text xml:lang="es">Hola AIR</text> </name> name Prostředí Adobe AIR 1.0 a novější – povinný Určuje název typu souboru. Nadřízený element:„fileType“ na stránce 219 Podřízené elementy: žádné Obsah Řetězec představující název typu souboru. Příklad <name>adobe.VideoFile</name> programMenuFolder Prostředí Adobe AIR 1.0 a novější – volitelný Určuje umístění, kam budou umístěny zástupci aplikace v nabídce Všechny programy operačního systému Windows nebo v nabídce aplikací systému Linux. (Toto nastavení je aktuálně v jiných operačních systémech ignorováno.) Nadřízený element:„application“ na stránce 208 Podřízené elementy: žádné Obsah Řetězec použitý pro hodnotu programMenuFolder může obsahovat libovolný znak Unicode (UTF-8) s výjimkou těch, které nesmějí být v různých systémech použity jako názvy složek (seznam výjimek viz element filename). Jako poslední znak této hodnoty nepoužívejte znak lomítka (/). Příklad <programMenuFolder>Example Company/Sample Application</programMenuFolder> publisherID Prostředí Adobe AIR 1.5.3 a novější – volitelný Určuje ID vydavatele pro aktualizaci aplikace AIR původně vytvořené v prostředí AIR verze 1.5.2 nebo starší. ID vydavatele zadejte pouze při vytváření aktualizace aplikace. Hodnota elementu publisherID musí odpovídat ID vydavatele generovanému prostředím AIR pro dřívější verzi aplikace. U nainstalované aplikace lze ID vydavatele nalézt ve složce, ve které je aplikace nainstalována, a to v souboru META-INF/AIR/publisherid. Nové aplikace vytvořené pomocí prostředí AIR 1.5.3 nebo novějšího by neměly ID vydavatele uvádět. Poslední aktualizace 31.8.2016 233 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Další informace naleznete v části „O identifikátorech vydavatele AIR“ na stránce 188. Nadřízený element:„application“ na stránce 208 Podřízené elementy: žádné Obsah Řetězec ID vydavatele. Příklad <publisherID>B146A943FBD637B68C334022D304CEA226D129B4.1</publisherID> renderMode Prostředí Adobe AIR 2.0 a novější – volitelný Určuje, zda se má použít akcelerace prostřednictvím grafického procesoru (GPU), pokud je v aktuálním výpočetním zařízení podporován. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah Jedna z následujících hodnot: • auto (výchozí) – Aktuálně přechází do režimu CPU. • cpu – Hardwarová akcelerace se nepoužívá. • direct – kompozice vykreslení se probíhá v procesoru, bitový blokový přenos používá GPU. Dostupné ve verzi AIR 3+. Poznámka: Aby bylo možné využít akceleraci obsahu Flash pomocí GPU v prostředí AIR pro mobilní platformy, společnost Adobe doporučuje, abyste použili volbu renderMode="direct" (tzn. Stage3D) a nikoli renderMode="gpu". Společnost Adobe oficiálně podporuje a doporučuje tato prostředí založená na rozhraní Stage3D – Starling (2D) a Away3D (3D). Podrobnější informace o rozhraní Stage3D a prostředí Starling/Away3D naleznete na webu http://gaming.adobe.com/getstarted/. • gpu – Hardwarová akcelerace se používá, pokud je k dispozici. Důležité: Nepoužívejte režim vykreslení GPU pro aplikace Flex. Příklad <renderMode>direct</renderMode> requestedDisplayResolution Adobe AIR 2.6 a novější, pouze iOS; Adobe AIR 3.6 a novější, OS X – volitelně Určuje, zda bude aplikace vyžadovat použití standardního nebo vysokého rozlišení v zařízení nebo monitoru počítače s obrazovkou s vysokým rozlišením. Při nastavení hodnoty standard (výchozí) se obrazovka bude aplikaci jevit jako obrazovka se standardním rozlišením. Při nastavení hodnoty high může aplikace adresovat jednotlivé obrazové body vysokého rozlišení. Poslední aktualizace 31.8.2016 234 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Pokud má například toto nastavení u obrazovky zařízení iPhone s vysokým rozlišením 640x960 hodnotu standard, rozměry plochy přes celou obrazovku budou 320x480 a každý obrazový bod aplikace se vykreslí čtyřmi obrazovými body obrazovky. Pokud má nastavení hodnotu high, rozměry plochy přes celou obrazovku budou 640x960. U zařízení s obrazovkou se standardním rozlišením budou rozměry plochy odpovídat rozměrům obrazovky bez ohledu na použité nastavení. Pokud je element requestedDisplayResolution vnořený v elementu iPhone, vztahuje se na zařízení se systémem iOS. V takovém případě lze pomocí atributu excludeDevices určit zařízení, na která se toto nastavení nebude vztahovat. Pokud je element requestedDisplayResolution vnořený v elementu initialWindow, vztahuje se na aplikace AIR pro stolní počítače v počítačích MacBook Pro, které podporují displeje s vysokým rozlišením. Zadaná hodnota platí pro všechna nativní okna používaná v aplikaci. Vnoření elementu requestedDisplayResolution do elementu initialWindow je podporováno v prostředí AIR 3.6 a novějších. Nadřazený element:„iPhone“ na stránce 227, „initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah Buď standard (výchozí), nebo high Atribut: excludeDevices – seznam názvů modelů nebo předpon názvů modelů se systémem iOS oddělených mezerami. Umožňuje vývojářům určit, aby některá zařízení používala vysoké rozlišení a ostatní standardní rozlišení. Tento atribut je k dispozici pouze v systému iOS (element requestedDisplayResolution je vnořený v elementu iPhone). Atribut excludeDevices je k dispozici v prostředí AIR 3.6 a novějších. U všech zařízení, jejichž název modelu je uveden v tomto atributu, je hodnota elementu requestedDisplayResolution opakem zadané hodnoty. Jinými slovy, pokud má element requestedDisplayResolution hodnotu high, vyloučená zařízení budou používat standardní rozlišení. Pokud má element requestedDisplayResolution hodnotu standard, vyloučená zařízení budou používat vysoké rozlišení. Hodnotami jsou názvy modelů nebo předpony názvů modelů zařízení se systémem iOS. Například hodnota iPad3,1 se vztahuje konkrétně k tabletu iPad 3. generace pro sítě Wi-Fi (nikoli na tablety iPad 3. generace pro sítě GSM nebo CDMA). Hodnota iPad3 se pak vztahuje k libovolnému tabletu iPad 3. generace. Neoficiální seznam názvů modelů se systémem iOS je k dispozici na stránce modelů serveru the iPhone wiki. Příklady Stolní počítač: <initialWindow> <requestedDisplayResolution>high</requestedDisplayResolution> </initialWindow> iOS: <iPhone> <requestedDisplayResolution excludeDevices="iPad3 iPad4">high</requestedDisplayResolution> </iPhone> Poslední aktualizace 31.8.2016 235 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR resizable Prostředí Adobe AIR 1.0 a novější – volitelný Určuje, zda lze změnit velikost okna. Poznámka: V operačním systému, například OS Mac X, kde je maximalizace oken operací změny velikosti, musí být elementy maximalizace i změny velikosti nastaveny na hodnotu false, aby se zabránilo zvětšení nebo změně velikosti okna. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: Obsah true (výchozí) nebo false Příklad <resizable>false</resizable> softKeyboardBehavior Prostředí Adobe AIR 2.6 a novější, mobilní profil – volitelný Určuje výchozí chování aplikace při zobrazení virtuální klávesnice. Výchozí chování je posunutí aplikace nahoru. Běhový modul drží na obrazovce textové pole nebo interaktivní objekt s fokusem. Pokud aplikace neposkytuje vlastní logiku chování při zobrazení klávesnice, použijte možnost pan. Automatické chování můžete také vypnout, a to nastavením elementu softKeyboardBehavior na hodnotu none. V tomto případě textová pole a interaktivní objekty odešlou při aktivaci softwarové klávesnice objekt SoftKeyboardEvent, ale běhový modul aplikaci neposune ani nezmění její velikost. Za udržení oblasti pro zadání textu ve viditelném postavení zodpovídá příslušná aplikace. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah Buď none, nebo pan. Výchozí hodnota je pan. Příklad <softKeyboardBehavior>none</softKeyboardBehavior> Další témata Nápovědy SoftKeyboardEvent supportedLanguages Adobe AIR 3.2 a novější –·volitelné Identifikuje jazyky, které aplikace podporuje. Tento element využívá pouze systém iOS, což je vázaný běhový modul Mac, a aplikace Android. Ostatní typy aplikací tento element ignorují. Poslední aktualizace 31.8.2016 236 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Nezadáte-li tento element, potom balíčkovač v závislosti na typu aplikace automaticky provede následující akce: • iOS – všech jazyků podporovaných běhovým modulem AIR je v obchodě s aplikacemi Apple iOS uvedeno jako podporované jazyky aplikací. • Vázaný běhový modul Mac – aplikace zabalená pomocí kaptivního balíčku neobsahuje informace o lokalizaci. • Android – balíček aplikací má zdroje pro všechny jazyky podporované běhovým modulem AIR. Nadřízený element:„application“ na stránce 208 Podřízené elementy: žádné Obsah Seznam podporovaných jazyků, které jsou odděleny mezerou. Platné hodnoty jazyků jsou hodnoty ISO 639-1 pro jazyky podporované běhovým modulem AIR: en, de, es, fr, it, ja, ko, pt, ru, cs, nl, pl, sv, tr, zh. Chybí-li hodnota elementu <supportedLanguages>, balíčkovač vygeneruje chybu. Poznámka: Lokalizované tagy (například tag názvu) ignorují hodnotu jazyka, pokud použijete tag <supportedLanguages>, který tento jazyk neobsahuje. Pokud nativní přípona obsahuje zdroje pro jazyk, které tag <supportedLangauges> nespecifikuje, zobrazí se upozornění a zdroje jsou pro tento jazyk ignorovány. Příklad <supportedLanguages>en ja fr es</supportedLanguages> supportedProfiles Prostředí Adobe AIR 2.0 a novější – volitelný Identifikuje profily podporované pro aplikaci. Nadřízený element:„application“ na stránce 208 Podřízené elementy: žádné Obsah Do elementu supportedProfiles lze zahrnout kteroukoli z následujících hodnot: • desktop – Profil pro stolní počítače je určen pro aplikace AIR, které jsou instalovány ve stolním počítači pomocí souboru AIR. Tyto aplikace nemají přístup k třídě NativeProcess (která zajišťuje komunikaci s nativními aplikacemi). • extendedDesktop – Rozšířený profil pro stolní počítače je určen pro aplikace AIR, které jsou instalovány ve stolním počítači pomocí instalátoru nativní aplikace. Tyto aplikace mají přístup ke třídě NativeProcess (která zajišťuje komunikaci s nativními aplikacemi). • mobileDevice – Profil pro mobilní zařízení je určen pro mobilní aplikace. • extendedMobileDevice – Rozšířený profil mobilního zařízení se momentálně nepoužívá. Vlastnost supportedProfiles je volitelná. Pokud tento element do souboru deskriptoru aplikace nezahrnete, bude možné aplikaci zkompilovat a implementovat pro libovolný profil. Chcete-li učit více profilů, oddělte je znakem mezery. Následující nastavení například určuje, že aplikace je dostupná pouze v profilech stolního počítače a v rozšířených profilech: <supportedProfiles>desktop extendedDesktop</supportedProfiles> Poslední aktualizace 31.8.2016 237 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Poznámka: Jestliže spustíte aplikaci pomocí programu ADL a neurčíte hodnotu pro možnost -profile programu ADL, bude použit první profil v deskriptoru aplikace. (Jestliže nejsou určeny žádné profily ani v deskriptoru aplikace, bude použit profil desktop.) Příklad <supportedProfiles>desktop mobileDevice</supportedProfiles> Další témata Nápovědy „Profily zařízení“ na stránce 242 „Podporované profily“ na stránce 72 systemChrome Prostředí Adobe AIR 1.0 a novější – volitelný Určuje, zda je počáteční okno aplikace vytvořeno se standardním záhlavím, ohraničením a ovládacími prvky, které poskytuje operační systém. Nastavení systémového chrómu nelze změnit za běhu. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah Jedna z následujících hodnot: • none – Není k dispozici žádný systémový chróm. Za zobrazení chrómu okna zodpovídá daná aplikace (nebo aplikační modul, jako je Flex). • standard (výchozí) – Systémový chróm je poskytován operačním systémem. Příklad <systemChrome>standard</systemChrome> text Prostředí Adobe AIR 1.1 a novější – volitelný Uvádí lokalizovaný řetězec. Atribut xml:lang elementu text určuje kód jazyka dle definice v dokumentu RFC4646 (http://www.ietf.org/rfc/rfc4646.txt). Instalátor aplikace AIR použije element text s hodnotou atributu xml:lang, která nejlépe odpovídá jazyku uživatelského rozhraní operačního systému uživatele. Představme si například instalaci, kde element text zahrnuje hodnotu pro místní nastavení „en“ (angličtina). Instalátor aplikace AIR používá název „en“, jestliže operační systém identifikuje „en“ (angličtina) jako jazyk uživatelského rozhraní. Název „en“ také používá, jestliže jazyk uživatelského systému jazyka je en-US (Americká angličtina). Pokud je však jazyk uživatelského rozhraní en-US a soubor deskriptoru aplikace definuje název en-US i en-GB, instalátor aplikace AIR použije hodnotu en-US. Poslední aktualizace 31.8.2016 238 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Jestliže aplikace nedefinuje žádný element text, který by odpovídal jazykům uživatelského rozhraní systému, použije instalátor aplikace AIR první hodnotu name definovanou v souboru deskriptoru aplikace. Nadřízené elementy: • „name“ na stránce 231 • „description“ na stránce 215 Podřízené elementy: žádné Obsah Atribut xml:lang určuje národní prostředí a řetězec lokalizovaného textu. Příklad <text xml:lang="fr">Bonjour AIR</text> title Prostředí Adobe AIR 1.0 a novější – volitelný Určuje název zobrazovaný v záhlaví počátečního okna aplikace. Název se zobrazí, pouze pokud je element systemChrome nastaven na hodnotu standard. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah Řetězec obsahující název okna. Příklad <title>Example Window Title</title> transparent Prostředí Adobe AIR 1.0 a novější – volitelný Určuje, zda u počátečního okna aplikace dojde k prolnutí alfa s plochou. Okno s povolenou průhledností se může vykreslovat pomaleji a vyžadovat více paměti. Nastavení průhlednosti nelze provést za běhu. Důležité: Atribut transparent můžete pouze nastavit na hodnotu true, pokud je systemChrome nastaveno na hodnotu none. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah true nebo false (výchozí) Poslední aktualizace 31.8.2016 239 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Příklad <transparent>true</transparent> version Prostředí Adobe AIR 1.0 až 2.0 – povinný; nepovoleno v prostředí AIR 2.5 a novějších Určuje informaci o verzi aplikace. Řetězec verze je aplikací definovaný oddělovač. Aplikace AIR řetězec verze žádným způsobem neinterpretuje. Proto se nepředpokládá, že verze „3.0“ je aktuálnější než verze „2.0“. Příklady: "1.0", ".4", "0.5", "4.9", "1.3.4a". V prostředí AIR 2.5 a novějších je element version nahrazen elementy versionNumber a versionLabel. Nadřízený element:„application“ na stránce 208 Podřízené elementy: žádné Obsah Řetězec obsahující verzi aplikace. Příklad <version>0.1 Alpha</version> versionLabel Prostředí Adobe AIR 2.5 a novější – volitelný Uvádí popisný řetězec verze. Hodnota popisku verze se zobrazí v dialogových oknech instalace namísto hodnoty elementu versionNumber. Pokud element versionLabel není použit, bude pro obě hodnoty použit element versionNumber. Nadřízený element:„application“ na stránce 208 Podřízené elementy: žádné Obsah Řetězec obsahující veřejně zobrazovaný text verze. Příklad <versionLabel>0.9 Beta</versionlabel> versionNumber Prostředí Adobe AIR 2.5 a novější – povinný Číslo verze aplikace. Nadřízený element:„application“ na stránce 208 Podřízené elementy: žádné Poslední aktualizace 31.8.2016 240 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Obsah Číslo verze může obsahovat posloupnost až tři celých čísel oddělených tečkami. Každé z těchto celých čísel musí být v rozsahu 0 až 999 (včetně). Příklady <versionNumber>1.0.657</versionNumber> <versionNumber>10</versionNumber> <versionNumber>0.01</versionNumber> visible Prostředí Adobe AIR 1.0 a novější – volitelný Určuje, zda je počáteční okno aplikace viditelné hned po vytvoření. Okna prostředí AIR, včetně počátečního, se ve výchozím nastavení vytvářejí v neviditelném stavu. Okno můžete zobrazit voláním metody activate() objektu NativeWindow nebo nastavením vlastnosti visible na hodnotu true. Zpočátku si můžete přát ponechat hlavní okno skryté, takže změny polohy okna, velikosti okna a rozvržení jeho obsahu se nezobrazí. Komponenta Flex mx:WindowedApplication automaticky zobrazí a aktivuje okno bezprostředně před odesláním události applicationComplete, pokud není atribut visible v definici MXML nastaven na hodnotu false. U zařízení s mobilním profilem, které nepodporuje okna, se nastavení vlastnosti visible ignoruje. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah true nebo false (výchozí) Příklad <visible>true</visible> width Prostředí Adobe AIR 1.0 a novější – volitelný Počáteční šířka hlavního okna aplikace. Pokud šířku nenastavíte, je určena podle nastavení v kořenovém souboru SWF nebo (v případě aplikace AIR v jazyce HTML) podle operačního systému. Maximální šířka okna se ve verzi AIR 2 změnila z 2 048 na 4 096 obrazových bodů. Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah Kladné celé číslo s maximální hodnotou 4 095. Poslední aktualizace 31.8.2016 241 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Soubory deskriptorů aplikací AIR Příklad <width>1024</width> x Prostředí Adobe AIR 1.0 a novější – volitelný Vodorovné umístění počátečního okna aplikace. Ve většině případů je vhodnější nechat určit počáteční pozici okna operačním systémem a nepřiřazovat pevnou hodnotu. Počátek systému souřadnic obrazovky (0,0) se nachází v levém horním rohu obrazovky hlavní plochy (jak je určena operačním systémem). Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah Celočíselná hodnota. Příklad <x>120</x> y Prostředí Adobe AIR 1.0 a novější – volitelný Svislé umístění počátečního okna aplikace. Ve většině případů je vhodnější nechat určit počáteční pozici okna operačním systémem a nepřiřazovat pevnou hodnotu. Počátek systému souřadnic obrazovky (0,0) se nachází v levém horním rohu obrazovky hlavní plochy (jak je určena operačním systémem). Nadřízený element:„initialWindow“ na stránce 225 Podřízené elementy: žádné Obsah Celočíselná hodnota. Příklad <y>250</y> Poslední aktualizace 31.8.2016 242 Kapitola 15: Profily zařízení Prostředí Adobe AIR 2 a novější Profily představují mechanismus k definování tříd výpočetních zařízení, na kterých aplikace pracují. Profil definuje sadu rozhraní API a možnosti, jež jsou obvykle podporovány v určité třídě zařízení. K dostupným profilům patří: • Stolní počítač • Rozšířený profil pro stolní počítače • Mobilní zařízení • Rozšířené mobilní zařízení Profil aplikace můžete definovat v jejím deskriptoru. Uživatelé počítačů a zařízení daných profilů budou moci danou aplikaci nainstalovat, uživatelé ostatních počítačů a zařízení nikoli. Pokud například zahrnete do deskriptoru aplikace pouze profil stolního počítače, uživatelé budou moci aplikaci nainstalovat a spouštět pouze ve stolních počítačích. Uvedete-li profil, který aplikace ve skutečnosti nepodporuje, nebude se uživatelům v takovém prostředí pravděpodobně pracovat příjemně. Jestliže nezadáte do deskriptoru aplikace žádný profil, prostředí AIR vaši aplikaci nebude omezovat. Aplikaci můžete zabalit do libovolného podporovaného formátu, který budou moci nainstalovat uživatelé zařízení bez ohledu na profil – v běhovém prostředí však aplikace nemusí pracovat správně. Pokud je to možné, budou při zabalení aplikace vynucena omezení profilu. Jestliže například zahrnete pouze rozšířený profil pro stolní počítače, nelze aplikaci zabalit jako soubor AIR, ale pouze jako nativní instalační program. Podobně v případě, že nezahrnete profil mobilního zařízení, nelze vytvořit aplikaci zabalit do formátu Android APK. Jedno výpočetní zařízení může podporovat více profilů. Například prostředí AIR ve stolních počítačích podporuje aplikace profilu stolního počítače i rozšířeného profilu pro stolní počítače. Aplikace rozšířeného profilu pro stolní počítače však může komunikovat s nativními procesy a MUSÍ být zabalena jako nativní instalační program (soubor EXE, DMG, DEB nebo RPM). Aplikace profilu stolního počítače naopak nemůže komunikovat s nativními procesy. Aplikaci profilu stolního počítače lze sbalit jako soubor AIR nebo jako nativní instalační program. Zařazení funkce do profilu označuje, že podpora této funkce je běžná ve třídě zařízení, pro kterou je profil definován. Neznamená však, že každé zařízení v profilu podporuje všechny funkce. Většina mobilních telefonů například obsahuje akcelerometr, neplatí to ale pro všechny. Třídy a funkce, které nemají všeobecnou podporu, obvykle mají booleovskou vlastnost, kterou můžete před použitím dané funkce zkontrolovat. V případě akcelerometru můžete například otestovat statickou vlastnost Accelerometer.isSupported a zjistit tak, zda aktuální zařízení obsahuje podporovaný akcelerometr. Aplikaci AIR lze pomocí elementu supportedProfiles v deskriptoru přiřadit následující profily: Desktop Profil stolního počítače definuje sadu schopností pro aplikace AIR, které se instalují do stolního počítače jako soubory AIR. Tyto aplikace se instalují a spouští v podporovaných platformách stolních počítačů (Mac OS, Windows a Linux). Aplikace AIR vyvinuté ve starších verzích AIR než je AIR 2 mohou být považovány za vytvořené v profilu pro stolní počítače. Některá rozhraní API nejsou v tomto profilu funkční. Aplikace pro stolní počítače například nemohou komunikovat s nativními procesy. Rozšířený profil pro stolní počítače Rozšířený profil pro stolní počítače definuje sadu schopností pro aplikace AIR, které jsou zabaleny do nativního instalátoru a také se pomocí něj rozbalují. Tyto nativní instalátory jsou soubory EXE ve Windows, soubory DMG v systému Mac OS a soubory BIN, DEB nebo RPM v operačním systému Linux. Aplikace s rozšířeným profilem pro stolní počítače mají další schopnosti, které nejsou k dispozici v aplikacích s profilem stolního počítače. Další informace naleznete v tématu „Sbalení nativního instalátoru pro stolní počítač“ na stránce 55. Poslední aktualizace 31.8.2016 243 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Profily zařízení Mobilní zařízení Profil mobilního zařízení definuje sadu schopností pro aplikace, které se instalují do mobilních zařízení, jako jsou mobilní telefony a tablety. Tyto aplikace se instalují a spouštějí na podporovaných mobilních platformách, mezi které patří Android, Blackberry Tablet OS a iOS. Rozšířené mobilní zařízení Profil rozšířeného mobilního zařízení definuje sadu schopností pro aplikace, které se instalují do rozšířených mobilních zařízení. Momentálně nejsou k dispozici žádná zařízení podporující tento profil. Omezení cílových profilů v souboru deskriptoru aplikace Prostředí Adobe AIR 2 a novější Soubor deskriptoru aplikace v prostředí AIR 2 obsahuje element supportedProfiles, který umožňuje omezit cílové profily. Následující nastavení například určuje, že aplikace je dostupná pouze v profilu stolního počítače: <supportedProfiles>desktop</supportedProfiles> Když je tento element nastaven, aplikaci lze sbalit pouze ve vámi uvedených profilech. Můžete použít následující hodnoty: • desktop – Profil stolního počítače • extendedDesktop – Profil rozšířeného stolního počítače • mobileDevice – Profil mobilního zařízení Element supportedProfiles je volitelný. Pokud tento element do souboru deskriptoru aplikace nezahrnete, bude možné aplikaci sbalit a implementovat pro libovolný profil. Chcete-li určit více profilů v elementu supportedProfiles, oddělte každý element mezerou, tak jak je to uvedeno v následujícím příkladu: <supportedProfiles>desktop extendedDesktop</supportedProfiles> Schopnosti různých profilů Prostředí Adobe AIR 2 a novější Následující tabulka obsahuje seznam tříd a funkcí, které nejsou podporovány ve všech profilech. Třída nebo funkce Stolní počítač Rozšířený profil Mobilní pro stolní zařízení počítače Accelerometer (Accelerometer.isSupported) Ne Ne Zkontrolovat Accessibility (Capabilities.hasAccessibility) Ano Ano Ne Rušení akustické ozvěny (Microphone.getEnhancedMicrophone()) Ano Ano Ne Jazyk ActionScript 2 Ano Ano Ne Matice CacheAsBitmap Ne Ne Ano Poslední aktualizace 31.8.2016 244 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Profily zařízení Třída nebo funkce Stolní počítač Rozšířený profil Mobilní pro stolní zařízení počítače Camera (Camera.isSupported) Ano Ano Ano CameraRoll Ne Ne Ano CameraUI (CameraUI.isSupported) Ne Ne Ano Kaptivní balíčky běhového prostředí Ano Ano Ano ContextMenu (ContextMenu.isSupported) Ano Ano Ne DatagramSocket (DatagramSocket.isSupported) Ano Ano Ano DockIcon (NativeApplication.supportsDockIcon) Zkontrolovat Zkontrolovat Ne Přetažení (NativeDragManager.isSupported) Ano Ano Zkontrolovat EncyptedLocalStore (EncyptedLocalStore.isSupported) Ano Ano Ano Přístup Flash (DRMManager.isSupported) Ano Ano Ne GameInput (GameInput.isSupported) Ne Ne Ne Geolocation (Geolocation.isSupported) Ne Ne Zkontrolovat HTMLLoader (HTMLLoader.isSupported) Ano Ano Ne IME (IME.isSupported) Ano Ano Zkontrolovat LocalConnection (LocalConnection.isSupported) Ano Ano Ne Microphone (Microphone.isSupported) Ano Ano Zkontrolovat Vícekanálový zvuk (Capabilities.hasMultiChannelAudio()) Ne Ne Ne Nativní rozšíření Ne Ano Ano NativeMenu (NativeMenu.isSupported) Ano Ano Ne NativeProcess (NativeProcess.isSupported) Ne Ano Ne NativeWindow (NativeWindow.isSupported) Ano Ano Ne NetworkInfo (NetworkInfo.isSupported) Ano Ano Zkontrolovat Otevření souborů výchozí aplikací Omezeno Ano Ne PrintJob (PrintJob.isSupported) Ano Ano Ne SecureSocket (SecureSocket.isSupported) Ano Ano Zkontrolovat ServerSocket (ServerSocket.isSupported) Ano Ano Ano Shader Ano Ano Omezeno Stage3D (Stage.stage3Ds.length) Ano Ano Ano Orientace vymezené plochy (Stage.supportsOrientationChange) Ne Ne Ano StageVideo Ne Ne Zkontrolovat Poslední aktualizace 31.8.2016 245 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Profily zařízení Třída nebo funkce Stolní počítač Rozšířený profil Mobilní pro stolní zařízení počítače StageWebView (StageWebView.isSupported) Ano Ano Ano Spuštění aplikace při přihlášení (NativeApplication.supportsStartAtLogin) Ano Ano Ne StorageVolumeInfo (StorageVolumeInfo.isSupported) Ano Ano Ne Režim nečinnosti systému Ne Ne Ano SystemTrayIcon Zkontrolovat (NativeApplication.supportsSystemTrayIcon ) Zkontrolovat Ne Vstupní hodnota rámce rozložení textu Ano Ano Ne Updater (Updater.isSupported) Ano Ne Ne XMLSignatureValidator (XMLSignatureValidator.isSupported) Ano Ano Ne Položky v tabulce mají následující význam: • Zkontrolovat – Funkce je podporována u některých zařízení v profilu, nikoli však u všech. Před použitím funkce je vhodné v běhovém prostředí zkontrolovat, zda je podporována. • Omezeno – Funkce je podporována, ale s výraznými omezeními. Další informace naleznete v příslušné dokumentaci. • Ne – Funkce není v daném profilu podporována. • Ano – Funkce je v profilu podporována. Nezapomeňte, že konkrétní výpočetní zařízení může postrádat hardware nutný pro práci některé funkce. Ne všechny telefony jsou například vybaveny fotoaparátem. Určení profilů při ladění pomocí programu ADL Prostředí Adobe AIR 2 a novější ADL kontroluje, zda určujete podporované profily v elementu supportedProfiles souboru deskriptoru aplikace. Pokud ano, program ADL ve výchozím nastavení použije první podporovaný profil, který je uveden jako profil k ladění. Profil pro relaci ladění ADL můžete určit pomocí argumentu příkazového řádku -profile. (Viz kapitolu „Program AIR Debug Launcher (ADL)“ na stránce 157.) Tento argument lze použít bez ohledu na to, zda určíte profil v elementu supportedProfiles v souboru deskriptoru aplikace. Pokud však element supportedProfiles určíte, musí obsahovat profil určený na příkazovém řádku. V opačném případě vyvolá program ADL chybu. Poslední aktualizace 31.8.2016 246 Kapitola 16: Rozhraní API integrovaného prohlížeče AIR.SWF Přizpůsobení souboru badge.swf hladké instalace Vedle použití souboru badge.swf poskytnutého se sadou SDK můžete vytvořit svůj vlastní soubor, který použijete na stránce prohlížeče. Váš vlastní soubor SWF může vzájemně reagovat s runtime následujícími způsoby: • Může nainstalovat aplikaci AIR. Viz „Instalace aplikace AIR z prohlížeče“ na stránce 252. • Může provést kontrolu a zjistit, jestli je nainstalovaná určitá aplikace AIR. Viz „Kontrola z webové stránky, zda je aplikace AIR nainstalována.“ na stránce 251. • Může zkontrolovat, zda je runtime nainstalováno. Viz „Kontrola, zda je runtime nainstalováno“ na stránce 250. • Může spustit nainstalovanou aplikaci AIR v systému uživatele. Viz sekce „Spuštění nainstalované aplikace AIR z prohlížeče“ na stránce 253. Tyto možnosti jsou poskytnuty voláním rozhraní API v souboru SWF hostovaném na adobe.com: air.swf. Soubor badge.swf si můžete přizpůsobit a volat rozhraní API air.swf ze svého vlastního souboru SWF. Dále může soubor SWF spuštěný v prohlížeči komunikovat se spuštěnou aplikací AIR pomocí třídy LocalConnection. Další informace naleznete v tématu Komunikace s ostatními instancemi aplikací Flash Player a AIR (pro vývojáře používající jazyk ActionScript) nebo Komunikace s ostatními instancemi aplikací Flash Player a AIR (pro vývojáře používající jazyk HTML). Důležité: Funkce popsané v této části (a rozhraní API v souboru air.swf) vyžadují, aby měl koncový uživatel ve webovém prohlížeči v systému Windows nebo Mac OS nainstalovanou aktualizaci 3 nebo novější přehrávače Adobe® Flash® Player 9. V systému Linux vyžaduje funkce hladké instalace přehrávač Flash Player 10 (verze 10.0.12.36 nebo novější). Můžete zapsat kód tak, abyste zkontrolovali nainstalovanou verzi přehrávače Flash Player a poskytnuli uživateli alternativní rozhraní, jestliže není požadovaná verze přehrávače Flash Player nainstalovaná. Jestliže je například nainstalována starší verze přehrávače Flash Player, můžete poskytnout odkaz na verzi souboru AIR ke stažení (namísto použití souboru badge.swf nebo rozhraní API souboru air.swf k nainstalování aplikace). Použití souboru badge.swf k nainstalování aplikace AIR Sady AIR SDK a Flex SDK obsahují soubor badge.swf, který umožňuje snadné použití funkce hladké instalace. Soubor badge.swf může nainstalovat runtime a aplikaci AIR z odkazu na webové stránce. Soubor badge.swf a jeho zdrojový kód jsou vám poskytnuty k distribuci na vašem webu. Vložte soubor badge.swf do webové stránky 1 Vyhledejte následující soubory umístěné v adresáři samples/badge sad AIR SDK nebo Flex SDK a přidejte je do svého prohlížeče. • badge.swf • default_badge.html • AC_RunActiveContent.js Poslední aktualizace 31.8.2016 247 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Rozhraní API integrovaného prohlížeče AIR.SWF 2 Otevřete stránku default_badge.html v textovém editoru. 3 Na stránce default_badge.html ve funkci jazyka JavaScript AC_FL_RunContent() upravte definice parametru FlashVars pro následující: Parametr Popis appname Název aplikace zobrazený souborem SWF, jestliže runtime není nainstalován. appurl (Vyžadovaný). URL souboru AIR, který má být stažen. Musíte použít absolutní, nikoliv relativní, URL. airversion (Vyžadovaný). Pro verzi 1.0 runtime jej nastavte na 1.0. imageurl URL obrazu (volitelné), která se zobrazí v symbolu. buttoncolor Barva tlačítka stahování (určená jako hexadecimální hodnota, například FFCC00). messagecolor Barva textové zprávy zobrazené pod tlačítkem, jestliže runtime není nainstalováno (určena jako hexadecimální hodnota, například FFCC00). 4 Minimální velikost souboru badge.swf je 217 obrazových bodů na šířku a 180 obrazových bodů na výšku. Upravte hodnoty parametrů width a height funkce AC_FL_RunContent()tak, aby vám vyhovovaly. 5 Přejmenujte soubor default_badge.html a upravte jeho kód (nebo jej zahrňte do jiné HTML stránky) tak, aby vám vyhovoval. Poznámka: Pro tag HTML embed, který načítá soubor badge.swf, nenastavujte atribut wmode a nechejte jej nastavený na výchozí hodnotu („window"). Jiné nastavení atributu wmode v některých systémech znemožňuje instalaci. Použití jiného nastavení atributu wmode navíc způsobí chybu: „Error #2044: Nezpracováno:. text=Error #2074: Plocha je příliš malá a neodpovídá download ui.“ Soubor badge.swf můžete také upravit a znovu kompilovat. Podrobnosti naleznete v tématu „Upravte soubor badge.swf“ na stránce 248. Nainstalujte aplikaci AIR z odkazu hladké instalace na webové stránce. Jakmile jste na stránku přidali odkaz hladké instalace, může uživatel instalovat aplikaci AIR klepnutím na odkaz v souboru SWF. 1 Přejděte na stránku HTML ve webovém prohlížeči, který má nainstalovaný přehrávač Flash Player (verze 9 s aktualizací 3 v systémech Windows a Mac OS, nebo verze 10 v systému Linux). 2 Na webové stránce klepněte na odkaz na soubor badge.swf. • Jestliže jste runtime nainstalovali, přejděte k následujícímu kroku. • Jestliže jste runtime nenainstalovali, zobrazí se dialogové okno, kde budete dotázáni, zda si přejete runtime nainstalovat nebo nikoliv. Instalujte runtime (viz „Instalace prostředí Adobe AIR“ na stránce 3) a pokračujte k následujícímu kroku. 3 V okně instalace ponechte zvolené výchozí nastavení a klepněte na tlačítko Pokračovat. V počítači s OS Windows provede AIR automaticky následující: • Instaluje aplikaci do umístění c:\Program Files\ • Vytvoří pro aplikaci odkaz na pracovní ploše • Vytvoří odkaz v nabídce Start • Přidá záznam pro aplikaci do ovládacího panelu Přidat/Odebrat programy Poslední aktualizace 31.8.2016 248 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Rozhraní API integrovaného prohlížeče AIR.SWF V operačním systému Mac OS přidá instalátor aplikaci do adresáře Aplikace (například do adresáře /Aplikace v operačním sytému Mac OS). V počítači se systémem Linux provede aplikace AIR následující akce: • Nainstaluje aplikaci do složky /opt. • Vytvoří pro aplikaci odkaz na pracovní ploše • Vytvoří odkaz v nabídce Start • Přidá do systémového správce balíčků položku pro aplikaci. 4 Vyberte požadované možnosti a klepněte na tlačítko Instalovat. 5 Po dokončení instalace klepněte na možnost Dokončit. Upravte soubor badge.swf Zdrojové soubory pro soubor badge.swf obsahují sady Flex SDK a AIR SDK. Tyto soubory jsou zahrnuty ve složce samples/badge sady SDK: Zdrojové soubory Popis badge.fla Zdrojový soubor Flash použitý pro kompilaci souboru badge.swf. Soubor badge.fla kompiluje do souboru SWF 9 (který lze načíst v přehrávači Flash Player). AIRBadge.as Třída ActionScript 3.0, která definuje základní třídu použitou v souboru basdge.fla. Aplikaci Flash Professional lze použít k novému navržení vizuálního rozhraní souboru badge.fla. Funkce konstruktoru AIRBadge() definovaná ve třídě AIRBadge načte soubor air.swf hostovaný na http://airdownload.adobe.com/air/browserapi/air.swf. Soubor air.swf obsahuje kód pro používání funkce hladké instalace. Metoda onInit()(ve třídě AIRBadge) je volána, když je soubor air.swf úspěšně načten: Poslední aktualizace 31.8.2016 249 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Rozhraní API integrovaného prohlížeče AIR.SWF private function onInit(e:Event):void { _air = e.target.content; switch (_air.getStatus()) { case "installed" : root.statusMessage.text = ""; break; case "available" : if (_appName && _appName.length > 0) { root.statusMessage.htmlText = "<p align='center'><font color='#" + _messageColor + "'>In order to run " + _appName + ", this installer will also set up Adobe® AIR®.</font></p>"; } else { root.statusMessage.htmlText = "<p align='center'><font color='#" + _messageColor + "'>In order to run this application, " + "this installer will also set up Adobe® AIR®.</font></p>"; } break; case "unavailable" : root.statusMessage.htmlText = "<p align='center'><font color='#" + _messageColor + "'>Adobe® AIR® is not available for your system.</font></p>"; root.buttonBg_mc.enabled = false; break; } } Kód nastaví globální proměnnou _air na hlavní třídu načteného souboru air.swf. Tato třída obsahuje následující veřejné metody, ke kterým soubor badge.swf získává přístup pro volání funkce hladké instalace: Metoda Popis getStatus() Určuje, zda je runtime na počítači nainstalováno (nebo může být nainstalováno). Podrobnosti naleznete v tématu „Kontrola, zda je runtime nainstalováno“ na stránce 250. • runtimeVersion—Řetězec určující verzi runtime (například "1.0.M6") vyžadovanou aplikací k instalaci. installApplication() Nainstaluje určenou aplikaci na počítač uživatele. Podrobnosti naleznete v tématu „Instalace aplikace AIR z prohlížeče“ na stránce 252. • url—Řetězec definující URL. Musíte použít absolutní, nikoliv relativní, cestu URL. • runtimeVersion—Řetězec určující verzi runtime (například "2.5.") vyžadovanou aplikací k instalaci. • arguments—Argumenty, které budou předané aplikaci, když je po instalaci spuštěna. Aplikace je spuštěna po instalaci, jestliže element allowBrowserInvocation je nastaven na true v souboru deskriptoru aplikace. (Další informace o souboru deskriptoru aplikace naleznete v tématu „Soubory deskriptorů aplikací AIR“ na stránce 202.) Jestliže je aplikace spuštěna jako výsledek hladké instalace z prohlížeče (když si uživatel zvolí spuštění aplikace po instalaci), objekt aplikace NativeApplication odešle objekt BrowserInvokeEvent pouze pokud jsou předány argumenty. Vezměte na vědomí důsledky pro zabezpečení dat, která předáte aplikaci. Podrobnosti naleznete v tématu „Spuštění nainstalované aplikace AIR z prohlížeče“ na stránce 253. Nastavení pro url a runtimeVersion jsou předána do souboru SWF prostřednictvím nastavení FlashVars na HTML stránce kontejneru. Jestliže se aplikace po instalaci spustí automaticky, může nainstalovaná aplikace díky komunikaci LocalConnection po iniciaci kontaktovat soubor badge.swf. Další informace naleznete v tématu Komunikace s ostatními instancemi aplikací Flash Player a AIR (pro vývojáře používající jazyk ActionScript) nebo Komunikace s ostatními instancemi aplikací Flash Player a AIR (pro vývojáře používající jazyk HTML). Poslední aktualizace 31.8.2016 250 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Rozhraní API integrovaného prohlížeče AIR.SWF Můžete také volat metodu getApplicationVersion() souboru air.swf a zkontrolovat, jestli je aplikace nainstalována. Tuto metodu můžete volat buď před procesem instalace aplikace nebo po zahájení instalace. Podrobnosti naleznete v tématu „Kontrola z webové stránky, zda je aplikace AIR nainstalována.“ na stránce 251. Načtení souboru air.swf Můžete vytvořit svůj vlastní soubor SWF, který používá rozhraní API v souboru air.swf, pro interakci s runtime a aplikacemi AIR z webové stránky v prohlížeči. Soubor air.swf je hostován na http://airdownload.adobe.com/air/browserapi/air.swf. Pro odkazování rozhraní API souboru air.swf z vašeho souboru SWF načtěte soubor air.swf do stejné domény aplikace jako svůj soubor SWF. Následující kód ukazuje příklad načtení souboru air.swf do domény aplikace načítaného souboru SWF: var airSWF:Object; // This is the reference to the main class of air.swf var airSWFLoader:Loader = new Loader(); // Used to load the SWF var loaderContext:LoaderContext = new LoaderContext(); // Used to set the application domain loaderContext.applicationDomain = ApplicationDomain.currentDomain; airSWFLoader.contentLoaderInfo.addEventListener(Event.INIT, onInit); airSWFLoader.load(new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf"), loaderContext); function onInit(e:Event):void { airSWF = e.target.content; } Jakmile je soubor air.swf načten (když objekt contentLoaderInfo objektu Loader odešle událost init), můžete volat libovolné rozhraní API souboru air.swf popsané v následujících odstavcích. Poznámka: Soubor badge.swf dodaný se sadami AIR SDK a Flex SDK automaticky načte soubor air.swf. Viz „Použití souboru badge.swf k nainstalování aplikace AIR“ na stránce 246. Pokyny v této části se vztahují k vytváření vlastního souboru SWF, který načte soubor air.swf. Kontrola, zda je runtime nainstalováno Soubor SWF může zkontrolovat, zda je runtime nainstalováno voláním metody getStatus() v souboru air.swf načteném z http://airdownload.adobe.com/air/browserapi/air.swf. Podrobnosti naleznete v tématu „Načtení souboru air.swf“ na stránce 250. Jakmile je soubor air.swf načten, může soubor SWF volat metodu souboru air.swf getStatus(), viz. následující: var status:String = airSWF.getStatus(); Metoda getStatus() vrátí jednu z následujících hodnot řetězce, na základě statutu runtime na počítači: Poslední aktualizace 31.8.2016 251 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Rozhraní API integrovaného prohlížeče AIR.SWF Hodnota řetězce Popis "available" Runtime lze nainstalovat na tomto počítači, aktuálně ale nainstalován není. "unavailable" Runtime nemůže být na tomto počítači nainstalován. "installed" Runtime je na tomto počítači nainstalován. Metoda getStatus() vyvolá chybu, jestliže není v prohlížeči nainstalována požadovaná verze přehrávače Flash Player (verze 9 aktualizace 3 v systémech Windows a Mac OS nebo verze 10 v systému Linux). Kontrola z webové stránky, zda je aplikace AIR nainstalována. Soubor SWF může zkontrolovat, zda je aplikace AIR (s odpovídajícím ID aplikace a ID vydavatele) nainstalovaná voláním metody getApplicationVersion() v souboru air.swf načteném z http://airdownload.adobe.com/air/browserapi/air.swf. Podrobnosti naleznete v tématu „Načtení souboru air.swf“ na stránce 250. Jakmile je soubor air.swf načten, může soubor SWF volat metodu souboru air.swf getApplicationVersion(), viz. následující: var appID:String = "com.example.air.myTestApplication"; var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1"; airSWF.getApplicationVersion(appID, pubID, versionDetectCallback); function versionDetectCallback(version:String):void { if (version == null) { trace("Not installed."); // Take appropriate actions. For instance, present the user with // an option to install the application. } else { trace("Version", version, "installed."); // Take appropriate actions. For instance, enable the // user interface to launch the application. } } Metoda getApplicationVersion() má následující parametry: Parametry Popis appID ID aplikace pro danou aplikaci. Podrobnosti viz „id“ na stránce 223. pubID ID vydavatele pro danou aplikaci. Podrobnosti viz „publisherID“ na stránce 232. Pokud uvedená aplikace neobsahuje ID vydavatele, nastavte jako parametr pubID prázdný řetězec (“”). callback Funkce zpětného volání, která slouží jako funkce zpracování. Metoda getApplicationVersion() operuje asynchronně a po zjištění nainstalované verze (nebo nepřítomnosti nainstalované verze), je tato metoda zpětného volání iniciována. Definice metody zpětného volání musí zahrnovat jeden parametr, řetězec, který je nastaven na řetězec verze nainstalované aplikace. Jestliže není aplikace nainstalovaná, bude funkci předána nulová hodnota, viz následující ukázka kódu. Poslední aktualizace 31.8.2016 252 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Rozhraní API integrovaného prohlížeče AIR.SWF Metoda getApplicationVersion() vyvolá chybu, jestliže není v prohlížeči nainstalována požadovaná verze přehrávače Flash Player (verze 9 aktualizace 3 v systémech Windows a Mac OS nebo verze 10 v systému Linux). Poznámka: Od verze prostředí AIR 1.5.3 se ID vydavatele nepoužívá. ID vydavatele již není k aplikacím přiřazováno automaticky. Z důvodu zpětné kompatibility mohou mít aplikace i nadále zadáno ID vydavatele. Instalace aplikace AIR z prohlížeče Soubor SWF může nainstalovat aplikaci AIR voláním metody installApplication() v souboru air.swf načteném z http://airdownload.adobe.com/air/browserapi/air.swf. Podrobnosti naleznete v tématu „Načtení souboru air.swf“ na stránce 250. Jakmile je soubor air.swf načten, může soubor SWF volat metodu souboru air.swf installApplication(), viz. následující: var url:String = "http://www.example.com/myApplication.air"; var runtimeVersion:String = "1.0"; var arguments:Array = ["launchFromBrowser"]; // Optional airSWF.installApplication(url, runtimeVersion, arguments); Metoda installApplication() nainstaluje určenou aplikaci na počítač uživatele. Tato metoda má následující parametry: Parametr Popis url Řetězec definující URL souboru AIR k instalaci. Musíte použít absolutní, nikoliv relativní, cestu URL. runtimeVersion Řetězec určující verzi runtime (například „1.0“) vyžadovanou aplikací k instalaci. arguments Pole argumentů, které budou předány aplikaci, když je po instalaci spuštěna. Pro argumenty jsou rozpoznávány pouze alfanumerické znaky. Pokud potřebujete předat jiné hodnoty, doporučujeme použít schéma kódování. Aplikace je spuštěna po instalaci, jestliže element allowBrowserInvocation je nastaven na true v souboru deskriptoru aplikace. (Další informace o souboru deskriptoru aplikace naleznete v tématu „Soubory deskriptorů aplikací AIR“ na stránce 202.) Jestliže je aplikace spuštěna jako výsledek hladké instalace z prohlížeče (když si uživatel zvolí spuštění aplikace po instalaci), objekt aplikace NativeApplication odešle objekt BrowserInvokeEvent pouze pokud byly předány argumenty. Podrobnosti naleznete v tématu „Spuštění nainstalované aplikace AIR z prohlížeče“ na stránce 253. Metoda installApplication() může operovat pouze je-li volána v objektu pro zpracování události pro událost uživatele, například klepnutí myší. Metoda installApplication() vyvolá chybu, jestliže není v prohlížeči nainstalována požadovaná verze přehrávače Flash Player (verze 9 aktualizace 3 v systémech Windows a Mac OS nebo verze 10 v systému Linux). Pro instalaci aktualizované verze aplikace v OS Mac musí mít uživatel příslušná oprávnění pro nainstalování do adresáře aplikace (a oprávnění správce, jestliže aplikace aktualizuje runtime). V OS Windows potřebuje uživatel oprávnění správce. Poslední aktualizace 31.8.2016 253 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Rozhraní API integrovaného prohlížeče AIR.SWF Můžete také volat metodu getApplicationVersion() souboru air.swf a zkontrolovat, zda je aplikace již nainstalována. Tuto metodu můžete volat buď před zahájením procesu instalace aplikace nebo po zahájení instalace. Podrobnosti naleznete v tématu „Kontrola z webové stránky, zda je aplikace AIR nainstalována.“ na stránce 251. Jakmile aplikace běží, může komunikovat s obsahem SWF v prohlížeči pomocí třídy LocalConnection. Další informace naleznete v tématu Komunikace s ostatními instancemi aplikací Flash Player a AIR (pro vývojáře používající jazyk ActionScript) nebo Komunikace s ostatními instancemi aplikací Flash Player a AIR (pro vývojáře používající jazyk HTML). Spuštění nainstalované aplikace AIR z prohlížeče Pro použití funkce vyvolání prohlížeče (povolení, aby byla spuštěna z prohlížeče) musí soubor deskriptoru aplikace cílové aplikace zahrnovat následující nastavení: <allowBrowserInvocation>true</allowBrowserInvocation> Další informace o souboru deskriptoru aplikace naleznete v tématu „Soubory deskriptorů aplikací AIR“ na stránce 202. Soubor SWF v prohlížeči může spustit aplikaci AIR voláním metody launchApplication() v souboru air.swf načteném z http://airdownload.adobe.com/air/browserapi/air.swf. Podrobnosti naleznete v tématu „Načtení souboru air.swf“ na stránce 250. Jakmile je soubor air.swf načten, může soubor SWF volat metodu souboru air.swf launchApplication(), viz. následující kód: var appID:String = "com.example.air.myTestApplication"; var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1"; var arguments:Array = ["launchFromBrowser"]; // Optional airSWF.launchApplication(appID, pubID, arguments); Metoda launchApplication() je definovaná na nejvyšší úrovni souboru air.swf (který je načten v doméně aplikace souboru SWF uživatelského rozhraní). Volání této metody způsobí, že aplikace AIR spustí určenou aplikaci (je-li instalována a je-li povolena inicializace prohlížeče prostřednictvím nastavení allowBrowserInvocation v souboru deskriptoru aplikace). Metoda má následující parametry: Parametr Popis appID ID aplikace pro aplikaci, která má být spuštěna. Podrobnosti viz „id“ na stránce 223. pubID ID vydavatele pro aplikaci, která má být spuštěna. Podrobnosti viz „publisherID“ na stránce 232. Pokud uvedená aplikace neobsahuje ID vydavatele, nastavte jako parametr pubID prázdný řetězec (“”).§ arguments Pole argumentů, které budou předány aplikaci. Objekt NativeApplication aplikace odešle událost BrowserInvokeEvent, která má vlastnost argumentů nastavenou na toto pole. Pro argumenty jsou rozpoznávány pouze alfanumerické znaky. Pokud potřebujete předat jiné hodnoty, doporučujeme použít schéma kódování. Metoda launchApplication() může operovat pouze tehdy, je-li volána v objektu pro zpracování události pro událost uživatele, například klepnutí myší. Metoda launchApplication() vyvolá chybu, jestliže není v prohlížeči nainstalována požadovaná verze přehrávače Flash Player (verze 9 aktualizace 3 v systémech Windows a Mac OS nebo verze 10 v systému Linux). Jestliže je element allowBrowserInvocation nastaven v souboru deskriptoru aplikace na false, volání metody launchApplication() nepřinese žádné výsledky. Poslední aktualizace 31.8.2016 254 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Rozhraní API integrovaného prohlížeče AIR.SWF Před poskytnutím uživateli rozhraní pro spuštění aplikace si můžete přát volat metodu getApplicationVersion() v souboru air.swf. Podrobnosti naleznete v tématu „Kontrola z webové stránky, zda je aplikace AIR nainstalována.“ na stránce 251. Je-li aplikace iniciována prostřednictvím funkce iniciace prohlížeče, objekt aplikace NativeApplication odešle objekt BrowserInvokeEvent. Podrobnosti jsou popsány v tématu Vyvolání aplikace AIR z prohlížeče (pro vývojáře používající jazyk ActionScript) nebo Vyvolání aplikace AIR z prohlížeče (pro vývojáře používající jazyk HTML). Při použití funkce vyvolání z prohlížeče je vhodné dobře zvážit možné dopady na zabezpečení. Tyto dopady jsou popsány v tématech Vyvolání aplikace AIR z prohlížeče (pro vývojáře používající jazyk ActionScript) a Vyvolání aplikace AIR z prohlížeče (pro vývojáře používající jazyk HTML). Jakmile aplikace běží, může komunikovat s obsahem SWF v prohlížeči pomocí třídy LocalConnection. Další informace naleznete v tématu Komunikace s ostatními instancemi aplikací Flash Player a AIR (pro vývojáře používající jazyk ActionScript) nebo Komunikace s ostatními instancemi aplikací Flash Player a AIR (pro vývojáře používající jazyk HTML). Poznámka: Od verze prostředí AIR 1.5.3 se ID vydavatele nepoužívá. ID vydavatele již není k aplikacím přiřazováno automaticky. Z důvodu zpětné kompatibility mohou mít aplikace i nadále zadáno ID vydavatele. Poslední aktualizace 31.8.2016 255 Kapitola 17: Aktualizace aplikací AIR Uživatelé mohou instalovat nebo aktualizovat aplikaci AIR dvojím kliknutím na soubor AIR v počítači nebo z prohlížeče (pomocí funkce hladké instalace). Správu instalace zajišťuje instalátor Adobe® AIR®, který upozorní uživatele, zda se chystá aktualizovat již existující aplikaci. Pomocí třídy Updater se však může instalovaná aplikace aktualizovat na novou verzi i sama. (Instalovaná aplikace umí zjistit, zda je dostupná nová verze ke stažení a instalaci.) Třída Updater zahrnuje metodu update(), která umožňuje vyhledat soubor AIR v počítači uživatele a aktualizovat jej na příslušnou verzi. Chcete-li použít třídu Updater, je třeba aplikace zabalit jako soubor AIR. Aplikace zabalené jako nativní spustitelné soubory nebo balíčky by měly využít možnosti aktualizace poskytované nativní platformou. ID aplikace i ID vydavatele aktualizačního souboru AIR se musí shodovat s aplikací, která má být aktualizována. ID vydavatele je odvozeno od podpisového certifikátu, což znamená, že aktualizace i aplikace, která má být aktualizována, musí být podepsány stejným certifikátem. Pro aplikaci AIR 1.5.3 soubor deskriptoru aplikace obsahuje element <publisherID>. Tento element musíte použít, pokud existuje více verzí aplikace vyvinutých pomocí aplikace AIR 1.5.2 nebo starší. Další informace naleznete v části „publisherID“ na stránce 232. Od verze AIR 1.1 a novější můžete migrovat aplikaci, chcete-li použít nový podpisový certifikát kódu. Migrování aplikace pro použití nového podpisu zahrnuje podepsání aktualizačního souboru AIR novým i původním certifikátem. Migrace certifikátu je nevratný proces. Po migraci budou jako aktualizace stávající instalace rozpoznány pouze soubory AIR podepsané novým certifikátem (nebo oběma certifikáty). Správa aktualizací aplikací může být složitá. Prostředí AIR 1.5 obsahuje nový aktualizační rámec pro aplikace AdobeAIR. Tento rámec poskytuje rozhraní API, pomocí kterých mohou vývojáři lépe zajišťovat dobré aktualizační možnosti v aplikacích AIR. Pomocí migrace certifikátu můžete změnit certifikát s vlastním podpisem na komerční podpisový certifikát kódu nebo změnit jeden certifikát s vlastním podpisem nebo komerční certifikát na jiný. Jestliže neprovedete migraci certifikátu, stávající uživatelé budou muset před instalací nové verze nejprve odebrat aktuální verzi vaší aplikace. Další informace naleznete v části „Změna certifikátů“ na stránce 191. Je vhodné do aplikace zahrnout mechanismus aktualizace. Pokud vytvoříte novou verzi aplikace, mechanismus aktualizace může vyzvat uživatele k instalaci nové verze. Instalátor aplikace vytvoří soubory protokolu po nainstalování, aktualizaci nebo odstranění aplikace AIR. Nastanouli během instalace nějaké potíže, tyto protokoly vám pomohou stanovit příčinu. Viz Installation logs (Instalační protokoly). Poznámka: Nové verze běhového modulu Adobe AIR mohou obsahovat aktualizované verze modulu WebKit. Aktualizovaná verze modulu WebKit může vést k neočekávaným změnám v obsahu HTML v nainstalované aplikaci AIR. Tyto změny mohou vyžadovat, abyste aplikaci aktualizovali. Mechanismus aktualizace může uživatele informovat o nové verzi aplikace. Další informace naleznete v tématu O prostředí HTML (pro vývojáře používající jazyk ActionScript) nebo O prostředí HTML (pro vývojáře používající jazyk HTML). Poslední aktualizace 31.8.2016 256 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR O aktualizaci aplikací Třída Updater (v balíku flash.desktop) obsahuje jednu metodu, update(), kterou můžete použít k aktualizaci právě spuštěné aplikace jinou verzí. Má-li například uživatel verzi souboru AIR („Sample_App_v2.air“) umístěnou na ploše, aplikaci aktualizuje následující kód. Příklad jazyka ActionScript: var updater:Updater = new Updater(); var airFile:File = File.desktopDirectory.resolvePath("Sample_App_v2.air"); var version:String = "2.01"; updater.update(airFile, version); Příklad jazyka JavaScript: var updater = new air.Updater(); var airFile = air.File.desktopDirectory.resolvePath("Sample_App_v2.air"); var version = "2.01"; updater.update(airFile, version); Než může aplikace třídu Updater použít, musí uživatel nebo aplikace stáhnout do počítače aktualizovanou verzi souboru AIR. Další informace naleznete v tématu „Stažení souboru AIR do počítače uživatele“ na stránce 258. Výsledky volání metody Updater.update() Když aplikace při běhu vyvolá metodu update(), chod programu ukončí aplikaci a poté se pokusí instalovat novou verzi ze souboru AIR. Chod programu zkontroluje, zda se ID aplikace a ID vydavatele určená v souboru AIR shodují s ID aplikace a ID vydavatele pro volání metody update() dané aplikace. (Informace o ID aplikace a ID vydavatele naleznete v tématu „Soubory deskriptorů aplikací AIR“ na stránce 202.) Také zkontroluje, zda se řetězec verze shoduje s řetězcem version předaným metodě update(). Je-li instalace úspěšně dokončena, otevře chod programu novou verzi aplikace. Jinak (pokud nebyla instalace dokončena) se znovu otevře stávající verze aplikace – ta, která byla na počítači před instalací. V systému Mac OS musí mít uživatel pro instalaci aktualizované verze aplikace odpovídající systémová práva k instalaci adresáře aplikace. V systémech Windows a Linux musí mít uživatel oprávnění správce. Pokud aktualizovaná verze aplikace požaduje aktualizovanou verzi modulu runtime, tato nová verze se nainstaluje. K aktualizaci běhového modulu musí mít uživatel administrátorská práva pro daný počítač. Při testování aplikace pomocí ADL bude mít volání metody update() za následek výjimku běhu programu. O řetězci verze Řetězec, který je zadán jako parametr version metody update() se musí shodovat s řetězcem v atributu version nebo versionNumber elementu souboru deskriptoru aplikace pro soubor AIR, který má být nainstalován. Zadání parametru version je vyžadováno z důvodů zabezpečení. Požádáním aplikace o ověření čísla verze souboru AIR zabráníte neúmyslnému nainstalování starší verze. (Starší verze aplikace by mohla obsahovat problém se zabezpečením, který již byl vyřešen v aktuálně nainstalované aplikaci.) Aplikace by měla také porovnat řetězec verze v souboru AIR s řetězcem verze v instalované aplikaci, aby se zabránilo útokům nižší kategorie. Do verze prostředí AIR 2.5 může mít řetězec verze libovolný formát. Může mít například podobu „2.01“ nebo „version 2“. V prostředí AIR 2.5 a novějším musí řetězec verze představovat posloupnost až tři nejvýše trojmístných čísel oddělených tečkami. Platná čísla verze tedy jsou například .0, 1.0 nebo 67.89.999. Před aktualizací aplikace je vhodné ověřit řetězec verze aktualizace. Poslední aktualizace 31.8.2016 257 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR Stahuje-li aplikace AIR soubor AIR přes web, je dobré mít nějaký mechanismus, pomocí kterého může webová služba ohlásit aplikaci Adobe AIR právě stahované verze. Aplikace pak může tento řetězec použít jako parametr version metody update(). Je-li soubor AIR získán nějakým jiným způsobem, při kterém je verze souboru AIR neznámá, aplikace AIR může soubor AIR prověřit, aby určila informace o verzi. (Soubor AIR je komprimovaným archívem ZIP a soubor deskriptoru aplikace je druhým záznamem v archívu.) Podrobnosti o souboru deskriptoru aplikace naleznete v tématu „Soubory deskriptorů aplikací AIR“ na stránce 202. Pracovní postup podepisování pro aktualizace aplikací Nahodilé publikování aktualizací komplikuje úkoly spojené se správou více verzí aplikace a znesnadňuje sledování dat vypršení platnosti certifikátů. Certifikáty mohou vypršet dříve, než publikujete aktualizaci. Běhové prostředí Adobe AIR pracuje s aktualizacemi aplikací zveřejněných bez podpisu migrace jako s novými aplikacemi. Uživatelé tedy musejí před instalací aktualizace odinstalovat stávající aplikaci AIR. Chcete-li tento problém vyřešit, nahrajte každou aktualizovanou aplikaci s nejnovějším certifikátem na samostatnou adresu URL pro nasazení. Zaveďte mechanismus, který vám připomene, že máte uplatnit podpisy migrace v době, kdy se certifikát nachází v poskytnuté lhůtě 180 dní. Další informace naleznete v tématu „Podepisování aktualizované verze aplikace AIR“ na stránce 197. Informace o použití podpisů naleznete v části „Příkazy nástroje ADT“ na stránce 163. Následující zásady zjednoduší proces použití podpisů migrace: • Každou aktualizovanou aplikaci nahrajte na samostatnou adresu URL pro nasazení. • Na stejnou adresu URL nahrajte také upgrade souboru deskriptoru XML a nejnovější certifikát pro aktualizaci. • Podepište aktualizovanou aplikaci nejnovějším certifikátem. • Pomocí certifikátu použitého k podepsání předchozí verze, jež je umístěna na jiné adrese URL, uplatněte u aktualizované aplikace podpis migrace. Poslední aktualizace 31.8.2016 258 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR Zobrazení vlastního uživatelského rozhraní pro aktualizaci aplikace AIR zahrnuje výchozí rozhraní pro aktualizaci: Toto rozhraní je použito vždy, když uživatel poprvé instaluje na svém počítači nějakou verzi aplikace. Můžete však definovat své vlastní rozhraní pro použití pro následné instance. Pokud vaše aplikace definuje vlastní rozhraní pro aktualizaci, určete v souboru deskriptoru aplikace pro aktuálně instalovanou aplikaci element customUpdateUI: <customUpdateUI>true</customUpdateUI> Jakmile je aplikace instalována a uživatel otevře soubor AIR s ID aplikace a ID vydavatele, které se shodují s instalovanou aplikací, chod programu otevře aplikaci a ne výchozí instalátor aplikace AIR. Další informace naleznete v části „customUpdateUI“ na stránce 214. Aplikace může rozhodnout, když je spuštěna (když objekt NativeApplication.nativeApplication odešle událost load), zda provede aktualizaci aplikace (pomocí třídy Updater). Jestliže se rozhodne pro aktualizaci, může uživateli předložit své vlastní instalační rozhraní (které se liší od standardního spuštěného rozhraní). Stažení souboru AIR do počítače uživatele Chcete-li použít třídu Updater, musí uživatel nebo aplikace nejprve uložit soubor AIR místně do počítače uživatele. Poznámka: Prostředí AIR 1.5 obsahuje aktualizační rámec, pomocí kterého mohou vývojáři v aplikacích AIR zajišťovat dobré aktualizační možnosti. Tento rámec můžete používat daleko jednodušeji, než když použijete přímo metodu update() třídy Update. Podrobnosti naleznete v části „Použití aktualizačního rámce“ na stránce 262. Následující kód načte soubor AIR z URL (http://example.com/air/updates/Sample_App_v2.air) a soubor AIR uloží do ukládacího adresáře aplikace. Příklad jazyka ActionScript: Poslední aktualizace 31.8.2016 259 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR var urlString:String = "http://example.com/air/updates/Sample_App_v2.air"; var urlReq:URLRequest = new URLRequest(urlString); var urlStream:URLStream = new URLStream(); var fileData:ByteArray = new ByteArray(); urlStream.addEventListener(Event.COMPLETE, loaded); urlStream.load(urlReq); function loaded(event:Event):void { urlStream.readBytes(fileData, 0, urlStream.bytesAvailable); writeAirFile(); } function writeAirFile():void { var file:File = File.applicationStorageDirectory.resolvePath("My App v2.air"); var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.WRITE); fileStream.writeBytes(fileData, 0, fileData.length); fileStream.close(); trace("The AIR file is written."); } Příklad jazyka JavaScript: var urlString = "http://example.com/air/updates/Sample_App_v2.air"; var urlReq = new air.URLRequest(urlString); var urlStream = new air.URLStream(); var fileData = new air.ByteArray(); urlStream.addEventListener(air.Event.COMPLETE, loaded); urlStream.load(urlReq); function loaded(event) { urlStream.readBytes(fileData, 0, urlStream.bytesAvailable); writeAirFile(); } function writeAirFile() { var file = air.File.desktopDirectory.resolvePath("My App v2.air"); var fileStream = new air.FileStream(); fileStream.open(file, air.FileMode.WRITE); fileStream.writeBytes(fileData, 0, fileData.length); fileStream.close(); trace("The AIR file is written."); } Další informace viz: • Pracovní postup pro čtení a zápis souborů (pro vývojáře používající jazyk ActionScript) • Pracovní postup pro čtení a zápis souborů (pro vývojáře používající jazyk HTML) Zjištění, zda je aplikace spuštěná poprvé Jakmile jste aktualizovali aplikaci, možná budete chtít poskytnout uživateli zprávu „začínáme“ nebo „vítejte“. Po spuštění aplikace zkontroluje, jestli je spuštěná poprvé, aby mohla určit, zda je třeba tuto zprávu zobrazit. Poslední aktualizace 31.8.2016 260 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR Poznámka: Prostředí AIR 1.5 obsahuje aktualizační rámec, pomocí kterého mohou vývojáři v aplikacích AIR zajišťovat dobré aktualizační možnosti. Tento rámec poskytuje metody, pomocí kterých lze snadno zkontrolovat, zda je verze aplikace spuštěna poprvé. Podrobnosti naleznete v části „Použití aktualizačního rámce“ na stránce 262. Jeden způsob, jak to udělat, je po inicializaci aplikace uložit soubor do ukládacího adresáře aplikace. Aplikace by při každém svém spuštění měla zkontrolovat existenci tohoto souboru. Pokud daný soubor neexistuje, znamená to, že aplikace je u aktuálního uživatele spuštěná poprvé. Pokud soubor existuje, aplikace již byla minimálně jednou spuštěná. Jestliže soubor existuje a obsahuje starší číslo verze, než je aktuální číslo verze, pak víte, že uživatel má novou verzi spuštěnou poprvé. Tato koncepce je znázorněna v následujícím příkladu architektury Flex: <?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" title="Sample Version Checker Application" applicationComplete="system extension()"> <mx:Script> <![CDATA[ import flash.filesystem.*; public var file:File; public var currentVersion:String = "1.2"; public function system extension():void { file = File.applicationStorageDirectory; file = file.resolvePath("Preferences/version.txt"); trace(file.nativePath); if(file.exists) { checkVersion(); } else { firstRun(); } } private function checkVersion():void { var stream:FileStream = new FileStream(); stream.open(file, FileMode.READ); var reversion:String = stream.readUTFBytes(stream.bytesAvailable); stream.close(); if (reversion != currentVersion) { log.text = "You have updated to version " + currentVersion + ".\n"; Poslední aktualizace 31.8.2016 261 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR } else { saveFile(); } log.text += "Welcome to the application."; } private function firstRun():void { log.text = "Thank you for installing the application. \n" + "This is the first time you have run it."; saveFile(); } private function saveFile():void { var stream:FileStream = new FileStream(); stream.open(file, FileMode.WRITE); stream.writeUTFBytes(currentVersion); stream.close(); } ]]> </mx:Script> <mx:TextArea ID="log" width="100%" height="100%" /> </mx:WindowedApplication> Následující příklad demonstruje tuto koncepci v jazyce JavaScript. <html> <head> <script src="AIRAliases.js" /> <script> var file; var currentVersion = "1.2"; function system extension() { file = air.File.appStorageDirectory.resolvePath("Preferences/version.txt"); air.trace(file.nativePath); if(file.exists) { checkVersion(); } else { firstRun(); } } function checkVersion() { var stream = new air.FileStream(); stream.open(file, air.FileMode.READ); var reversion = stream.readUTFBytes(stream.bytesAvailable); stream.close(); if (reversion != currentVersion) { window.document.getElementById("log").innerHTML = "You have updated to version " + currentVersion + ".\n"; } else { saveFile(); } window.document.getElementById("log").innerHTML += "Welcome to the application."; Poslední aktualizace 31.8.2016 262 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR } function firstRun() { window.document.getElementById("log").innerHTML = "Thank you for installing the application. \n" + "This is the first time you have run it."; saveFile(); } function saveFile() { var stream = new air.FileStream(); stream.open(file, air.FileMode.WRITE); stream.writeUTFBytes(currentVersion); stream.close(); } </script> </head> <body onLoad="system extension()"> <textarea ID="log" rows="100%" cols="100%" /> </body> </html> Jestliže vaše aplikace ukládá data místně (např. do ukládacího adresáře aplikace), možná budete chtít při prvním spuštění prověřit veškerá dříve uložená data (z předcházejících verzí). Použití aktualizačního rámce Správa aktualizací pro aplikace může být zdlouhavá. Aktualizační rámec pro aplikace AdobeAIRnabízí rozhraní API, která vývojářům umožňují poskytovat v aplikacích AIR robustní schopnosti aktualizace. Aktualizační rámec pro prostředí AIR zajišťuje pro vývojáře následující úlohy: • Pravidelná kontrola aktualizací v určitém intervalu nebo podle požadavku uživatele • Stahování souborů AIR (aktualizací) z webového zdroje • Upozornění uživatele na první spuštění nově nainstalované verze • Potvrzení, že uživatel chce zkontrolovat aktualizace • Zobrazení informací o nové verzi aktualizace pro uživatele • Zobrazení průběhu stahování a informací o chybách pro uživatele Aktualizační rámec AIR nabízí pro vaše aplikace vlastní ukázkové rozhraní. To uživateli poskytuje základní informace a možnosti konfigurace týkající se aktualizací aplikace. Vaše aplikace může také definovat vlastní uživatelské rozhraní, které se má používat pro aktualizační rámec. Aktualizační rámec AIR umožňuje ukládat informace o verzi aktualizace aplikace AIR do jednoduchých konfiguračních souborů XML. Pokud nastavíte tyto konfigurační soubory tak, aby zahrnovaly základní kód, můžete u většiny aplikací poskytnout koncovému uživateli kvalitní možnosti aktualizace. Dokonce i když aktualizační rozhraní nepoužijete, zahrne prostředí Adobe AIR třídu Updater, kterou mohou aplikace AIR použít k aktualizaci na nové verze. Třída Updater aplikacím umožňuje provést aktualizaci na verzi, která je obsažena v souboru AIR v počítači uživatele. Správa aktualizací však může obsahovat více možností, než je pouze nechat aplikaci aktualizovat na základě místně uloženého souboru AIR. Poslední aktualizace 31.8.2016 263 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR Soubory aktualizačního rámce prostředí AIR Aktualizační rámec prostředí AIR je uložen v adresáři frameworks/libs/air sady AIR 2 SDK. Ten obsahuje následující soubory: • applicationupdater.swc – Definuje základní funkce aktualizační knihovny, je určen k použití v jazyce ActionScript. Tato verze neobsahuje žádné uživatelské rozhraní. • applicationupdater.swf – Definuje základní funkce aktualizační knihovny, je určen k použití v jazyce JavaScript. Tato verze neobsahuje žádné uživatelské rozhraní. • applicationupdater_ui.swc – Definuje základní funkce aktualizační knihovny verze Flex 4, obsahuje uživatelské rozhraní, které může vaše aplikace použít k zobrazení možností aktualizace. • applicationupdater_ui.swf – Definuje základní funkce aktualizační knihovny verze JavaScript, obsahuje uživatelské rozhraní, které může vaše aplikace použít k zobrazení možností aktualizace. Další informace naleznete v těchto částech: • „Nastavení vývojového prostředí Flex“ na stránce 263 • „Zahrnutí souborů rámce do aplikací AIR založených na jazyce HTML“ na stránce 263 • „Základní příklad: Použití verze ApplicationUpdaterUI“ na stránce 264 Nastavení vývojového prostředí Flex Soubory SWC v adresáři frameworks/libs/air sady AIR 2 SDK definují třídy, které lze použít ve vývojovém prostředí Flex a Flash. Chcete-li používat aktualizační rámec při kompilování pomocí sady Flex SDK, zahrňte do volání kompilátoru amxmlc buď soubor ApplicationUpdater.swc nebo ApplicationUpdater_UI.swc. V následujícím příkladě načítá kompilátor soubor ApplicationUpdater.swc do podadresáře lib adresáře sady Flex SDK: amxmlc -library-path+=lib/ApplicationUpdater.swc -- myApp.mxml V následujícím příkladě načítá kompilátor soubor ApplicationUpdater_UI.swc do podadresáře lib adresáře sady Flex SDK: amxmlc -library-path+=lib/ApplicationUpdater_UI.swc -- myApp.mxml Pokud při vývoji používáte aplikaci Flex Builder, přidejte v dialogovém okně Vlastnosti do nastavení cesty vytvoření Flex na záložce Cesta knihovny soubor SWC. Nezapomeňte soubory SWC zkopírovat do adresáře, na který budete odkazovat v kompilátoru amxmlc (pomocí sady Flex SDK) nebo v aplikaci Flash Builder. Zahrnutí souborů rámce do aplikací AIR založených na jazyce HTML Adresář aktualizačního rámce frameworks/html obsahuje tyto soubory: • applicationUpdater.swf – Definuje základní funkce aktualizační knihovny, neobsahuje žádné uživatelské rozhraní. • applicationUpdater_UI.swf – Definuje základní funkce aktualizační knihovny, obsahuje uživatelské rozhraní, které může vaše aplikace použít k zobrazení možností aktualizace. Kód jazyka JavaScript v aplikacích AIR může používat třídy, které jsou definovány v souborech SWF. Chcete-li používat aktualizační rámec, vložte do adresáře (nebo podadresáře) aplikace soubor ApplicationUpdater.swf nebo ApplicationUpdater_UI.swf. Potom do souboru HTML, který bude tento rámec (v jazyce JavaScript) používat, vložte tag script načítající tento soubor: <script src="applicationUpdater.swf" type="application/x-shockwave-flash"/> Poslední aktualizace 31.8.2016 264 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR K načtení souboru applicationUpdater_UI.swf můžete použít také tento tag script: <script src="applicationupdater_ui.swf" type="application/x-shockwave-flash"/> Rozhraním API, která jsou definována v těchto dvou souborech, se věnuje zbývající část tohoto dokumentu. Základní příklad: Použití verze ApplicationUpdaterUI Verze ApplicationUpdaterUI aktualizačního rámce poskytuje základní rozhraní, které můžete snadno využívat ve své aplikaci. Následuje základní příklad. Nejdříve vytvořte aplikaci AIR, která volá aktualizační rámec: 1 Pokud je vaše aplikace AIR založena na jazyce HTML, načtěte soubor applicationupdaterui.swf: <script src="ApplicationUpdater_UI.swf" type="application/x-shockwave-flash"/> 2 Konkretizujte v programové logice aplikace AIR objekt ApplicationUpdaterUI. V jazyku ActionScript použijte následující kód: var appUpdater:ApplicationUpdaterUI = new ApplicationUpdaterUI(); V jazyku JavaScript použijte následující kód: var appUpdater = new runtime.air.update.ApplicationUpdaterUI(); Tento kód bude možná potřeba přidat do inicializační funkce, která se spouští při načtení aplikace. 3 Vytvořte textový soubor s názvem „updateConfig.xml“ a do tohoto souboru přidejte následující kód: <?xml version="1.0" encoding="utf-8"?> <configuration xmlns="http://ns.adobe.com/air/framework/update/configuration/1.0"> <url>http://example.com/updates/update.xml</url> <delay>1</delay> </configuration> Upravte element URL souboru updateConfig.xml tak, aby odpovídal konečnému umístění souboru deskriptoru aktualizace na webovém serveru (viz následující postup). Hodnota delay představuje počet dnů, po které aplikace mezi kontrolami aktualizaci čeká. 4 Přidejte soubor updateConfig.xml do adresáře projektu aplikace AIR. 5 Objekt nástroje updater nechte odkazovat na soubor updateConfix.xml a volejte metodu initialize() objektu. V jazyku ActionScript použijte následující kód: appUpdater.configurationFile = new File("app:/updateConfig.xml"); appUpdater.initialize(); V jazyku JavaScript použijte následující kód: appUpdater.configurationFile = new air.File("app:/updateConfig.xml"); appUpdater.initialize(); 6 Vytvořte druhou verzi prostředí AIR, která má jinou verzi než první prostředí. (Verze je určena v souboru deskriptoru aplikace v elementu version.) V dalším kroku přidejte tuto verzi aktualizace aplikace AIR na webový server: 1 Umístěte verzi aktualizace souboru AIR na webový server. 2 Vytvořte textový soubor s názvem „updateDescriptor.2.5.xml“ a přidejte do něj následující obsah: Poslední aktualizace 31.8.2016 265 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR <?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/2.5"> <versionNumber>1.1</versionNumber> <url>http://example.com/updates/sample_1.1.air</url> <description>This is the latest version of the Sample application.</description> </update> Upravte elementy versionNumber, URL a description souboru updateDescriptor.xml tak, aby odpovídaly souboru aktualizace AIR. Tento formát deskriptoru aktualizace používají aplikace pomocí aktualizačního rámce obsaženého v sadě AIR 2.5 SDK (a novějších). 3 Vytvořte textový soubor s názvem „updateDescriptor.1.0.xml“ a přidejte do něj následující obsah: <?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/1.0"> <version>1.1</version> <url>http://example.com/updates/sample_1.1.air</url> <description>This is the latest version of the Sample application.</description> </update> Upravte elementy version, URL a description souboru updateDescriptor.xml tak, aby odpovídaly souboru aktualizace AIR. Tento formát deskriptoru aktualizace používají aplikace pomocí aktualizačního rámce obsaženého v sadě AIR 2 SDK (a starších). Poznámka: Vytvoření tohoto druhého souboru deskriptoru aktualizace je nezbytné pouze v případě, že podporujete aktualizace aplikací vytvořených v prostředích AIR starších než verze 2.5. 4 Soubory updateDescriptor.2.5.xml a updateDescriptor.1.0.xml přidejte do adresáře webového serveru, který obsahuje soubor aktualizace aplikace AIR. I když se jedná pouze o základní příklad, poskytuje základní funkce, které jsou pro většinu aplikací dostačující. Zbývající části tohoto dokumentu popisují, jak používat aktualizační rámec způsobem, který nejlépe vyhoví vašim potřebám. Další příklad použití aktualizačního rámce představuje následující ukázková aplikace ve středisku pro vývojáře v prostředí Adobe AIR: • Aktualizační rámec v aplikaci Flash (http://www.adobe.com/go/learn_air_qs_update_framework_flash_cz) Aktualizace na verzi AIR 2.5 Protože ve verzi AIR 2.5 se změnila pravidla pro přidělování čísel verzí aplikacím, nelze pomocí aktualizačního rámce AIR 2 analyzovat informace o verzi v deskriptoru aplikace AIR 2.5. Tato nekompatibilita znamená, že PŘEDTÍM, než aktualizujete aplikaci pro používání sady AIR 2.5 SDK, je nutné ji nejprve aktualizovat tak, aby používala nový aktualizační rámec. Aktualizace aplikace na verzi AIR 2.5 nebo novější z libovolné verze prostředí AIR starší než 2.5 tedy vyžaduje DVĚ aktualizace. První aktualizace musí použít obor názvů prostředí AIR 2 a zahrnuje knihovnu aktualizačního rámce AIR 2.5 (můžete vytvořit balíček aplikace pomocí sady AIR 2.5 SDK). Druhá aktualizace může využít obor názvů prostředí AIR 2.5 a zahrne nové funkce vaší aplikace. Můžete také využít meziaktualizace, která neprovede žádnou akci vyjma aktualizace aplikace AIR 2.5 přímo pomocí třídy Updater. Poslední aktualizace 31.8.2016 266 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR Následující příklad ukazuje, jak aktualizovat aplikaci z verze 1.0 na 2.0. Verze 1.0 přitom používá starý obor názvů 2.0. Verze 2.0 používá obor názvů 2.5 a obsahuje nové funkce, které jsou implementovány pomocí rozhraní API prostředí AIR 2.5. 1 Vytvořte meziverzi aplikace, označenou jako 1.0.1, která bude vycházet z verze 1.0. a Při tvorbě aplikace použijte rámec AIR 2.5 Application Updater. Poznámka: U aplikací AIR založených na technologii Flash použijte soubor applicationupdater.swc nebo applicationupdater_ui.swc, u aplikací AIR založených na jazyce HTML pak soubor applicationupdater.swf nebo applicationupdater_ui.swf. b Vytvořte soubor deskriptoru aktualizace pro verzi 1.0.1 pomocí starého oboru názvů a verze, jak je popsáno dále: <?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/2.0"> <version>1.0.1</version> <url>http://example.com/updates/sample_1.0.1.air</url> <description>This is the intermediate version.</description> </update> 2 Vytvořte verzi 2.0 aplikace, která bude používat rozhraní API prostředí AIR 2.5 a obor názvů 2.5. 3 Vytvořte deskriptor aktualizace pro aktualizaci aplikace z verze 1.0.1 na verzi 2.0. <?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/2.5"> <version>2.0</version> <url>http://example.com/updates/sample_2.0.air</url> <description>This is the intermediate version.</description> </update> Definování souborů deskriptoru aktualizace a přidání souboru AIR na webový server Při používání aktualizačního rámce AIR definujete základní informace o dostupné aktualizaci v souborech deskriptoru aktualizace, jež se ukládají na webový server. Soubor deskriptoru aktualizace je jednoduchý soubor XML. Aktualizační rámec obsažený v aplikaci pomocí kontroly tohoto souboru zjišťuje, zda byla nahrána nová verze. Formát souboru deskriptoru aktualizace se v prostředí AIR 2.5 změnil. Nový formát používá odlišný obor názvů. Původní obor názvů je http://ns.adobe.com/air/framework/update/description/1.0. Obor názvů prostředí AIR 2.5 http://ns.adobe.com/air/framework/update/description/2.5. Aplikace AIR vytvořené ve verzích starších než 2.5 dokážou číst pouze deskriptor aktualizace verze 1.0. Aplikace AIR vytvořené pomocí aktualizačního rámce obsaženého ve verzí AIR 2.5 nebo novější dokážou číst pouze deskriptor aktualizace verze 2.5. Vzhledem k této nekompatibilitě verzí je často nutné vytvořit dva soubory deskriptoru aktualizace. Logika aktualizace ve verzi aplikace pro prostředí AIR 2.5 musí stahovat deskriptor aktualizace, který používá nový formát. Starší verze aplikace AIR musejí i nadále používat původní formát. Oba soubory je třeba upravit pro každou aktualizaci, kterou vydáte (dokud nezastavíte podporu verzí vytvořených před uvedením prostředí AIR 2.5). Soubor deskriptoru aktualizace obsahuje následující data: • versionNumber – Nová verze aplikace AIR. Element versionNumber použijte v deskriptorech aktualizace, jež slouží k aktualizaci aplikací AIR 2.5. Hodnota musí být stejný řetězec, jaký se používá v elementuversionNumber nového souboru deskriptoru aplikace AIR. Pokud číslo verze v souboru deskriptoru aktualizace neodpovídá číslu verze souboru aktualizace AIR, vyvolá aktualizační rámec výjimku. Poslední aktualizace 31.8.2016 267 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR • version – Nová verze aplikace AIR. Element version v deskriptorech aktualizace slouží k aktualizaci aplikací vytvořených před uvedením prostředí AIR 2.5. Hodnota musí být stejný řetězec, jaký je použit v elementu version nového souboru deskriptoru aplikace AIR. Pokud verze v souboru deskriptoru aktualizace neodpovídá verzi souboru aktualizace AIR, vyvolá aktualizační rámec výjimku. • versionLabel – Řetězec verze ve formátu čitelném pro člověka, který je určen k zobrazování uživatelům. Parametr versionLabel je volitelný, ale lze jej zadat pouze v souborech deskriptoru aktualizace ve verzi 2.5. Použijte jej v případě, že používáte parametr versionLabelv deskriptoru aplikace, a nastavte jej na tutéž hodnotu. • url – Umístění souboru aktualizace AIR. Toto je soubor, který obsahuje verzi aktualizace aplikace AIR. • description – Podrobný popis nové verze. Tyto informace je možné během procesu aktualizace zobrazit uživateli. Elementy version a url jsou povinné. Element description je volitelný. Zde je ukázkový soubor deskriptoru aktualizace ve verzi 2.5: <?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/2.5"> <versionNumber>1.1.1</versionNumber> <url>http://example.com/updates/sample_1.1.1.air</url> <description>This is the latest version of the Sample application.</description> </update> A zde je ukázkový soubor deskriptoru aktualizace ve verzi 1.0: <?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/1.0"> <version>1.1.1</version> <url>http://example.com/updates/sample_1.1.1.air</url> <description>This is the latest version of the Sample application.</description> </update> Pokud chcete definovat tag description pomocí více jazyků, použijte více elementů text definujících atribut lang: <?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/2.5"> <versionNumber>1.1.1</versionNumber> <url>http://example.com/updates/sample_1.1.1.air</url> <description> <text xml:lang="en">English description</text> <text xml:lang="fr">French description</text> <text xml:lang="ro">Romanian description</text> </description> </update> Umístěte soubor deskriptoru aplikace i soubor aktualizace AIR na webový server. Adresář templates obsažený v deskriptoru aktualizace obsahuje ukázkové soubory deskriptoru aktualizace, které obsahují jednojazyčné i vícejazyčné verze. Konkretizace objektu nástroje updater Až načtete aktualizační rámec AIR do kódu (viz části „Nastavení vývojového prostředí Flex“ na stránce 263 a „Zahrnutí souborů rámce do aplikací AIR založených na jazyce HTML“ na stránce 263), je třeba konkretizovat objekt nástroje updater tak, jak vidíte níže. Příklad jazyka ActionScript: var appUpdater:ApplicationUpdater = new ApplicationUpdater(); Poslední aktualizace 31.8.2016 268 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR Příklad jazyka JavaScript: var appUpdater = new runtime.air.update.ApplicationUpdater(); Předchozí kód používá třídu ApplicationUpdater (která neposkytuje žádné uživatelské rozhraní). Pokud chcete používat třídu ApplicationUpdaterUI (která uživatelské rozhraní poskytuje), použijte následující kód. Příklad jazyka ActionScript: var appUpdater:ApplicationUpdaterUI = new ApplicationUpdaterUI(); Příklad jazyka JavaScript: var appUpdater = new runtime.air.update.ApplicationUpdaterUI(); Zbývající ukázky kódu v tomto dokumentu předpokládají, že jste konkretizovali objekt nástroje updater s názvem appUpdater. Konfigurace nastavení aktualizace Verze ApplicationUpdater i ApplicationUpdaterUI lze konfigurovat prostřednictvím konfiguračního souboru dodaného s aplikací nebo prostřednictvím kódu jazyků ActionScript nebo JavaScript v aplikaci. Definice nastavení aktualizace v konfiguračním souboru XML Konfigurační soubor aktualizace je soubor ve formátu XML. Obsahuje následující elementy: • updateURL – Řetězec. Představuje umístění deskriptoru aktualizace na vzdáleném serveru. Je povolena jakákoli platná hodnota umístění URLRequest. Je třeba prostřednictvím konfiguračního souboru nebo skriptu definovat vlastnost updateURL (další informace v tématu „Definování souborů deskriptoru aktualizace a přidání souboru AIR na webový server“ na stránce 266). Tuto vlastnost musíte definovat dříve, než začnete nástroj updater používat (než voláte metodu initialize() objektu nástroje updater popsanou v části „Inicializace aktualizačního rámce“ na stránce 270). • delay – Číslo. Představuje časové období kontroly aktualizací vyjádřené ve dnech (jsou povoleny hodnoty typu 0.25). Hodnota 0 (výchozí) určuje, že nástroj updater pravidelnou automatickou kontrolu neprovádí. Kromě elementů updateURL a delay může konfigurační soubor pro verzi ApplicationUpdaterUI obsahovat i následující elementy: • defaultUI: Seznam elementů dialog. Každý element dialog má atribut name, který odpovídá dialogovému oknu v uživatelském rozhraní. Každý element dialog má atribut visible, který definuje, zda je dialogové okno viditelné. Výchozí hodnota je true. Atribut name může nabývat následujících hodnot: • "checkForUpdate" – Odpovídá dialogovým oknům Check for Update (Kontrola aktualizací), No Update (Žádné aktualizace) a Update Error (Chyba aktualizace). • "downloadUpdate" – Odpovídá dialogovému oknu Download Update (Stáhnutí aktualizace). • "downloadProgress" – Odpovídá dialogovým oknům Download Progress (Průběh stahování) a Download Error (Chyba stahování). • • "installUpdate" – Odpovídá dialogovému oknu Install Update (Instalace aktualizace). • "fileUpdate" – Odpovídá dialogovým oknům File Update (Aktualizace souboru), File No Update (Soubor bez aktualizace) a File Error (Chyba souboru). "unexpectedError" – Odpovídá dialogovému oknu Unexpected Error (Neočekávaná chyba). Pokud jsou nastaveny na false, odpovídající dialogové okno se během postupu aktualizace neobjeví. Poslední aktualizace 31.8.2016 269 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR Zde je příklad konfiguračního souboru pro rámec ApplicationUpdater: <?xml version="1.0" encoding="utf-8"?> <configuration xmlns="http://ns.adobe.com/air/framework/update/configuration/1.0"> <url>http://example.com/updates/update.xml</url> <delay>1</delay> </configuration> Zde je příklad konfiguračního souboru pro rámec ApplicationUpdaterUI, který obsahuje definici pro element defaultUI: <?xml version="1.0" encoding="utf-8"?> <configuration xmlns="http://ns.adobe.com/air/framework/update/configuration/1.0"> <url>http://example.com/updates/update.xml</url> <delay>1</delay> <defaultUI> <dialog name="checkForUpdate" visible="false" /> <dialog name="downloadUpdate" visible="false" /> <dialog name="downloadProgress" visible="false" /> </defaultUI> </configuration> Ukažte vlastností configurationFile na umístění tohoto souboru: Příklad jazyka ActionScript: appUpdater.configurationFile = new File("app:/cfg/updateConfig.xml"); Příklad jazyka JavaScript: appUpdater.configurationFile = new air.File("app:/cfg/updateConfig.xml"); Adresář templates aktualizačního rámce obsahuje ukázkový konfigurační soubor config-template.xml. Definice kódu jazyka ActionScript nebo JavaScript pro nastavení aktualizace Tyto parametry konfigurace lze také nastavit pomocí kódu v aplikaci (viz následující příklad): appUpdater.updateURL = " http://example.com/updates/update.xml"; appUpdater.delay = 1; Objekt nástroje updater má vlastnosti updateURL a delay. Tyto vlastnosti definují stejná nastavení jako elementy updateURL a delay v konfiguračním souboru – URL souboru deskriptoru aktualizace a prodlevu kontroly aktualizací. Pokud určíte konfigurační soubor a zároveň i nastavení v kódu, přepisují jakékoli vlastnosti nastavené pomocí kódu příslušná nastavení v konfiguračním souboru. Než nástroj updater použijete (než voláte metodu initialize() objektu nástroje updater popsanou v tématu „Definování souborů deskriptoru aktualizace a přidání souboru AIR na webový server“ na stránce 266), je třeba prostřednictvím konfiguračního souboru nebo skriptu definovat vlastnost updateURL (informace naleznete v tématu „Inicializace aktualizačního rámce“ na stránce 270). Rámec ApplicationUpdaterUI definuje tyto další vlastnosti objektu nástroje updater: • isCheckForUpdateVisible – Odpovídá dialogovým oknům Check for Update (Kontrola aktualizací), No Update (Žádné aktualizace) a Update Error (Chyba aktualizace). • isDownloadUpdateVisible – Odpovídá dialogovému oknu Download Update (Stáhnutí aktualizace). • isDownloadProgressVisible – Odpovídá dialogovým oknům Download Progress (Průběh stahování) a Download Error (Chyba stahování). • isInstallUpdateVisible – Odpovídá dialogovému oknu Install Update (Instalace aktualizace). Poslední aktualizace 31.8.2016 270 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR • isFileUpdateVisible – Odpovídá dialogovým oknům File Update (Aktualizace souboru), File No Update (Soubor bez aktualizace) a File Error (Chyba souboru). • isUnexpectedErrorVisible – Odpovídá dialogovému oknu Unexpected Error (Neočekávaná chyba). Každá vlastnost odpovídá jednomu nebo více dialogovým oknům v uživatelském rozhraní rámce ApplicationUpdaterUI. Každá vlastnost je Booleovská hodnota; výchozí hodnota je true. Pokud jsou nastaveny na false, odpovídající dialogová okna se během postupu aktualizace neobjeví. Tyto vlastnosti dialogových oken potlačí nastavení v souboru konfigurace aktualizace. Proces aktualizace K dokončení procesu aktualizace musí aktualizační rámec AIR projít následujícími kroky: 1 Inicializace nástroje updater zkontroluje, zda byla v rámci definovaného časového období prodlevy provedena kontrola aktualizace (viz část „Konfigurace nastavení aktualizace“ na stránce 268). Pokud má být provedena kontrola aktualizace, aktualizační proces pokračuje. 2 Nástroj updater stáhne a interpretuje soubor deskriptoru aktualizace. 3 Nástroj updater stáhne soubor aktualizace AIR. 4 Nástroj updater nainstaluje aktualizovanou verzi aplikace. Po dokončení každého jednotlivého kroku odesílá objekt nástroje updater příslušné události. Ve verzi ApplicationUpdater můžete události označující úspěšné dokončení kroků tohoto procesu zrušit. Pokud jednu z těchto událostí zrušíte, je zrušen i následující krok procesu. Ve verzi ApplicationUpdaterUI představuje nástroj updater dialogová okna, pomocí kterých mohou uživatelé v každém kroku procesu vybrat, zda chtějí proces zrušit nebo zda chtějí pokračovat. Pokud událost zrušíte a chcete v procesu pokračovat, můžete volat metody objektu nástroje updater. V průběhu procesu aktualizace zaznamenává verze nástroje updater ApplicationUpdater do vlastnosti currentState aktuální stav procesu aktualizace. Tato vlastnost je nastavena na řetězec, který může nabývat těchto hodnot: • "UNINITIALIZED" – Nástroj updater nebyl inicializován. • "INITIALIZING" – Nástroj updater se právě inicializuje. • "READY" – Nástroj updater byl inicializován. • "BEFORE_CHECKING" – Nástroj updater ještě nezkontroloval soubor deskriptoru aktualizace. • "CHECKING" – Nástroj updater právě kontroluje soubor deskriptoru aktualizace. • "AVAILABLE" – Soubor deskriptoru nástroje updater je k dispozici. • "DOWNLOADING" – Nástroj updater právě stahuje soubor AIR. • "DOWNLOADED" – Nástroj updater stáhl soubor AIR. • "INSTALLING" – Nástroj updater právě instaluje soubor AIR. • "PENDING_INSTALLING" – Nástroj updater byl inicializován a existují neprovedené aktualizace. Některé metody objektu nástroje updater se spouští pouze tehdy, pokud je nástroj updater v určitém stavu. Inicializace aktualizačního rámce Po nastavení vlastností konfigurace (viz část „Základní příklad: Použití verze ApplicationUpdaterUI“ na stránce 264) inicializujte aktualizaci voláním metody initialize(): Poslední aktualizace 31.8.2016 271 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR appUpdater.initialize(); Tato metoda provádí následující kroky: • Inicializuje aktualizační rámec, jakékoli neprovedené aktualizace nainstaluje synchronně na pozadí. Tuto metodu je třeba volat při spuštění aplikace, protože při jejím volání může dojít k restartování aplikace. • Zkontroluje, zda je k dispozici odložená aktualizace, a nainstaluje ji. • Pokud se během procesu aktualizace vyskytne chyba, vymaže z ukládacího prostoru aplikace informace o souboru a verzi aktualizace. • Pokud prodleva již vypršela, spustí proces aktualizace. V opačném případě restartuje časovač. Když voláte tuto metodu, může objekt nástroje updater odeslat následující událostí: • UpdateEvent.INITIALIZED – Odešle se při dokončení inicializace. • ErrorEvent.ERROR – Odešle se, když se během inicializace vyskytne chyba. Při odeslání události UpdateEvent.INITIALIZED je proces aktualizace dokončen. Voláte-li metodu initialize(), nástroj updater spustí proces aktualizace a dokončí všechny kroky na základě nastavení prodlevy v časovači. Proces aktualizace ale můžete také kdykoli spustit voláním metody checkNow() objektu nástroje updater: appUpdater.checkNow(); Pokud je proces aktualizace již spuštěný, neprovede tato metoda žádnou akci. V opačném případě spustí proces aktualizace. Když voláte metodu checkNow() může objekt nástroje updater odeslat následující událost: • UpdateEvent.CHECK_FOR_UPDATE: Tato událost je odeslána těsně před tím, než se objekt pokusí stáhnout soubor deskriptoru aktualizace. Pokud událost checkForUpdate zrušíte, můžete volat metodu checkForUpdate() objektu nástroje updater (viz následující část). Pokud tuto událost nezrušíte, pokračuje proces aktualizace ke kontrole souboru deskriptoru aktualizace. Správa procesu aktualizace ve verzi ApplicationUpdaterUI Ve verzi ApplicationUpdaterUI mohou uživatelé prostřednictvím tlačítek Zrušit v dialogových oknech uživatelského rozhraní tento proces zrušit. Proces aktualizace můžete také zrušit programaticky voláním metody cancelUpdate() objektu ApplicationUpdaterUI. Chcete-li určit, která dialogová okna nástroj updater zobrazuje, můžete nastavit vlastnosti objektu ApplicationUpdaterUI nebo definovat elementy v konfiguračním souboru aktualizace. Podrobnosti naleznete v části „Konfigurace nastavení aktualizace“ na stránce 268. Správa procesu aktualizace ve verzi ApplicationUpdater Chcete-li zrušit kroky procesu aktualizace, můžete volat metodu preventDefault() objektu událostí odeslaného objektem ApplicationUpdater (viz část „Proces aktualizace“ na stránce 270). Pokud zrušíte výchozí chování, může aplikace uživatelům zobrazit zprávu s dotazem, zda chtějí pokračovat. Následující části popisují způsob, jak pokračovat v procesu aktualizace, když byl některý krok tohoto procesu zrušen. Poslední aktualizace 31.8.2016 272 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR Stáhnutí a interpretace souboru deskriptoru aktualizace Před začátkem procesu aktualizace (těsně před tím, než se nástroj updater pokusí stáhnout soubor deskriptoru aktualizace) odešle objekt ApplicationUpdater událost checkForUpdate. Pokud zrušíte výchozí chování události checkForUpdate, nástroj updater nestáhne soubor deskriptoru aktualizace. Pokud chcete v procesu aktualizace pokračovat, volejte metodu checkForUpdate(): appUpdater.checkForUpdate(); Volání metody checkForUpdate() způsobí, že nástroj updater asynchronně stáhne a interpretuje soubor deskriptoru aktualizace. Výsledkem volání metody checkForUpdate() je, že objekt nástroje updater může odeslat následující události: • StatusUpdateEvent.UPDATE_STATUS – Nástroj updater úspěšně stáhnul a interpretoval soubor deskriptoru aktualizace. Tato událost má následující vlastnosti: • available – Booleovská hodnota. Pokud je dostupná jiná verze, než jaká je verze stávající aplikace, je nastavena na hodnotu true. V opačném případě (pokud je verze stejná) je nastavena na hodnotu false. • version – Řetězec. Verze souboru deskriptoru aplikace souboru aktualizace. • details – Pole. Pokud neexistují lokalizované verze popisu, vrací toto pole jako první element prázdný řetězec ("") a jako druhý element popis. Pokud v souboru deskriptoru aktualizace existuje více verzí popisu, obsahuje toto pole více podpolí. Každé pole má dva elementy. Prvním elementem je jazykový kód (například "en"), druhým je odpovídající popis pro tento jazyk (řetězec). Další informace naleznete v tématu „Definování souborů deskriptoru aktualizace a přidání souboru AIR na webový server“ na stránce 266. • StatusUpdateErrorEvent.UPDATE_ERROR – Došlo k chybě, nástroj updater nedokáže stáhnout nebo interpretovat soubor deskriptoru aktualizace. Stáhnutí souboru aktualizace AIR Poté, co nástroj updater úspěšně stáhne a interpretuje soubor deskriptoru aktualizace, odešle objekt ApplicationUpdater událost updateStatus. Výchozím chováním je spustit stahování, pokud je soubor aktualizace dostupný. Pokud toto výchozí chování zrušíte a chcete v procesu aktualizace pokračovat, můžete volat metodu downloadUpdate(): appUpdater.downloadUpdate(); Volání této metody způsobí, že nástroj Updater asynchronně stáhne verzi aktualizace souboru AIR. Metoda downloadUpdate() může odesílat následující události: • UpdateEvent.DOWNLOAD_START – Bylo navázáno připojení k serveru. Pokud používáte knihovnu ApplicationUpdaterUI, zobrazí tato událost dialogové okno s indikátorem průběhu umožňující sledovat průběh stahování. • ProgressEvent.PROGRESS – Odesílá se pravidelně v průběhu stahování souboru. • DownloadErrorEvent.DOWNLOAD_ERROR – Odešle se, pokud dojde při připojování nebo stahování souboru aktualizace k chybě. Odesílá se také pro neplatné stavy HTTP (jako je například hlášení informující o chybějícím souboru „404 - File not found“). Tato událost má vlastnost errorID; tato vlastnost je tvořena celým číslem, které definuje další informace o chybě. Další vlastnost subErrorID může obsahovat více informací o chybě. • UpdateEvent.DOWNLOAD_COMPLETE – Nástroj updater úspěšně stáhnul a interpretoval soubor deskriptoru aktualizace. Pokud tuto událost nezrušíte, verze ApplicationUpdater pokračuje a nainstaluje verzi aktualizace. Ve verzi ApplicationUpdaterUI se uživatelům zobrazí dialogové okno, kde mohou vybrat, zda chtějí pokračovat. Poslední aktualizace 31.8.2016 273 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR Aktualizace aplikace Když je stáhnutí souboru aktualizace dokončeno, odešle objekt ApplicationUpdater událost downloadComplete. Pokud toto výchozí chování zrušíte a chcete v procesu aktualizace pokračovat, můžete volat metodu installUpdate(): appUpdater.installUpdate(file); Voláním této metody nainstalujete verzi aktualizace souboru AIR. Tato metoda obsahuje jeden parametr – file. Jedná se o objekt File, který odkazuje na soubor AIR použitý pro aktualizaci. Když voláte metodu installUpdate(), může pak objekt ApplicationUpdater odeslat událost beforeInstall: • UpdateEvent.BEFORE_INSTALL – Odešle se těsně před instalací aktualizace. Někdy je vhodné zabránit okamžité instalaci aktualizace; uživatel tak může před pokračováním aktualizace dokončit stávající práci. Pokud voláte metodu preventDefault() objektu Event, odložíte instalaci až do dalšího restartování počítače. Také nelze spustit žádný další proces aktualizace (sem patří aktualizace inicializované voláním metody checkNow() nebo pravidelnými kontrolami). Instalace z libovolného souboru AIR Chcete-li provést instalaci ze souboru AIR v počítači uživatele, nainstalujte verzi aktualizace voláním metody installFromAIRFile(): appUpdater.installFromAIRFile(); Touto metodou nainstaluje nástroj updater verzi aktualizace aplikace ze souboru AIR. Metoda installFromAIRFile() může odesílat následující události: • StatusFileUpdateEvent.FILE_UPDATE_STATUS – Odešle se poté, co verze ApplicationUpdater odeslaný soubor úspěšně ověřila pomocí metody installFromAIRFile(). Tato událost má následující vlastnosti: • available – Pokud je dostupná jiná verze, než jaká je verze stávající aplikace, je nastavena na hodnotu true. V opačném případě (pokud jsou verze stejné) je nastavena na hodnotufalse. • version – Řetězec představující novou dostupnou verzi. • path – Představuje nativní cestu souboru aktualizace. Pokud je dostupná vlastnost objektu StatusFileUpdateEvent nastavena na hodnotu true, můžete tuto událost zrušit. Pokud tuto událost zrušíte, zrušíte pokračování aktualizace. Chcete-li ve zrušené aktualizaci pokračovat, volejte metodu installUpdate(). • StatusFileUpdateErrorEvent.FILE_UPDATE_ERROR – Došlo k chybě; nástroj updater nedokáže aplikaci AIR nainstalovat. Zrušení procesu aktualizace Pokud chcete proces aktualizace zrušit, volejte metodu cancelUpdate(): appUpdater.cancelUpdate(); Tato metoda zruší všechny neprovedené aktualizace, odstraní všechny zcela nestáhnuté soubory a restartuje časovač pravidelných kontrol. Pokud se objekt nástroje updater inicializuje, neprovede tato metoda žádnou akci. Poslední aktualizace 31.8.2016 274 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Aktualizace aplikací AIR Lokalizace rozhraní ApplicationUpdaterUI Třída ApplicationUpdaterUI poskytuje pro proces aktualizace výchozí uživatelské rozhraní. Součástí tohoto rozhraní jsou dialogová okna, která dávají uživatelům možnost tento proces spustit nebo zrušit a provádět související akce. Element description souboru deskriptoru aktualizace umožňuje definovat popis aplikace ve více jazycích pomocí více elementů text, které definují atributy lang (viz následující příklad): <?xml version="1.0" encoding="utf-8"?> <update xmlns="http://ns.adobe.com/air/framework/update/description/1.0"> <version>1.1a1</version> <url>http://example.com/updates/sample_1.1a1.air</url> <description> <text xml:lang="en">English description</text> <text xml:lang="fr">French description</text> <text xml:lang="ro">Romanian description</text> </description> </update> Aktualizační rámec používá popis, který nejlépe odpovídá lokalizačnímu řetězci koncového uživatele. Další informace naleznete v části Definice souboru deskriptoru aktualizace a přidání souboru AIR na webový server. Vývojáři pro prostředí Flex mohou nový jazyk přidat přímo do svazku "ApplicationUpdaterDialogs". Vývojáři pro prostředí jazyka JavaScript mohou volat metodu addResources() objektu nástroje updater. Tato metoda dynamicky přidává pro každý jazyk nový zdrojový svazek. Zdrojový svazek definuje pro jazyk lokalizované řetězce. Tyto řetězce jsou použité v různých textových polích dialogových oken. Vývojáři pro prostředí jazyka JavaScript mohou definovat místní řetězec použitý uživatelským rozhraním pomocí vlastnosti localeChain třídy ApplicationUpdaterUI. Tuto vlastnost obvykle používají vývojáři pro prostředí jazyka JavaScript (HTML). Vývojáři pro prostředí Flex mohou místní řetězec spravovat pomocí třídy ResourceManager. Následující kód jazyka JavaScript například definuje zdrojové svazky pro rumunštinu a maďarštinu: appUpdater.addResources("ro_RO", {titleCheck: "Titlu", msgCheck: "Mesaj", btnCheck: "Buton"}); appUpdater.addResources("hu", {titleCheck: "Cím", msgCheck: "Üzenet"}); var languages = ["ro", "hu"]; languages = languages.concat(air.Capabilities.languages); var sortedLanguages = air.Localizer.sortLanguagesByPreference(languages, air.Capabilities.language, "en-US"); sortedLanguages.push("en-US"); appUpdater.localeChain = sortedLanguages; Podrobnosti naleznete v referenční příručce jazyka v popisu metody addResources() třídy ApplicationUpdaterUI. Poslední aktualizace 31.8.2016 275 Kapitola 18: Prohlížení zdrojového kódu Stejně jako mohou uživatelé prohlížet zdrojový kód pro stránku HTML ve webovém prohlížeči, mohou prohlížet zdrojový kód aplikace AIR založené na HTML. Sada SDK aplikace Adobe® AIR® zahrnuje soubor AIRSourceViewer.js v jazyce JavaScript, který lze použít v aplikaci pro snazší odhalení zdrojového kódu koncovým uživatelům. Načtení, konfigurace a otevření prohlížeče Source Viewer Kód prohlížeče Source Viewer je začleněn v souboru AIRSourceViewer.js v jazyce JavaScript, který je obsažen v adresáři rámců sady AIR SDK. Chcete-li použít prohlížeč Source Viewer ve své aplikaci, zkopírujte soubor AIRSourceViewer.js do adresáře projektu aplikace a načtěte jej prostřednictvím tagu script do hlavního souboru HTML v dané aplikaci: <script type="text/javascript" src="AIRSourceViewer.js"></script> Soubor AIRSourceViewer.js definuje třídu SourceViewer, do níž lze získat přístup z kódu JavaScript voláním funkce air.SourceViewer. Třída SourceViewer definuje tři metody: getDefault(), setup() a viewSource(). Metoda Popis getDefault() Statická metoda. Vrací instanci objektu SourceViewer, pomocí níž lze volat ostatní metody. setup() Aplikuje nastavení konfigurace na prohlížeč Source Viewer. Podrobnosti naleznete v části „Konfigurace prohlížeče Source Viewer“ na stránce 275. viewSource() Otevře nové okno, ve kterém může uživatel vyhledat a otevřít zdrojové soubory hostitelské aplikace. Poznámka: Kód používající prohlížeč Source Viewer musí být v karanténě zabezpečení aplikace (v souboru v adresáři aplikace). Následující kód JavaScript například vytvoří instanci objektu Source Viewer a otevře okno prohlížeče Source Viewer obsahující seznam všech zdrojových souborů: var viewer = air.SourceViewer.getDefault(); viewer.viewSource(); Konfigurace prohlížeče Source Viewer Metoda config() aplikuje daná nastavení na prohlížeč Source Viewer. Tato metoda přijímá jediný parametr: configObject. Objekt configObject má vlastnosti definující nastavení konfigurace pro prohlížeč Source Viewer. Tyto vlastnosti jsou default, exclude, initialPosition, modal, typesToRemove a typesToAdd. default Řetězec určující relativní cestu k počátečnímu souboru, který má být zobrazen v prohlížeči Source Viewer. Následující kód JavaScript například otevře okno prohlížeče Source Viewer zobrazující soubor index.html jako počáteční soubor: Poslední aktualizace 31.8.2016 276 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Prohlížení zdrojového kódu var viewer = air.SourceViewer.getDefault(); var configObj = {}; configObj.default = "index.html"; viewer.viewSource(configObj); exclude Pole řetězců určující soubory nebo adresáře, jež mají být vyloučeny ze seznamu v prohlížeči Source Viewer. Cesty se vztahují k adresáři aplikace. Zástupné znaky nejsou podporovány. Následující kód JavaScript například otevře okno prohlížeče Source Viewer obsahující seznam všech zdrojových souborů kromě souboru AIRSourceViewer.js a souborů v podadresářích Obrazy a Zvuky. var viewer = air.SourceViewer.getDefault(); var configObj = {}; configObj.exclude = ["AIRSourceViewer.js", "Images" "Sounds"]; viewer.viewSource(configObj); initialPosition Pole zahrnující dvě čísla, jež určují počáteční souřadnice x a y okna prohlížeče Source Viewer. Následující kód JavaScript například otevře okno prohlížeče Source Viewer v souřadnicích obrazovky [40, 60] (X = 40, Y = 60): var viewer = air.SourceViewer.getDefault(); var configObj = {}; configObj.initialPosition = [40, 60]; viewer.viewSource(configObj); modal Booleovská hodnota udávající, zda má být okno prohlížeče Source Viewer modální (true) nebo nemodální (false). Implicitně je okno prohlížeče Source Viewer modální. Následující kód JavaScript například otevře okno prohlížeče Source Viewer, takže uživatel může interaktivně pracovat s oknem prohlížeče Source Viewer i libovolnými okny aplikace: var viewer = air.SourceViewer.getDefault(); var configObj = {}; configObj.modal = false; viewer.viewSource(configObj); typesToAdd Pole řetězců určující typy souborů, jež mají být zahrnuty do seznamu v prohlížeči Source Viewer kromě začleněných výchozích typů. Prohlížeč Source Viewer standardně zobrazuje seznam následujících typů souborů: • Textové soubory – TXT, XML, MXML, HTM, HTML, JS, AS, CSS, INI, BAT, PROPERTIES, CONFIG • Obrazové soubory – JPG, JPEG, PNG, GIF Není-li zadána žádná hodnota, jsou zahrnuty všechny výchozí typy (kromě typů definovaných ve vlastnosti typesToExclude). Následující kód JavaScript například otevře okno prohlížeče Source Viewer pro zahrnutí souborů VCF a VCARD: Poslední aktualizace 31.8.2016 277 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Prohlížení zdrojového kódu var viewer = air.SourceViewer.getDefault(); var configObj = {}; configObj.typesToAdd = ["text.vcf", "text.vcard"]; viewer.viewSource(configObj); U každého typu souborů na seznamu je nutné určit „text“ (u typů textových souborů) nebo „obraz“ (u typů obrazových souborů). typesToExclude Pole řetězců určující typy souborů, jež mají být vyloučeny z prohlížeče Source Viewer. Prohlížeč Source Viewer standardně zobrazuje seznam následujících typů souborů: • Textové soubory – TXT, XML, MXML, HTM, HTML, JS, AS, CSS, INI, BAT, PROPERTIES, CONFIG • Obrazové soubory – JPG, JPEG, PNG, GIF Následující kód JavaScript například otevře okno prohlížeče Source Viewer neobsahující soubory GIF a XML: var viewer = air.SourceViewer.getDefault(); var configObj = {}; configObj.typesToExclude = ["image.gif", "text.xml"]; viewer.viewSource(configObj); U každého typu souborů na seznamu je nutné určit „text" (u typů textových souborů) nebo „obraz" (u typů obrazových souborů). Otevření prohlížeče Source Viewer Je vhodné začlenit element uživatelského rozhraní, například odkaz, tlačítko nebo příkaz nabídky, který po zvolení uživatelem zavolá kód prohlížeče Source Viewer. Následující jednoduchá aplikace například otevře prohlížeč Source Viewer, když uživatel klikne na odkaz: <html> <head> <title>Source Viewer Sample</title> <script type="text/javascript" src="AIRSourceViewer.js"></script> <script type="text/javascript"> function showSources(){ var viewer = air.SourceViewer.getDefault(); viewer.viewSource() } </script> </head> <body> <p>Click to view the source files.</p> <input type="button" onclick="showSources()" value="View Source" /> </body> </html> Poslední aktualizace 31.8.2016 278 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Prohlížení zdrojového kódu Uživatelské rozhraní prohlížeče Source Viewer Když aplikace zavolá metodu viewSource() objektu SourceViewer, otevře aplikace AIR okno prohlížeče Source Viewer. Toto okno zahrnuje seznam zdrojových souborů a adresářů (nalevo) a plochu pro zobrazení, která obsahuje zdrojový kód pro vybraný soubor (napravo): Adresáře jsou uvedeny v závorkách. Uživatel může kliknutím na závorku rozbalit nebo sbalit výpis adresáře. Prohlížeč Source Viewer může zobrazit zdroj pro textové soubory s rozpoznanými příponami (např. HTML, JS, TXT, XML a jiné) nebo pro obrazové soubory s rozpoznanými příponami obrazů (JPG, JPEG, PNG a GIF). Jestliže uživatel vybere soubor, který nemá rozpoznanou příponu, zobrazí se chybová zpráva („Nelze načíst textový obsah z tohoto typu souboru“). Zdrojové soubory, které jsou vyloučeny pomocí metody setup(), nebudou na seznamu uvedeny (viz část „Načtení, konfigurace a otevření prohlížeče Source Viewer“ na stránce 275). Poslední aktualizace 31.8.2016 279 Kapitola 19: Ladění pomocí prohlížeče Introspector HTML aplikace AIR Sada SDK aplikace Adobe® AIR® zahrnuje soubor AIRIntrospector.js v jazyce JavaScript, který lze začlenit do aplikace pro usnadnění ladění aplikací založených na jazyce HTML. O prohlížeči Introspector aplikace AIR Prohlížeč Introspector aplikace Adobe AIR v jazyce HTML/JavaScript (nazývaný Introspector HTML aplikace AIR) poskytuje užitečné funkce, jež pomáhají při vývoji a ladění aplikací založených na jazyce HTML: • Zahrnuje nástroj pro introspekci, pomocí něhož lze ukázat na element uživatelského rozhraní v aplikaci a zobrazit jeho označení a vlastnosti DOM. • Zahrnuje konzolu pro odesílání odkazů na objekty k introspekci a lze upravovat hodnoty vlastností a provádět kód JavaScript. Rovněž lze serializovat objekty do konzoly, což omezuje úpravu dat. Text z konzoly je také možné kopírovat a ukládat. • Zahrnuje stromové zobrazení pro vlastnosti a funkce DOM. • Umožňuje úpravu atributů a textových uzlů pro elementy DOM. • Zobrazuje seznam vazeb, stylů CSS, obrazů a souborů JavaScript načtených v aplikaci. • Umožňuje prohlížení počátečního zdroje HTML a aktuálního zdroje označení pro uživatelské rozhraní. • Umožňuje přístup k souborům v adresáři aplikace. (Tato funkce je dostupná pouze pro konzolu Introspector HTML aplikace AIR otevřenou pro aplikační karanténu. Není k dispozici pro konzoly otevřené pro obsah neaplikační karantény.) • Zahrnuje prohlížeč objektů XMLHttpRequest a jejich vlastností, včetně vlastností responseText a responseXML (když jsou k dispozici). • Ve zdrojovém kódu a zdrojových souborech lze vyhledávat odpovídající text. Načtení kódu prohlížeč Introspector aplikace AIR Kód prohlížeče Introspector aplikace AIR je začleněn v souboru AIRIntrospector.js v jazyce JavaScript, který je obsažen v adresáři rámců sady AIR SDK. Chcete-li použít prohlížeč Introspector aplikace AIR ve své aplikaci, zkopírujte soubor AIRIntrospector.js do adresáře projektu aplikace a načtěte jej prostřednictvím tagu script do hlavního souboru HTML v dané aplikaci: <script type="text/javascript" src="AIRIntrospector.js"></script> Také tento soubor začleňte do každého souboru HTML, který odpovídá jiným nativním oknům v dané aplikaci. Důležité: Soubor AIRIntrospector.js začleňte pouze při vývoji a ladění aplikace. Ve sbalené aplikaci AIR, kterou distribuujete, jej odstraňte. Soubor AIRIntrospector.js definuje třídu Console, do níž lze získat přístup z kódu JavaScript voláním funkce air.Introspector.Console. Poslední aktualizace 31.8.2016 280 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Ladění pomocí prohlížeče Introspector HTML aplikace AIR Poznámka: Kód používající prohlížeč Introspector aplikace AIR musí být v karanténě zabezpečení aplikace (v souboru v adresáři aplikace). Prohlížení objektu na záložce Konzola Třída Console definuje pět metod: log(), warn(), info(), error() a dump(). Každá z metod log(), warn(), info() a error() umožňuje odeslání objektu na záložku Konzola. Nejzákladnější metodou je metoda log(). Následující kód odešle na záložku Konzola jednoduchý objekt znázorněný proměnnou test: var test = "hello"; air.Introspector.Console.log(test); Užitečnější je však odeslat na záložku Konzola složitý objekt. Následující stránka HTML například zahrnuje tlačítko (btn1), jež volá funkci, která na záložku Konzola odešle samotný objekt button: <html> <head> <title>Source Viewer Sample</title> <script type="text/javascript" src="scripts/AIRIntrospector.js"></script> <script type="text/javascript"> function logBtn() { var button1 = document.getElementById("btn1"); air.Introspector.Console.log(button1); } </script> </head> <body> <p>Click to view the button object in the Console.</p> <input type="button" id="btn1" onclick="logBtn()" value="Log" /> </body> </html> Poslední aktualizace 31.8.2016 281 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Ladění pomocí prohlížeče Introspector HTML aplikace AIR Po kliknutí na tlačítko se na záložce Konzola zobrazí objekt btn1, přičemž lze rozbalit stromovou strukturu objektu a prohlížet jeho vlastnosti: Vlastnost objektu lze upravit kliknutím na seznam vpravo od názvu vlastnosti a úpravou textového výpisu. Metody info(), error() a warn() jsou podobné metodě log(). Nicméně při volání těchto metod se na záložce Console zobrazí na začátku řádku ikona: Metoda Ikona info() error() warn() Metody log(), warn(), info() a error() odešlou odkaz pouze na skutečný objekt, takže dostupné vlastnosti jsou ty, které jsou k dispozici v okamžiku prohlížení. Jestliže chcete serializovat skutečný objekt, použijte metodu dump(). Tato metoda má dva parametry: Parametr Popis dumpObject Objekt určený k serializaci. levels Maximální počet úrovní, které se mají prohlížet ve stromu objektů (kromě kořenové úrovně). Výchozí hodnota je 1 (to znamená, že mimo kořenovou úroveň stromu bude zobrazena jedna úroveň). Tento parametr je nepovinný. Volání metody dump() serializuje objekt před jeho odesláním na záložku Konzola, aby nebylo možné upravovat vlastnosti objektu. Posuďte například následující kód: Poslední aktualizace 31.8.2016 282 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Ladění pomocí prohlížeče Introspector HTML aplikace AIR var testObject = new Object(); testObject.foo = "foo"; testObject.bar = 234; air.Introspector.Console.dump(testObject); Při provádění tohoto kódu se na záložce Console zobrazí objekt testObject a jeho vlastnosti, ale hodnoty vlastností nelze na záložce Console upravovat. Konfigurace prohlížeče Introspector aplikace AIR Konzolu lze konfigurovat nastavením vlastností globální proměnné AIRIntrospectorConfig. Následující kód JavaScript například konfiguruje prohlížeč Introspector aplikace AIR na zalamování sloupců na 100 znaků: var AIRIntrospectorConfig = new Object(); AIRIntrospectorConfig.wrapColumns = 100; Nezapomeňte nastavit vlastnosti proměnné AIRIntrospectorConfig před načtením souboru AIRIntrospector.js (prostřednictvím tagu script). Proměnná AIRIntrospectorConfig má osm vlastností: Vlastnost Výchozí hodnota Popis closeIntrospectorOnExit true Nastaví okno Inspektor, aby se zavřelo po zavření všech ostatních oken aplikace. debuggerKey 123 (klávesa F12) Kód klávesy pro klávesovou zkratku, která zobrazuje a skrývá okno prohlížeče Introspector aplikace AIR. debugRuntimeObjects true Nastavuje prohlížeč Introspector, aby kromě objektů definovaných v jazyce JavaScript rozbalil také objekty běhového modulu. flashTabLabels true Nastavuje záložky Konzola a XMLHttpRequest, aby blikaly, což značí, že na nich došlo ke změně (například po načtení textu na tyto záložky). introspectorKey 122 (klávesa F11) Kód klávesy pro klávesovou zkratku, která otevře panel Prohlížení. showTimestamp true Nastaví záložku Konzola, aby na začátku každé řádky zobrazila časové razítko. showSender true Nastaví záložku Konzola, aby na začátku každé řádky zobrazila informace o objektu odesílajícím zprávu. wrapColumns 2000 Počet sloupců, na které se zalamují zdrojové soubory. Rozhraní prohlížeče Introspector aplikace AIR Chcete-li při ladění aplikace otevřít okno Introspector aplikace AIR, stiskněte klávesu F12 nebo zavolejte jednu z metod třídy Console (viz „Prohlížení objektu na záložce Konzola“ na stránce 280). Horkou klávesu lze konfigurovat, aby se jednalo o jinou klávesu než F12 (viz „Konfigurace prohlížeče Introspector aplikace AIR“ na stránce 282). Poslední aktualizace 31.8.2016 283 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Ladění pomocí prohlížeče Introspector HTML aplikace AIR Okno Introspector aplikace AIR má šest záložek – Konzola, HTML, DOM, Datové zdroje, Zdroj a XHR, jak je znázorněno na následujícím obrázku: Záložka Konzola Na záložce Konzola se zobrazují hodnoty vlastností předaných jako parametry některé z metod třídy air.Introspector.Console. Podrobnosti naleznete v části „Prohlížení objektu na záložce Konzola“ na stránce 280. • Chcete-li konzolu vymazat, klikněte na text pravým tlačítkem myši a zvolte možnost Vymazat konzolu. Poslední aktualizace 31.8.2016 284 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Ladění pomocí prohlížeče Introspector HTML aplikace AIR • Pokud chcete text zobrazený na záložce Konzola uložit do souboru, klikněte na záložku Konzola pravým tlačítkem myši a zvolte možnost Uložit konzolu do souboru. • Jestliže chcete text zobrazený na záložce Konzola uložit do schránky, klikněte na záložku Konzola pravým tlačítkem myši a zvolte možnost Uložit konzolu do schránky. Chcete-li do schránky zkopírovat pouze vybraný text, klikněte na text pravým tlačítkem myši a zvolte možnost Kopírovat. • Pokud chcete text ve třídě Console uložit do souboru, klikněte na záložku Konzola pravým tlačítkem myši a zvolte možnost Uložit konzolu do souboru. • Chcete-li vyhledat odpovídající text zobrazený na záložce, stiskněte kombinaci kláves CTRL+F v systému Windows a Command+F v systému Mac OS. (Nebudou se prohledávat uzly stromu, které nejsou viditelné.) Záložka HTML Záložka HTML umožňuje prohlížení celého modelu DOM jazyka HTML ve stromové struktuře. Po kliknutí na element se na pravé straně záložky zobrazí jeho vlastnosti. Kliknutím na ikony + a - lze rozbalit a sbalit uzel ve stromu. Jakýkoliv atribut nebo textový element na záložce HTML je možné upravit a upravená hodnota se odrazí v aplikaci. Klikněte na tlačítko Prohlížet (vlevo od seznamu záložek v okně Introspector aplikace AIR). Na stránce HTML hlavního okna lze kliknout na jakýkoliv element a na záložce HTML se zobrazí přidružený objekt DOM. Když je hlavní okno aktivní, je rovněž možné stisknutím klávesové zkratky zapínat a vypínat tlačítko Prohlížet. Tato klávesová zkratka je standardně F11. Klávesovou zkratku lze konfigurovat, aby se jednalo o jinou klávesu než F11 (viz „Konfigurace prohlížeče Introspector aplikace AIR“ na stránce 282). Po kliknutí na tlačítko Obnovit aktivní okno (v horní části okna Introspector aplikace AIR) se obnoví data zobrazená na záložce HTML. Stisknutím kláves CTRL+F v systému Windows nebo Command+F v systému Mac OS lze vyhledat odpovídající text zobrazený na záložce. (Nebudou se prohledávat uzly stromu, které nejsou viditelné.) Poslední aktualizace 31.8.2016 285 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Ladění pomocí prohlížeče Introspector HTML aplikace AIR Záložka DOM Na záložce DOM je zobrazen objekt okna ve stromové struktuře. Jakýkoliv řetězec a číselné vlastnosti je možné upravit a upravená hodnota se odrazí v aplikaci. Po kliknutí na tlačítko Obnovit aktivní okno (v horní části okna Introspector aplikace AIR) se obnoví data zobrazená na záložce DOM. Stisknutím kláves CTRL+F v systému Windows nebo Command+F v systému Mac OS lze vyhledat odpovídající text zobrazený na záložce. (Nebudou se prohledávat uzly stromu, které nejsou viditelné.) Poslední aktualizace 31.8.2016 286 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Ladění pomocí prohlížeče Introspector HTML aplikace AIR Záložka Datové zdroje Na záložce Datové zdroje lze kontrolovat vazby, obrazy, CSS a soubory jazyka JavaScript načtené v nativním okně. Po rozbalení některého z těchto uzlů se zobrazí obsah souboru nebo skutečně použitý obraz. Po kliknutí na tlačítko Obnovit aktivní okno (v horní části okna Introspector aplikace AIR) se obnoví data zobrazená na záložce Datové zdroje. Stisknutím kláves CTRL+F v systému Windows nebo Command+F v systému Mac OS lze vyhledat odpovídající text zobrazený na záložce. (Nebudou se prohledávat uzly stromu, které nejsou viditelné.) Záložka Zdroj Záložka Zdroj zahrnuje tři oddíly: • Skutečný zdroj – zobrazuje zdroj HTML stránky načtené jako kořenový obsah při spuštění aplikace. • Analyzovaný zdroj – zobrazuje aktuální označení, jež tvoří uživatelské rozhraní aplikace. Může se lišit od skutečného zdroje, neboť aplikace generuje kód označení průběžně pomocí technologie Ajax. Poslední aktualizace 31.8.2016 287 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Ladění pomocí prohlížeče Introspector HTML aplikace AIR • Soubory aplikace – zobrazuje seznam souborů v adresáři aplikace. Tento seznam je pro prohlížeč Introspector aplikace AIR k dispozici pouze při spuštění z obsahu v karanténě zabezpečení aplikace. V tomto oddílu lze zobrazit obsah textových souborů nebo prohlížet obrázky. Po kliknutí na tlačítko Obnovit aktivní okno (v horní části okna Introspector aplikace AIR) se obnoví data zobrazená na záložce Zdroj. Stisknutím kláves CTRL+F v systému Windows nebo Command+F v systému Mac OS lze vyhledat odpovídající text zobrazený na záložce. (Nebudou se prohledávat uzly stromu, které nejsou viditelné.) Poslední aktualizace 31.8.2016 288 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Ladění pomocí prohlížeče Introspector HTML aplikace AIR Záložka XHR Záložka XHR přeruší veškerou komunikaci objektu XMLHttpRequest v aplikaci a vytvoří záznam informací. To umožňuje prohlížení vlastností objektu XMLHttpRequest ve stromovém zobrazení, včetně vlastností responseText a responseXML (když jsou k dispozici). Stisknutím kláves CTRL+F v systému Windows nebo Command+F v systému Mac OS lze vyhledat odpovídající text zobrazený na záložce. (Nebudou se prohledávat uzly stromu, které nejsou viditelné.) Použití prohlížeče Introspector aplikace AIR s obsahem v neaplikační karanténě Obsah z adresáře aplikace lze načíst do elementu iframe nebo do snímku mapovaného na neaplikační karanténu. (Viz téma Zabezpečení aplikace HTML v prostředí Adobe AIR pro vývojáře používající jazyk ActionScript nebo Zabezpečení aplikace HTML v prostředí Adobe AIR pro vývojáře používající jazyk HTML). S tímto obsahem lze prohlížeč Introspector aplikace AIR použít, je však třeba dodržovat následující pravidla: • Soubor AIRIntrospector.js musí být začleněn v aplikační karanténě, tak i v obsahu neaplikační karantény (iframe). • Nepřepisujte vlastnost parentSandboxBridge, kód prohlížeče Introspector aplikace AIR ji používá. Přidávejte vlastnosti podle potřeby. Takže místo zadání následujícího kódu: parentSandboxBridge = mytrace: function(str) {runtime.trace(str)}} ; použijte syntaxi jako je tato: parentSandboxBridge.mytrace = function(str) {runtime.trace(str)}; Poslední aktualizace 31.8.2016 289 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Ladění pomocí prohlížeče Introspector HTML aplikace AIR • Z obsahu neaplikační karantény nelze prohlížeč Introspector aplikace AIR otevřít stisknutím klávesy F12 ani voláním některé z metod ve třídě air.Introspector.Console. Okno prohlížeče Introspector lze otevřít pouze kliknutím na tlačítko Otevřít Introspector. Toto tlačítko se standardně přidá do pravého horního rohu elementu iframe nebo snímku. (Vzhledem k bezpečnostním omezením předepsaným pro obsah neaplikační karantény lze otevřít nové okno pouze v důsledku akce uživatele, např. po kliknutí na tlačítko.) • Je možné otevřít samostatná okna prohlížeče Introspector aplikace AIR pro aplikační karanténu a pro neaplikační karanténu. Tato dvě okna lze rozlišit pomocí názvu zobrazeného v oknech prohlížeče Introspector aplikace AIR. • Při spuštění prohlížeče Introspector aplikace AIR z neaplikační karantény nejsou na záložce Zdroj zobrazeny soubory aplikace. • Prohlížeč Introspector aplikace AIR může sledovat pouze kód v karanténě, ze které byl otevřen. Poslední aktualizace 31.8.2016 290 Kapitola 20: Lokalizace aplikací AIR Adobe AIR 1.1 a novější Aplikace Adobe® AIR™ zahrnuje podporu pro více jazyků. Přehled lokalizace obsahu v jazyce ActionScript 3.0 a architektuře Flex naleznete v Příručce pro vývojáře jazyka ActionScript 3.0 v části „Lokalizace aplikací“. Podporované jazyky v aplikaci AIR Ve vydání aplikace AIR 1.1 byla zavedena podpora lokalizace pro aplikace AIR v následujících jazycích: • Zjednodušená čínština • Tradiční čínština • Francouzština • Němčina • Italština • Japonština • Korejština • Brazilská portugalština • Ruština • Španělština Ve vydání aplikace AIR 1.5 byly přidány tyto jazyky: • Čeština • Holandština • Polština • Švédština • Turečtina Další témata Nápovědy Vytváření vícejazyčných aplikací Flex v prostředí Adobe AIR Vytvoření vícejazyčné aplikace založené na jazyce HTML Lokalizace názvu aplikace a popisu v instalačním programu aplikace AIR Adobe AIR 1.1 a novější Můžete specifikovat několik jazyků pro prvky name a description v popisovacím souboru aplikace. Například následující určuje název aplikace ve třech jazycích (angličtina, francouzština, němčina): Poslední aktualizace 31.8.2016 291 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Lokalizace aplikací AIR <name> <text xml:lang="en">Sample 1.0</text> <text xml:lang="fr">Échantillon 1.0</text> <text xml:lang="de">Stichprobe 1.0</text> </name> Atribut xml:lang pro každý textový element určuje jazykový kód; definice těchto kódů naleznete v dokumentu RFC4646 http://www.ietf.org/rfc/rfc4646.txt). Název prvku definuje název aplikace, který zobrazuje instalační program aplikace AIR. Instalační program aplikace AIR používá lokalizovanou hodnotu, která nejlépe odpovídá jazykům rozhraní definovaným nastavením operačního souboru. Podobně můžete specifikovat několik jazykových verzí prvku description v souboru popisovače aplikace. Tento prvek definuje text popisovače, který zobrazuje instalační program aplikace AIR. Tato nastavení platí pouze pro jazyk dostupný v instalačním programu aplikace AIR. Nedefinují lokální verze dostupné pro spuštění instalované aplikace. Aplikace AIR mohou poskytovat uživatelská rozhraní podporující více jazyků včetně těch, které jsou dostupné pro instalační program aplikace AIR. Další informace naleznete v části „Elementy deskriptoru aplikace AIR“ na stránce 206. Další témata Nápovědy Vytváření vícejazyčných aplikací Flex v prostředí Adobe AIR Vytvoření vícejazyčné aplikace založené na jazyce HTML Lokalizace obsahu HTML pomocí lokalizačního rámce HTML aplikace AIR Adobe AIR 1.1 a novější Balík AIR 1.1 SDK obsahuje lokalizační strukturu HTML. Soubor skriptu JavaScript AIRLocalizer.js tuto strukturu definuje. Adresář struktury balíku AIR SDK obsahuje soubor AIRLocalizer.js. Tento soubor zahrnuje třídu air.Localizer, která poskytuje funkci pro pomoc při vytváření aplikací podporujících lokalizované verze. Nahrávání kódu lokalizační struktury AIR HTML Chcete-li používat lokalizační strukturu, nakopírujte soubor AIRLocalizer.js do svého projektu. Pak ji zahrňte do hlavního souboru HTML aplikace, pomocí značky skriptu: <script src="AIRLocalizer.js" type="text/javascript" charset="utf-8"></script> Následující skript JavaScript může volat objekt air.Localizer.localizer: <script> var localizer = air.Localizer.localizer; </script> Objekt air.Localizer.localizer je jediný objekt, který definuje metody a vlastnosti pro použití a správu lokalizovaných zdrojů. Třída Localizer zahrnuje následující metody: Poslední aktualizace 31.8.2016 292 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Lokalizace aplikací AIR Metoda Popis getFile() Získává text specifikovaného zdrojového svazku pro specifikovanou lokální verzi. Viz „Získání zdrojů pro specifickou lokální verzi“ na stránce 297. getLocaleChain() Vrací jazyky v řetězci lokální verze. Další informace naleznete v tématu „Definování řetězce locale“ na stránce 297. getResourceBundle() Vrací klíče svazků a odpovídající hodnoty jako objekt. Viz „Získání zdrojů pro specifickou lokální verzi“ na stránce 297. getString() Získává řetězec definovaný pro zdroj. Viz „Získání zdrojů pro specifickou lokální verzi“ na stránce 297. setBundlesDirectory( ) Nastavuje umístění adresáře svazků. Další informace naleznete v tématu „Uzpůsobení nastavení lokalizátoru AIR HTML“ na stránce 296. setLocalAttributePre fix() Nastavuje prefix použitý lokalizačními atributy použitými v prvcích HTML DOM. Další informace naleznete v tématu „Uzpůsobení nastavení lokalizátoru AIR HTML“ na stránce 296. setLocaleChain() Nastavuje pořadí jazyků v řetězci lokální verze. Další informace naleznete v tématu „Definování řetězce locale“ na stránce 297. sortLanguagesByPrefe rence() Třídí lokální verze v řetězci lokální verze na základě pořadí lokálních verzí v nastavení operačního systému. Další informace naleznete v tématu „Definování řetězce locale“ na stránce 297. update() Aktualizuje HTML DOM (nebo prvek DOM) s lokalizovanými řetězci ze stávajícího řetězce lokální verze. Diskuse o řetězcích locale naleznete v tématu „Správa řetězců lokální verze“ na stránce 293. Informace o metodě update() naleznete v kapitole „Aktualizace prvků DOM pro použití ve stávající lokální verzi“ na stránce 295. Třída Localizer zahrnuje následující statické vlastnosti: Vlastnost Popis localizer Vrací odkaz na jediný objekt Localizer pro aplikaci. ultimateFallbackLocale Lokální verze použitá, když aplikace nepodporuje žádné uživatelské předvolby. Další informace naleznete v tématu „Definování řetězce locale“ na stránce 297. Určení podporovaných jazyků Element <supportedLanguages> v souboru deskriptoru aplikace slouží k identifikaci jazyků, které aplikace podporuje. Tento element používá pouze systém iOS, což je vázaný běhový modul Mac, a aplikace Android. Všechny ostatní typy aplikací jej ignorují. Nezadáte-li element <supportedLanguages>, potom balíčkovač v závislosti na typu aplikace automaticky provede následující akce: • iOS – všech jazyků podporovaných běhovým modulem AIR je v obchodě s aplikacemi Apple iOS uvedeno jako podporované jazyky aplikací. • Vázaný běhový modul Mac – aplikace zabalená pomocí kaptivního balíčku neobsahuje informace o lokalizaci. • Android – balíček aplikací má zdroje pro všechny jazyky podporované běhovým modulem AIR. Další informace viz element „supportedLanguages“ na stránce 235. Definování zdrojových svazků Lokalizační struktura HTML načte lokalizované verze řetězců ze souborů localization. Lokalizační soubor je sbírkou klíčových hodnot, sériově uspořádaných v textovém souboru. Lokalizační soubor je někdy popisován jako svazek. Poslední aktualizace 31.8.2016 293 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Lokalizace aplikací AIR Vytvořte podadresáře v adresáři aplikačního projektu, pojmenovaný locale. (Můžete také použít jiný název. Další informace naleznete v tématu „Uzpůsobení nastavení lokalizátoru AIR HTML“ na stránce 296.) Tento adresář bude zahrnovat lokalizační soubory. Tento adresář se nazývá adresářem svazků. Pro každou lokální verzi podporovanou vaší aplikací vytvořte podadresář v adresáři svazků. Pojmenujte každý podadresář tak, aby odpovídal kódu lokální verze. Například pojmenujte adresář francouzštiny „fr“ a angličtiny „en“. Můžete použít znak podtržítka (_) pro definování lokální verze, která má jazyk a kód země. Například pojmenujte adresář americké angličtiny „en_us“. (Alternativně můžete použít pomlčku namísto podtržítka, „en-us“. Lokalizační struktura HTML podporuje obojí.) Můžete přidat jakýkoliv počet zdrojových souborů do podadresáře lokální verze. Obecně vytvoříte lokalizační soubor pro každý jazyk (a umístíte jej do adresáře daného jazyka). Lokalizační struktura HTML zahrnuje metodu getFile(), která umožňuje načtení obsahu souboru (další informace naleznete v tématu „Získání zdrojů pro specifickou lokální verzi“ na stránce 297). Soubory, které mají příponu souboru .properties, jsou definovány jako lokalizační soubory vlastností. Můžete je používat pro definování párů klíčové hodnoty pro lokální verzi. Soubor vlastnosti definuje jednu hodnotu řetězce pro každý řádek. Například následující definice popisuje hodnotu řetězce "Hello in English." pro klíč pojmenovaný greeting: greeting=Hello in English. Soubor vlastnosti obsahující následující text definuje šest párů klíčových hodnot: title=Sample Application greeting=Hello in English. exitMessage=Thank you for using the application. color1=Red color2=Green color3=Blue Tento příklad ukazuje anglickou verzi souboru vlastností, která je uložena v adresáři en. Francouzská verze tohoto souboru je umístěna v adresáři fr. title=Application Example greeting=Bonjour en français. exitMessage=Merci d'avoir utilisé cette application. color1=Rouge color2=Vert color3=Bleu Můžete definovat několik zdrojových souborů pro různé typy informací. Například soubor legal.properties může obsahovat základní text právních informací (například o autorských právech). Tento zdroj můžete opakovaně použít v několika aplikacích. Podobně můžete definovat samostatné soubory, které definují lokalizovaný obsah pro různé části uživatelského rozhraní. Pokud chcete podporovat několik jazyků, použijte pro tyto soubory kódování UTF-8. Správa řetězců lokální verze Když aplikace načte soubor AIRLocalizer.js, prověří lokální verze definované ve vaší aplikaci. Tyto lokální verze odpovídají podadresářům v adresáři svazků (viz také „Definování zdrojových svazků“ na stránce 292). Tento seznam dostupných lokálních verzí je znám jako řetězec locale. Soubor AIRLocalizer.js automaticky roztřídí řetězec locale, založený na upřednostňovaném pořadí definovaném nastavením operačního systému. (Vlastnost Capabilities.languages uvádí seznam jazyků uživatelského rozhraní operačního systému v upřednostňovaném pořadí.) Poslední aktualizace 31.8.2016 294 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Lokalizace aplikací AIR Pokud tedy aplikace definuje zdroje pro lokální verze „ens“, „en_US“ a „en_UK“, struktura AIR HTML Localizer roztřídí řetězec locale odpovídajícím způsobem. Když se aplikace spustí v systému, který hlásí „en“ jako primární lokální verzi, řetězec locale je roztříděn jako ["en", "en_US", "en_UK"]. V tomto případě aplikace vyhledá zdroje nejprve ve svazku „en“, pak ve svazku „en_US“. Pokud však systém nahlásí primární lokální verzi „en-US“, pak třídění bude vypadat takto: ["en_US", "en", en_UK"]. V tomto případě aplikace vyhledá zdroje nejprve ve svazku „en_US“, pak ve svazku „en“. Standardně aplikace definuje první lokální verzi v řetězci locale, jako výchozí lokální verzi pro použití. Můžete uživatele požádat, aby zvolil lokální verzi při prvním spuštění aplikace. Poté můžete vybrat uložení volby do souboru předvoleb a použít tuto lokální verzi při následujícím spuštění aplikace. Aplikace může použít zdrojové řetězce v kterékoliv lokální verzi v řetězci locale. Pokud specifická lokální verze nedefinuje řetězec zdroje, aplikace použije následující shodný řetězec zdroje pro ostatní lokální verze definované v řetězci locale. Řetězec locale můžete přizpůsobit zavoláním metody setLocaleChain() objektu Localizer. Viz „Definování řetězce locale“ na stránce 297. Aktualizace prvků DOM lokalizovaným obsahem Prvek v aplikaci může odkazovat na klíčovou hodnotu v souboru vlastností lokalizace. Například prvek title v následujícím příkladu specifikuje atribut local_innerHTML. Lokalizační struktura používá tento atribut k vyhledání lokalizované hodnoty. Standardně struktura vyhledá názvy atributů, které začínají "local_". Struktura aktualizuje atributy, které mají názvy odpovídající textu za "local_". V tomto případě struktura nastavuje atribut innerHTML prvku title. Atribut innerHTML používá hodnotu definovanou v klíči mainWindowTitle v souboru výchozích vlastností (default.properties): <title local_innerHTML="default.mainWindowTitle"/> Pokud stávající lokální verze nedefinuje žádnou shodnou hodnotu, pak lokalizační struktura vyhledá zbytek řetězce locale. Používá následující lokální verzi v řetězci locale, pro kterou je hodnota definována. V následujícím příkladu text (innerHTML attribute) prvku p používá hodnotu klíče greeting definovaného v souboru výchozích vlastností: <p local_innerHTML="default.greeting" /> V následujícím příkladu hodnota atributu (a zobrazený text) prvku input využívá hodnotu klíče btnBlue definovanou v souboru výchozího nastavení: <input type="button" local_value="default.btnBlue" /> Pro aktualizování HTML DOM s cílem použít řetězce definované ve stávajícím řetězci locale, zavolejte metodu update() objektu Localizer. Zavoláním metody update() dojde k tomu, že objekt Localizer analyzuje DOM a použije manipulační postupy tam, kde naleznete lokalizační atributy ("local_..."): air.Localizer.localizer.update(); Můžete definovat hodnoty pro atribut (například „innerHTML“) a odpovídající lokalizační atribut (například „local_innerHTML“). V tomto případě lokalizační struktura pouze přepíše hodnotu atributu, pokud naleznete odpovídající hodnotu v lokalizačním řetězci. Například následující prvek definuje atributy value a local_value: <input type="text" value="Blue" local_value="default.btnBlue"/> Můžete také aktualizovat pouze specifický prvek DOM. Viz následující kapitola, „Aktualizace prvků DOM pro použití ve stávající lokální verzi“ na stránce 295. Poslední aktualizace 31.8.2016 295 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Lokalizace aplikací AIR Standardně lokalizátor AIR HTML používá "local_" jako prefix pro atributy definující nastavení lokalizace prvku. Atribut local_innerHTML například standardně definuje název svazku a zdroje použitého pro hodnotu innerHTML prvku. Atribut local_value například standardně definuje název svazku a zdroje použitého pro hodnotu value prvku. Můžete nakonfigurovat Localizer tak, aby používal prefix atributu pro jiný, než "local_". Další informace naleznete v tématu „Uzpůsobení nastavení lokalizátoru AIR HTML“ na stránce 296. Aktualizace prvků DOM pro použití ve stávající lokální verzi Když objekt Localizer aktualizuje HTML DOM, způsobí, že označené prvky použijí hodnoty atributů na základě řetězců definovaných ve stávajícím řetězci locale. Chcete-li, aby lokalizátor HTML aktualizoval HTML DOM, zavolejte metodu update() objektu Localizer: air.Localizer.localizer.update(); Chcete-li, aby lokalizátor aktualizoval pouze specifikovaný prvek DOM, přidejte jej jako parametr metodě update(). Metoda update() má pouze jeden parametr, parentNode, který je volitelný. Při specifikování parametr parentNode stanoví lokalizování prvku DOM. Zavolání metody update() a stanovení parametru parentNode nastaví lokalizované hodnoty pro všechny podřízené prvky, které specifikují lokalizační atributy. Například můžete zvážit následující prvek div: <div id="colorsDiv"> <h1 local_innerHTML="default.lblColors" ></h1> <p><input type="button" local_value="default.btnBlue" /></p> <p><input type="button" local_value="default.btnRed" /></p> <p><input type="button" local_value="default.btnGreen" /></p> </div> Pro aktualizování tohoto prvku použijte lokalizované řetězce definované ve stávajícím řetězci locale použijte následující kód JavaScript: var divElement = window.document.getElementById("colorsDiv"); air.Localizer.localizer.update(divElement); Pokud hodnota není v řetězci locale nalezena, lokalizační struktura nastaví hodnotu atribut na hodnotu atributu "local_". Například v předchozím příkladu předpokládáme, že lokalizační struktura nemůže nalézt hodnotu klíče lblColors (ve kterémkoliv souboru default.properties v řetězci locale). V tomto případě je použito "default.lblColors" jako hodnota innerHTML. Použití této hodnoty signalizuje (vývojáři) chybějící zdroje. Metoda update() odesílá událost resourceNotFound, pokud nemůže nalézt zdroj v řetězci locale. Konstanta air.Localizer.RESOURCE_NOT_FOUND definuje řetězec "resourceNotFound". Událost má tři vlastnosti: bundleName, resourceName a locale. Vlastnost bundleName je názvem svazku, ve kterém není zdroj nalezen. Vlastnost resourceName je názvem svazku, ve kterém není zdroj nalezen. Vlastnost locale je názvem lokální verze, ve které není zdroj nalezen. Metoda update() odesílá událost bundleNotFound, když nemůže nalézt specifikovaný svazek. Konstanta air.Localizer.BUNDLE_NOT_FOUND definuje řetězec "bundleNotFound". Událost má dvě vlastnosti: bundleName a locale. Vlastnost bundleName je názvem svazku, ve kterém není zdroj nalezen. Vlastnost locale je názvem lokální verze, ve které není zdroj nalezen. Metoda update() pracuje asynchronně (a odesílá události resourceNotFound a bundleNotFound asynchronně). Následující kód stanoví posluchače událostí pro události resourceNotFound a bundleNotFound: Poslední aktualizace 31.8.2016 296 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Lokalizace aplikací AIR air.Localizer.localizer.addEventListener(air.Localizer.RESOURCE_NOT_FOUND, rnfHandler); air.Localizer.localizer.addEventListener(air.Localizer.BUNDLE_NOT_FOUND, rnfHandler); air.Localizer.localizer.update(); function rnfHandler(event) { alert(event.bundleName + ": " + event.resourceName + ":." + event.locale); } function bnfHandler(event) { alert(event.bundleName + ":." + event.locale); } Uzpůsobení nastavení lokalizátoru AIR HTML Metoda setBundlesDirectory() objektu Localizer umožňuje uzpůsobit cestu adresáře svazku. Metoda setLocalAttributePrefix() objektu Localizer umožňuje přizpůsobit cestu adresáře svazku a hodnotu atributu používanou objektem Localizer. Výchozí adresář svazku je definován jako podadresář lokální verze adresáře aplikace. Můžete stanovit jiný adresář a to zavoláním metody setBundlesDirectory() objektu Localizer. Tato metoda používá jeden parametr, path, který je cestou do požadovaného adresáře, jako řetězec. Hodnota parametru path může být kterákoliv z následujících: • Řetězec definující cestu relativní k adresáři aplikace, například "locales" • Řetězec definující platnou adresu URL, která použije schémata URL app, app-storage nebo file, například "app://languages" (nepoužívejte schéma URL http) • Objekt File Informace o adresách URL a cestách adresářů naleznete v následujících tématech: • Cesty k objektům File (pro vývojáře používající jazyk ActionScript) • Cesty k objektům File (pro vývojáře používající jazyk HTML) Například následující kód nastavuje adresář svazků na podadresář jazyka v adresáři ukládání dat aplikace (nikoliv v adresáři samotné aplikace): air.Localizer.localizer.setBundlesDirectory("languages"); Předejte platnou cestu jako parametr path. Jinak metoda odešle výjimku BundlePathNotFoundError. Tato chyba má parametr "BundlePathNotFoundError" jako svou vlastnosti name, a vlastnost message specifikuje neplatnou cestu. Standardně lokalizátor AIR HTML používá "local_" jako prefix pro atributy definující nastavení lokalizace prvku. Například atribut local_innerHTML definuje název svazku a zdroje použitý pro hodnotu innerHTML následujícího prvku input: <p local_innerHTML="default.greeting" /> Metoda setLocalAttributePrefix() objektu Localizer umožňuje použít prefix atributu jiný, než "local_". Tato statická metoda bere jeden parametr, což je řetězec, který chcete použít jako prefix atributu. Například následující kód nastavuje lokalizační strukturu tak, že použije jako prefix atributu „loc_“: air.Localizer.localizer.setLocalAttributePrefix("loc_"); Můžete přizpůsobit prefix atributu, který používá lokalizační struktura. Prefix můžete uzpůsobit, pokud výchozí hodnota ("local_") bude v konfliktu s názvem jiného atributu použitého kódem. Při volání této metody nezapomeňte použít platné znaky pro atributy HTML. (Například hodnota nemůže obsahovat prázdný znak.) Poslední aktualizace 31.8.2016 297 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Lokalizace aplikací AIR Informace o použití lokalizačních atributů v prvcích HTML, viz „Aktualizace prvků DOM lokalizovaným obsahem“ na stránce 294. Nastavení adresáře svazků a prefixu atributu se mezi jednotlivými relacemi aplikace neuchovává. Pokud použijete vlastní nastavení adresáře svazků a prefixu atributu, nezapomeňte nastavení provést pokaždé, když se aplikace aktivuje. Definování řetězce locale Standardně, když načtete kód AIRLocalizer.js, nastaví se řetězec locale. Lokální verze dostupné v adresáři svazků a nastavení jazyka operačního systému definují tento řetězec locale. (Podrobnosti naleznete v části „Správa řetězců lokální verze“ na stránce 293.) Řetězec locale můžete změnit zavoláním statické metody setLocaleChain() objektu Localizer. Například může být požadováno zavolání této metody v případě, že uživatel indikuje předvolbu pro specifický jazyk. Metoda setLocaleChain() bere jeden parametr, chain, který je polem lokálních verzí, například ["fr_FR","fr","fr_CA"]. Pořadí lokálních verzí v poli nastavuje pořadí, ve kterém struktura vyhledává zdroje (v následujících operacích). Pokud zdroj není nalezen pro první lokální verzi v řetězci, pokračuje v hledání v jiném zdroji lokální verze. Pokud chybí argument chain, není polem nebo se jedná o prázdný řetězec, funkce selže a odešle výjimku IllegalArgumentsError. Statická metoda getLocaleChain() objektu Localizer vrací objekt Array s uvedením seznamu lokálních verzí ve stávajícím řetězci locale. Následující kód načte stávající řetězec locale a přidá dvě lokální verze French do hlavičky řetězce: var currentChain = air.Localizer.localizer.getLocaleChain(); newLocales = ["fr_FR", "fr"]; air.Localizer.localizer.setLocaleChain(newLocales.concat(currentChain)); Metoda setLocaleChain() odesílá událost "change", když aktualizuje řetězec locale. Konstanta air.Localizer.LOCALE_CHANGE definuje řetězec "change". Událost má jednu vlastnost, localeChain, pole kódů lokálních verzí v novém řetězci locale. Následující kód stanoví posluchače událostí pro tuto událost. var currentChain = air.Localizer.localizer.getLocaleChain(); newLocales = ["fr_FR", "fr"]; localizer.addEventListener(air.Localizer.LOCALE_CHANGE, changeHandler); air.Localizer.localizer.setLocaleChain(newLocales.concat(currentChain)); function changeHandler(event) { alert(event.localeChain); } Statická vlastnost air.Localizer.ultimateFallbackLocale představuje lokální verzi použitou, když aplikace nepodporuje žádné uživatelské předvolby. Výchozí hodnota je "en". Můžete nastavit jinou lokální verzi, jak je uvedeno v následujícím kódu: air.Localizer.ultimateFallbackLocale = "fr"; Získání zdrojů pro specifickou lokální verzi Metoda getString() objektu Localizer vrací řetězec definovaný pro zdroj ve specifické lokální verzi. Když voláte metodu, není nutné specifikovat hodnotu locale. V tomto případě metoda hledá v celém řetězci lokální verze a vrací řetězec do první lokální verze, která poskytuje stanovený název zdroje. Metoda má následující parametry: Poslední aktualizace 31.8.2016 298 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Lokalizace aplikací AIR Parametr Popis bundleName Svazek, který obsahuje zdroj. Toto je název souboru vlastností bez přípony .properties. (Například, pokud je tento parametr nastaven jako "alerts", kód Localizer hledá v lokalizačních souborech pojmenovaných alerts.properties. resourceName Název zdroje. templateArgs Volitelné. Pole řetězců, které nahrazují očíslované značky v náhradních řetězcích. Například zvažte zavolání funkce, kde má parametr templateArgs hodnotu ["Raúl", "4"] a odpovídající zdrojový řetězec je "Hello, {0}. You have {1} new messages.". V tomto případě funkce vrací hodnotu "Hello, Raúl. You have 4 new messages.". Toto nastavení ignorujete předáním hodnoty null. locale Volitelné. Kód lokální verze (například "en", "en_us" nebo "fr"), který se má použít. Pokud je lokální verze k dispozici a není nalezena žádná odpovídající hodnota, metoda nepokračujte v hledání hodnot v jiných lokální verzích v řetězci locale. Pokud není specifikována žádná lokální verze, funkce navrací řetězec v první lokální verzi, která poskytuje hodnotu pro daný název řetězce. Lokalizační struktura může aktualizovat označené atributy HTML DOM. Můžete však používat lokalizované řetězce jinými způsoby. Například můžete použít řetězec v jiných dynamicky generovaných kódech HTML nebo jako hodnotu parametrů ve volání funkce. Například následující kód volá funkci alert() s řetězcem definovaným ve zdroji error114 ve výchozím souborů vlastností lokální verze fr_FR: alert(air.Localizer.localizer.getString("default", "error114", null, "fr_FR")); Metoda getString() odesílá událost resourceNotFound, když nemůže nalézt zdroj ve specifikovaném svazku. Konstanta air.Localizer.RESOURCE_NOT_FOUND definuje řetězec "resourceNotFound". Událost má tři vlastnosti: bundleName, resourceName a locale. Vlastnost bundleName je názvem svazku, ve kterém není zdroj nalezen. Vlastnost resourceName je názvem svazku, ve kterém není zdroj nalezen. Vlastnost locale je názvem lokální verze, ve které není zdroj nalezen. Metoda getString() odesílá událost bundleNotFound, když nemůže nalézt specifikovaný svazek. Konstanta air.Localizer.BUNDLE_NOT_FOUND definuje řetězec "bundleNotFound". Událost má dvě vlastnosti: bundleName a locale. Vlastnost bundleName je názvem svazku, ve kterém není zdroj nalezen. Vlastnost locale je názvem lokální verze, ve které není zdroj nalezen. Metoda getString() pracuje asynchronně (a odesílá události resourceNotFound a bundleNotFound asynchronně). Následující kód stanoví posluchače událostí pro události resourceNotFound a bundleNotFound: air.Localizerlocalizer.addEventListener(air.Localizer.RESOURCE_NOT_FOUND, rnfHandler); air.Localizerlocalizer.addEventListener(air.Localizer.BUNDLE_NOT_FOUND, bnfHandler); var str = air.Localizer.localizer.getString("default", "error114", null, "fr_FR"); function rnfHandler(event) { alert(event.bundleName + ": " + event.resourceName + ":." + event.locale); } function bnfHandler(event) { alert(event.bundleName + ":." + event.locale); } Metoda getResourceBundle() objektu Localizer vrací určený svazek pro danou lokální verzi. Vrácená hodnota metody je objekt s vlastnostmi, které odpovídají klíčům ve svazku. (Pokud aplikace nemůže určený svazek najít, vrací metoda hodnotu null.) Tato metoda nabývá dvou parametrů – locale a bundleName. Poslední aktualizace 31.8.2016 299 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Lokalizace aplikací AIR Parametr Popis locale Lokální verze (například "fr"). bundleName Název svazku. Následující kód například volá metodu document.write() k načtení výchozího svazku pro lokální francouzskou (fr) verzi. Pak volá metodu document.write() k zápisu hodnot klíčů str1 a str2 do tohoto svazku: var aboutWin = window.open(); var bundle = localizer.getResourceBundle("fr", "default"); aboutWin.document.write(bundle.str1); aboutWin.document.write("<br/>"); aboutWin.document.write(bundle.str2); aboutWin.document.write("<br/>"); Metoda getResourceBundle() odesílá událost bundleNotFound, když nemůže nalézt specifikovaný svazek. Konstanta air.Localizer.BUNDLE_NOT_FOUND definuje řetězec "bundleNotFound". Událost má dvě vlastnosti: bundleName a locale. Vlastnost bundleName je názvem svazku, ve kterém není zdroj nalezen. Vlastnost locale je názvem lokální verze, ve které není zdroj nalezen. Metoda getFile() objektu Localizer navrací obsah jako svazek, řetězec, pro danou lokální verzi. Soubor svazku je načten jako soubor UTF-8. Metoda obsahuje následující parametry: Parametr Popis resourceFileName Název zdrojového souboru (například "about.html"). templateArgs Volitelné. Pole řetězců, které nahrazují očíslované značky v náhradních řetězcích. Například zvažte zavolání funkce, kde má parametr templateArgs hodnotu ["Raúl", "4"] a odpovídající zdrojový soubor obsahuje dvě řádky: <html> <body>Hello, {0}. You have {1} new messages.</body> </html> V tomto případě funkce vrací řetězec se dvěma řádky: <html> <body>Hello, Raúl. You have 4 new messages. </body> </html> locale Kód lokální verze, například "en_GB", který se má použít. Pokud je lokální verze k dispozici a není nalezen žádný odpovídající soubor, metoda nepokračujte v hledání v jiných lokálních verzích v řetězci locale. Pokud není specifikován žádný kód lokální verze, funkce vrací text v první lokální verzi v řetězci locale, který má soubor odpovídající resourceFileName. Například následující kód volá metodu document.write() pomocí obsahu souboru about.html lokální verze fr: var aboutWin = window.open(); var aboutHtml = localizer.getFile("about.html", null, "fr"); aboutWin.document.close(); aboutWin.document.write(aboutHtml); Metoda getFile() odesílá událost fileNotFound, pokud nemůže nalézt zdroj v řetězci locale. Konstanta air.Localizer.FILE_NOT_FOUND definuje řetězec "resourceNotFound". Metoda getFile() pracuje asynchronně (a odesílá událost fileNotFound asynchronně). Událost má dvě vlastnosti: fileName a locale. Vlastnost fileName je názvem nenalezeného souboru. Vlastnost locale je názvem lokální verze, ve které není zdroj nalezen. Následující kód stanoví posluchače událostí pro tuto událost. Poslední aktualizace 31.8.2016 300 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Lokalizace aplikací AIR air.Localizer.localizer.addEventListener(air.Localizer.FILE_NOT_FOUND, fnfHandler); air.Localizer.localizer.getFile("missing.html", null, "fr"); function fnfHandler(event) { alert(event.fileName + ": " + event.locale); } Další témata Nápovědy Vytvoření vícejazyčné aplikace založené na jazyce HTML Poslední aktualizace 31.8.2016 301 Kapitola 21: Proměnné prostředí pro cestu Sada AIR SDK obsahuje několik programů, které můžete spustit z příkazového řádku nebo z terminálu. Tyto programy lze často spouštět pohodlněji, je-li do proměnné prostředí PATH zahrnuta cesta k adresáři BIN sady SDK. Informace v této části popisují, jak nastavit cestu v systémech Windows, Mac a Linux, a měly by sloužit jako praktický průvodce. Konfigurace jednotlivých počítačů se však značně liší, takže postup nefunguje pro každý systém. V takovém případě byste měli potřebné informace najít v dokumentaci k operačnímu systému nebo na Internetu. Nastavení proměnné PATH v systémech Linux a Mac OS pomocí prostředí Bash Zadáte-li příkaz do okna terminálu, prostředí, tedy program, který čte zadávaný text a snaží se odpovídajícím způsobem reagovat, musí nejprve vyhledat program příkazu v systému souborů. Prostředí hledá příkazy v seznamu adresářů uložených v proměnné prostředí s názvem PATH. Chcete-li zjistit, co je nyní uvedeno v cestě, zadejte: echo $PATH Tento příkaz vrátí seznam adresářů oddělených dvojtečkami, který by měl vypadat přibližně takto: /usr/bin:/bin:/usr/sbin:/usr/local/bin:/usr/x11/bin Cílem je přidat do seznamu cestu k adresáři BIN sady AIR SDK tak, aby v prostředí bylo možné najít nástroje ADT a ADL. Jestliže jste sadu AIR SDK vložili do adresáře /Users/fred/SDKs/AIR, přidá následující příkaz k cestě nezbytné adresáře: export PATH=$PATH:/Users/fred/SDKs/AIR/bin:/Users/fred/SDKs/android/tools Poznámka: Pokud cesta obsahuje znaky mezer, označte je zpětným lomítkem podobně jako v následujících příkladech: /Users/fred\ jones/SDKs/AIR\ 2.5\ SDK/bin Chcete-li ověřit, zda tento postup fungoval, můžete znovu použít příkaz echo: echo $PATH /usr/bin:/bin:/usr/sbin:/usr/local/bin:/usr/x11/bin:/Users/fred/SDKs/AIR/bin:/Users/fred/SDK s/android/tools Zatím je vše v pořádku. Když nyní zadáte následující příkazy, měli byste obdržet povzbudivou odezvu: adt -version Pokud jste proměnnou $PATH upravili správně, příkaz by měl vrátit verzi nástroje ADT. Stále však zbývá jeden problém. Při příštím otevření nového okna terminálu totiž zjistíte, že nové položky v cestě se zde již nenacházejí. Příkaz nastavující cestu je třeba spustit při každém spuštění nového terminálu. Běžným řešením tohoto problému je přidat tento příkaz do jednoho ze spouštěcích skriptů používaných v prostředí. V systému Mac OS můžete vytvořit v adresáři ~/username soubor .bash_profile, který se spustí pokaždé, když otevřete nové okno terminálu. V systému Ubuntu má spouštěcí skript při spuštění nového okna terminálu název .bashrc. Další distribuce Linux a programy prostředí obsahují podobné konvence. Přidání příkazu do spouštěcího skriptu prostředí: 1 Změna domovského adresáře: Poslední aktualizace 31.8.2016 302 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Proměnné prostředí pro cestu cd 2 Vytvořte profil konfigurace prostředí (je-li to nezbytné) a pomocí řetězce >>cat přesměrujte text, který zadáváte, na konec souboru. Použijte soubor odpovídající danému operačnímu systému a prostředí. V systému Mac OS můžete například použít soubor .bash_profile, v systému Ubuntu soubor .bashrc. cat >> .bash_profile 3 Zadejte text, který je třeba přidat do souboru: export PATH=$PATH:/Users/cward/SDKs/android/tools:/Users/cward/SDKs/AIR/bin 4 Ukončení přesměrování textu stisknutím kombinace CTRL + SHIFT + D na klávesnici. 5 Zobrazte soubor a zkontrolujte, zda je vše v pořádku: cat .bash_profile 6 Otevřete nové okno terminálu a zkontrolujte cestu: echo $PATH Seznam by měl zahrnovat doplnění cesty. Pokud později vytvoříte novou verzi některé sady SDK v jiném adresáři, je třeba aktualizovat příkaz Path v konfiguračním souboru. V opačném případě bude prostředí nadále používat předchozí verzi. Nastavení cesty v systému Windows Když otevřete okno příkazového řádku v systému Windows, zdědí toto okno globální proměnné prostředí definované v systémových vlastnostech. Jednou z důležitých proměnných je cesta. Jedná se o seznam adresářů, jež program příkazu prohledává, když zadáváte název programu, který chcete spustit. Chcete-li pomocí příkazového řádku zjistit, které adresáře cesta aktuálně obsahuje, zadejte následující příkaz: set path Zobrazí se tak seznam adresářů oddělený středníky, který bude vypadat přibližně takto: Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem Cílem je přidat do seznamu cestu k adresáři BIN sady AIR SDK tak, aby v programu příkazu bylo možné najít nástroje ADT a ADL. Jestliže jste sadu AIR SDK vložili do adresáře C:\SDKs\AIR, přidáte odpovídající záznam cesty následovně: 1 Otevřete dialogové okno Vlastnosti systému v Ovládacích panelech nebo klikněte pravým tlačítkem myši na ikonu Tento počítač a z nabídky vyberte příkaz Vlastnosti. 2 Na kartě Upřesnit klikněte na tlačítko Proměnné prostředí. 3 V dialogovém okně Proměnné prostředí vyberte v části Systémové proměnné položku Path. 4 Klikněte na tlačítko Upravit. 5 Přejděte na konec textu v poli Hodnota proměnné. 6 Těsně za aktuální hodnotu vložte následující text: ;C:\SDKs\AIR\bin 7 Kliknutím na tlačítko OK postupně zavřete dialogová okna a cestu uložte. Poslední aktualizace 31.8.2016 303 VYTVÁŘENÍ APLIKACÍ PROSTŘEDÍ ADOBE AIR Proměnné prostředí pro cestu Zůstává-li některé okno příkazového řádku otevřeno, nezapomeňte, že odpovídající prostředí není aktualizováno. Otevřete nové okno příkazového řádku a zadejte následující příkaz, kterým se ujistíte, zda jsou cesty nastaveny správně: adt -version Jestliže umístění sady AIR SDK později změníte nebo přidáte novou verzi, nezapomeňte aktualizovat proměnnou PATH. Poslední aktualizace 31.8.2016
Podobné dokumenty
Zadán´ı bakalárské práce
Současný technologický vývoj umožňuje vytvářet aplikace spustitelné ve webovém prostředı́,
které se svým vzhledem a chovánı́m blı́žı́ desktopovým aplikacı́m. Přesně takovou techno...
Radek Hnilica Radek Hnilica
Tato „kniha“ je v jistém ohledu mým pracovním sešitem o Ruby. Pokud mám čas, zapisuji sem poznatky
které jsem získal při práci s Ruby a Ruby on Rails. Nejsem profesionální „písmák“, a tak to míst...
Django je vyspělý webový framework napsaný
v jazyce Python, který podporuje rychlý vývoj
a čisté, pragmatické konstrukce.
Je založený na modelech šablonách, a
pohledech
Má bohaté databázové API
Moderní Perl
začátek Moderního Perlu
rozšíření core syntaxe
propagace čistého stylu programování