Přeskočit na obsah
Svět HTC
Android

Pravidla Androidu žádají funkci Menu kvůli aplikacím, které dnes nejdou nainstalovat

Google poslal hardwarové tlačítko Menu do důchodu v lednu 2012 a nahradil ho třemi tečkami v horní liště aplikace. Definice kompatibility ho přesto po výrobcích chce dodnes, a to kvůli aplikacím, které od Androidu 14 nejdou nainstalovat.

· 9 zhlédnutí

Android měl do roku 2012 pod displejem čtyři značky: zpět, domů, hledat a Menu. Ta poslední otevírala nabídku, do které aplikace schovala všechno, na co jí nezbylo místo na obrazovce, a byla to jediná cesta k části funkcí. Google ji poslal do důchodu jedním příspěvkem na blogu pro vývojáře. Pravidlo, které kvůli tomu vzniklo, platí v definici kompatibility dodnes.

Spodní okraj displeje bílého telefonu HTC se třemi dotykovými značkami
Spodní okraj displeje HTC One X se třemi dotykovými značkami: zpět, domů a poslední aplikace. Tlačítko Menu mezi nimi chybí. Foto: YuMaNuMa, Wikimedia Commons (CC BY-SA 3.0)

Starý Android tlačítko vyžadoval

Co musí telefon umět, aby se směl nazývat Androidem, popisuje definice kompatibility. Ta pro Android 2.3.3, tedy pro úroveň API 10, je v oddílu 7.2.3 stručná: funkce domů, Menu a zpět jsou pro ovládání Androidu podstatné a výrobce je musí nechat dostupné za každého stavu aplikace. Dedikovaná tlačítka k tomu dokument doporučoval, ale nenařizoval – šlo to i softwarem nebo gestem. Zvlášť se pak doporučovalo ještě tlačítko hledání.

V praxi to znamenalo, že vývojář mohl tlačítko Menu předpokládat. Většina aplikací té doby proto neměla na obrazovce žádný ovládací pruh a nastavení, sdílení i mazání sedělo pod hardwarovým tlačítkem, o kterém obrazovka mlčela.

Odchod se vešel do jedné věty

Tabletový Android 3.0 přišel s třídou ActionBar a fyzická tlačítka přestal potřebovat. Když se s Androidem 4.0 dostala akční lišta i do telefonů, vyšel 26. ledna 2012 na blogu pro vývojáře příspěvek Say Goodbye to the Menu Button od Scotta Maina, hlavního technického autora dokumentace Androidu. Celý jeho obsah se podle něj dá shrnout do jediné věty: nastavte targetSdkVersion na 14 a pár akcí vyneste do akční lišty přes showAsAction="ifRoom".

Jeden oddíl se jmenuje „Don't call it a menu“ a je v něm víc než terminologie. Text vývojářům vysvětluje, že mají přestat přemýšlet v nabídkách a začít přemýšlet v akcích: důležité patří na obrazovku, zbytek „přeteče“ do místa, kterému se od té doby říká action overflow. To jsou ty tři tečky v pravém horním rohu.

Starším aplikacím systém tlačítko dorýsoval sám. Příspěvek to nezakrývá: takový knoflík vedle systémové navigace podle něj není ideální a v aplikacích, které nabídku stejně nepoužívají, nedělá nic a jen mate uživatele. Odtud i rada nastavit targetSdkVersion na 14, byť minSdkVersion může zůstat mnohem níž.

HTC nabídlo tlačítko zpátky v nastavení

Výrobci na to reagovali každý po svém. HTC One X měl pod displejem tři dotykové značky – zpět, domů a poslední aplikace –, a jeho uživatelská příručka má vlastní kapitolku s nadpisem „Can't find the Menu button?“. Začíná otázkou, jestli vám tlačítko Menu chybí, a pokračuje návodem: v nastavení pod položkou Display, gestures & buttons se dá tlačítku pro poslední aplikace přiřadit otevření nabídky, buď stiskem, nebo podržením. Popis tlačítek hned v úvodu příručky to zmiňuje taky.

Je to stejný pohyb, jaký Android udělal s optickým trackballem: ovládací prvek z telefonu zmizí, ale obsluha po něm ještě roky zůstane.

Z povinnosti se stal zákaz a pak zase povinnost

Definice kompatibility pro Android 4.0 rozdělila zařízení podle toho, co o sobě aplikace tvrdí: tlačítko Menu jí výrobce musí nabídnout, když má targetSdkVersion 10 nebo méně, a nabízet by ho neměl, když má víc. Verze pro Android 5.0 šla dál a nová zařízení už fyzické tlačítko pro funkci Menu mít nesměla; u starších to dokument nedoporučoval.

Pak se pravidlo otočilo. V definici pro Android 10 je zpřístupnění funkce Menu aplikacím s targetSdkVersion nižší než 10 jen důrazně doporučené. Od Androidu 11 je to přímo povinnost s vlastním identifikátorem C-3-1, a to fyzickým tlačítkem, softwarovou klávesou, nebo gestem. Stejná věta stojí i v aktuální definici pro Android 17, vedle doporučení funkci Menu vůbec nenabízet, protože je od Androidu 4.0 zastaralá.

Kdo tu povinnost ještě využije

Aplikace s targetSdkVersion nižší než 10 se ale mezitím staly nespustitelnými. Android 14 odmítá nainstalovat cokoli, co cílí níž než na úroveň 23; instalace skončí chybou INSTALL_FAILED_DEPRECATED_SDK_VERSION. Google to zdůvodňuje bezpečností – škodlivé aplikace se nízkým cílem vyhýbaly novějším ochranám, třeba běhovým oprávněním z Androidu 6.0.

Úplně bez adresáta to pravidlo přesto není. Aplikace nainstalované před přechodem na Android 14 na telefonu zůstávají a přes ADB se dá blokace obejít přepínačem --bypass-low-target-sdk-block, který Google sám popisuje jako způsob, jak takovou aplikaci otestovat. Povinnost z definice kompatibility tedy míří na archiv a na testování, ne na to, co si dnes někdo stáhne z obchodu.

Zbytek si čtenář prohlédne na vlastním telefonu. Tři tečky v pravém horním rohu jsou přímý potomek tlačítka, které si HTC One X v nastavení dovolovalo přivolat zpátky.

Zdroje

Android Historie

Android HTC One X

Diskuse

Diskuse je u tohoto článku vypnutá.

← zpět na výpis