Qt pro Android

By Jozef Mlích - Last updated: Pátek, Listopad 16, 2012 - Save & Share - Leave a Comment

Projekt Necessitas se zabývá portováním Qt na zařízení se systémem Android. Dosažení tohoto cíle je poměrně blízko. V článku popíšeme jednotlivé aspekty vývoje pro Android v Qt.

Pro pochopení toho, jak Qt na Androidu funguje, je nutné znát některé základní principy fungování Androidu. Prvním předpokladem pro používání Qt na Androidu je využívání Android SDK a NDK. Software Development Kit (SDK) je balík nástrojů umožňující vývoj aplikací v Javě. Zkratka NDK pak znamená Native Development Kit. Tento balík obsahuje překladač C a C++ pro Android.

Na následujícím schématu je přibližně naznačeno, jak aplikace v Qt na Androidu obvykle fungují. Na zařízení se při prvním spuštění nainstaluje aplikace Ministro, která je nastavena jako závislost hlavní aplikace. Aplikace Ministro se stará o stažení jednotlivých modulů Qt. Samotná aplikace bude díky tomu menší. Tento způsob rovněž zaručuje znovupoužitelnost (jiná aplikace může tyto knihovny také použít). Ministro hlavní aplikaci při spuštění pouze sdělí cestu, kde je nainstalováno Qt, případně doinstaluje chybějící moduly.

Schéma fungování aplikace

Na druhé straně schématu je balíček se samotnou aplikací. K té jsou přiloženy loader a bridge, které zprostředkovávají komunikaci s Qt a se zařízením. Pro získání dat z Dalviku (virtuální stroj Javy v Androidu) se zřejmě používá tzv. JNI (Java Native Interface). Použití komponent loader a bridge je však ze strany programátora Qt Aplikace transparentní.

Instalace SDK

Qt Creator má od verze 2.6 experimentální podporu pro vývoj pro Android. Po spuštění je nutné v nabídce „About“ zvolit „About Plugins“ a najít zásuvný modul pro Android. Po jeho zapnutí se v Nastavení (nabídka „Options“) objeví položka Android.

Necessitas project se snaží co nejvíc zjednodušit instalaci vývojového prostředí. Na webové stránce projektu necessitas.kde.org je ke stažení instalační balíček, který nainstaluje vývojové prostředí Qt Creator, Android SDK, Android NDK a nastaví jej tak, aby se dalo přímo použít.

Nastavení cest Android SDK v Qt Creatoru

V záložce „Devices“ se objeví položka „Android Device“. Pokud Android SDK při spuštění zjistí připojené zařízení, tak balíček nainstaluje na něj. V opačném případě se spustí Virtuální zařízení v okně simulátoru.
Jedním z problémů, které mohou při instalaci nastat, je chybějící podpora OpenJDK 1.6 v dané distribuci. Například Fedora 17 příslušné balíčky nemá přímo v repozitářích. Podle všeho se jedná o patentový nebo licenční problém s OpenJDK.

http://kojipkgs.fedoraproject.org//packages/java-1.6.0-openjdk/1.6.0.0/65.1.11.fc17
$ rpm -i neco.rpm -- nodeps

 Vývoj

Pro vývoj uživatelských rozhraní je k dispozici Qt Quick. Složitější prvky uživatelských rozhraní nejsou k dispozici. Jedná se o poměrně jednoduché ovládací prvky, jako jsou tlačítka, checkboxy, comboboxy. Na zařízeních jako je Symbian nebo MeeGo Harmattan, jsou tyto prvky obsaženy v qt-components. Existují sice qt-components pro Android, ale ty nejsou součástí Necessitas SDK. Tyto komponenty pravděpodobně nebudou splňovat User Interface Guidelines pro Android.

Nastavení oprávnění

Další otázkou je funkčnost modulů knihovny Qt Mobility. Není úplně jednoduché říct, jestli budou správně fungovat všechny moduly (například přístup k mikrofonu nebo ke kameře bude nejspíš problematický). Aby to šlo vyzkoušet, je nutné v nastavení projektu (Project -> run -> Package Configuration -> Libraries -> …”) zaškrtnout příslušný modul. Služba Ministro jej následně doinstaluje do Systému. V těchto místech nastavování projektu lze také nastavit oprávnění aplikace (viz obrázek).

V tuto chvíli je Necessitas SDK ve čtvrté alfa verzi, takže obsahuje ještě velké množství chyb. Přesto je možné vytvářet zajímavé programy v C++ s využitím Qt bez nutnosti programovat v Javě.

Sdílejte:

Posted in Vývoj • Tags: , , , Top Of Page

Write a comment


Yandex Mail.ru Google LiveJournal myOpenId Flickr claimId Blogger Wordpress OpenID Yahoo Technorati Vidoop Verisign AOL