Tentokrát jsme si dali za cíl vývoj aplikace použitelné v reálných autech. Vyvinuli jsme aplikaci Shared Car pro monitorování využití vozidel zaměstnanci, která automaticky měří čas jízdy, umožňuje přepínání mezi soukromými a firemními jízdami a podporuje použití více uživateli. Testovali jsme na automobilu Volvo XC60 s Android Automotive OS (AAOS) infotainmentem a Google Play. Náš vývoj pokračuje s cílem zlepšit a rozšířit využití AAOS aplikací.
Jak jsme dostali aplikaci do reálného auta
V minulém článku jsme se zaměřili na to, jak vyvinout aplikaci, která umí ovládat samotné auto. Aplikace k tomu využívala privilegované API systému Android, což znamená, že pro správné použití v autě by aplikace musela být povolena v systému Android jeho výrobcem. Proto jsme jí zatím mohli pouštět jen na interně vytvořeném AAOS emulátoru. V případě instalace do reálného auta, např. z Google Play, by aplikace dostávala výjimky, a nefungovala, jak chceme.
Tentokrát jsme se zaměřili na typ aplikace, kterou můžeme používat v reálném autě. Vyvinuli jsme aplikaci Shared Car pro monitorování využití auta jednotlivými zaměstnanci. Aplikace stále využívá rozhraní CarPropertyManager, ale pracuje jen s hodnotami, které jsou dostupné.
Aktuální funkce Shared Car aplikace:
- Automatická detekce času jízd
- Přepínání mezi režimem jízdy (soukromá/firemní jízda)
- Zobrazení časů, kdy auto jede v soukromé jízdě, jede ve firemní jízdě a není využíváno
- Podpora využití aplikace více uživateli
Pro testování jsme zvolili automobil Volvo XC60, který má propracovaný AAOS infotainment s podporou Google Play. Automobilka Volvo jde navíc vývojářům naproti a poskytuje Android Automotive OS emulátor pro XC40 (aktuálně pouze pro x86 architekturu). V očekávání je i novější emulátor se systémem pro čistě elektrické EX30, jak o tom hovoří oficiální dokumentace Volvo.
Aplikace využívá již zmíněný rozhraní CarPropertyManager, pomocí kterého poslouchá stav zapalování, konkrétně hodnotu VehiclePropertyIds.*IGNITION_STATE*. Podle toho spouští nahrávání času jízdy. Původním záměrem bylo poslouchat i stav odometru. Čtení této hodnoty však opět vyžaduje privilegovaný přístup, který pro testování není dostupný.
Design aplikace je postaven v Jetpack Compose. Bohužel nyní neexistuje žádná oficiální Android knihovna, která by implementovala Jetpack Compose Car UI standard, jako je tomu u Android UI. Jsme si vědomi, že by aplikace při publikaci do produkčního kanálu Google Play nemusela projít kontrolou ze strany Googlu.
Aktuálně víme pouze o jediném možném kanálu, jak dostat aplikaci třetích stran do produkčního auta. Je jím samozřejmě oficiální obchod Google Play. Jak je možné, že se nám podařilo projít kontrolou ze strany Googlu, i když nedodržujeme veškeré standardy AAOS aplikací a nespadáme ani do jedné z kategorií? Nepodařilo. Nemuseli jsme jí projít, protože jsme zjistili, že aplikace vydávané v rámci Google Play Internal testing kanálu žádnou kontrolou neprochází. Překvapením pro nás ale bylo, že je možné tyto aplikace používat i za jízdy.
“To test your app in real vehicles, it must be installed from a trusted source such as the Play Store, with one exception detailed in Allow unknown sources. You can use Internal App Sharing or an Internal Test Track to distribute your app to devices without going through the Play Store review process.” Android Documentation, Test in real vehicles
Vývoj v Android Automotive OS má velký potenciál
V AAOS vidíme v Etnetera Flow velký potenciál, proto mu věnujeme tolik času a úsilí.
Je to Android
Už jen samotný fakt, že se jedná o Android, mu dává velký potenciál pro to, stát se hojně rozšířeným operačním systémem. Dle webu Statcounter GlobalStats má Android celosvětový podíl trhu mezi mobilními zařízeními více jak 71%. V Evropě je to pak necelý 68%. Android drží i první místo mezi operačními systémy jako takovými s podílem necelých 37% trhu. Ano, Android předběhl i celosvětově rozšířený a zakořeněný Windows OS, který má více jak 35% trhu. Android můžeme vidět na mobilních telefonech, tabletech, hodinkách, v minulosti i na IoT zařízeních a samozřejmě už i v automobilech.
“Z důvodů specifických pro automobily, kde hraje velkou roli nerozptylovat řidiče během jízdy, podporuje Android Automotive OS pouze určité typy aplikací. Aktuálně se jedná o aplikace pro přehrávání hudby a videí, zobrazení navigace, zobrazení zájmových bodů na mapě (POI), interakci s internetem věcí (IoT), hraní her a prohlížení webového obsahu. Nově bude k dispozici i nová kategorie aplikací pro komunikaci (Messaging). Tato kategorie byla představena v rámci letošní konference Google IO 2024.” Podporované kategorie Android Automotive aplikací
Android Automotive OS je open-source
Jedním z klíčových aspektů, který přispívá k atraktivitě a potenciálu Android Automotive OS, je fakt, že se jedná o open source. AAOS je součástí Android Open Source Projektu, což z něj dělá lehce dostupný systém jak pro samotné výrobce automobilů, tak pro samotné vývojáře. Navíc umožňuje jednotlivým stranám podílet se na jeho samotném rozvoji a přizpůsobovat si systém ke svým potřebám.
Integrace s Google službami
Android Automotive OS umožňuje integraci s oblíbenými Google službami, jako jsou Google Maps, Google Assistant, Google Play či nově představeným Google Cast. Tato integrace umožňuje řidičům využívat známé a spolehlivé aplikace přímo z palubního systému jejich vozidla, čímž se zvyšuje uživatelský komfort a bezpečnost na cestách. Zároveň odpadá nutnost používat v automobilu mobilní telefon.
Naše bohaté zkušenosti s různorodým vývojem obecně pro Android, včetně například aplikace pro již neexistující platformu Android Things, nám dávají skvělý základ pro rychlé zorientování se. Proto v našem bádání budeme pokračovat. Pokud v AAOS aplikacích vidíte podobný potenciál jako my, rádi vám s vývojem pomůžeme.
Update: Aplikaci SharedCar jsme úspěšně otestovali také v elektrickém Volvo EX30.