Na ovoj stranici

Konfiguracija za Android

Android aplikacije pakirane su kao ZIP datoteke koje se nazivaju paketi aplikacija (APK), Android App Bundles (AAB) ili Android arhive (AAR). APK datoteke možete instalirati i pokrenuti na uređaju. AAB datoteke možete prenijeti u Google Play trgovinu.

Qt za Android ima binarne datoteke za armv7a, arm64-v8a, x86 i x86-64. Kako biste podržali nekoliko različitih ABI-ja u svojoj aplikaciji, izradite AAB koji sadrži binarne datoteke za svaki od ABI-ja. Google Play trgovina koristi AAB za generiranje optimiziranih APK paketa za uređaje koji zatraže preuzimanje i automatski ih potpisuje vašim ključem izdavača.

Qt Creator podržava sljedeće metode distribucije za Android aplikacije:

  • Kao samostalni, distribuirivi paket aplikacije (APK).
  • Kao paket aplikacije (AAB) za distribuciju u trgovini Google Play.
  • Kao AAR, koji se u osnovi razlikuje od formata APK i AAB jer je riječ o Android biblioteci. Možete ga koristiti kao ovisnost za Android modul aplikacije, ali ga ne možete pokrenuti samostalno.

    Sve verzije Qt-a ne podržavaju AAB formate. Qt 6.3.0 i novije verzije podržavaju multi-abi izrade za aplikacije kada gradite s CMakeom. AAR formati podržani su od verzije Qt 6.8.0 nadalje. Za više informacija pogledajte odjeljak Deploying an Application on Android.

Za određivanje postavki za pakete aplikacija idite na Projects > Build Settings > Build Android APK i odaberite Details.

Za više informacija o opcijama koje imate za pokretanje aplikacija pogledajte Postavke pokretanja za Android.

Pakiranje aplikacija

Budući da spajanje aplikacija u APK pakete nije jednostavno, Qt ima alat androiddeployqt. Kada deployirate aplikaciju koristeći Qt za Android kit, Qt Creator pokreće alat za stvaranje potrebnih datoteka i njihovo spajanje u APK. Za više informacija pogledajte Android Package Templates.

Da biste vidjeli pakete koje je alat androiddeployqt stvorio, odaberite Open package location after build.

Postavljanje postavki raspoređivanja

Za postavljanje postavki za distribuciju aplikacija idite na Projects > Deploy Settings i odaberite konfiguraciju distribucije u Active deployment configuration.

Prikaži karticu Postavke u Projektima

Za dodavanje konfiguracija raspoređivanja za projekt odaberite Add.

Za preimenovanje trenutne metode implementacije odaberite Rename.

Za uklanjanje trenutne metode implementacije odaberite Remove.

Qt Creator instalira pakete na Android uređaj koji odaberete u odabiraču skupa. Za dodavanje uređaja odaberite Manage.

Za više informacija o navođenju dodatnih opcija pokretanja za aplikacije pogledajte postavke pokretanja programa za Android.

Za uklanjanje prethodno instaliranih datoteka s uređaja odaberite Uninstall the existing app before deployment.

Za instaliranje unaprijed izgrađenog APK-a, kao što je aplikacija treće strane, na uređaj odaberite Install an APK File.

Postavljanje postavki za pakete

Da biste specificirali postavke za alat androiddeployqt, idite na Projects > Build Settings > Build Android APK i odaberite Details.

Korak izrade Android APK-a

Alat androiddeployqt stvara APK-ove na temelju postavki. Za više informacija o dostupnim opcijama pogledajte androiddeployqt.

Možete pogledati informacije o tome što alat androiddeployqt radi u odjeljku Compile Output. Za više informacija odaberite Verbose output.

Odaberite Add debug server kako biste uključili binarnu datoteku debug poslužitelja u paket.

Odabir razine API-ja

Android build platform SDK U polju Razina API-ja odaberite razinu API-ja koju ćete koristiti za izradu aplikacije. Obično biste trebali odabrati najvišu dostupnu razinu API-ja.

Obično biste trebali koristiti najnoviju verziju alata za izgradnju Android SDK-a. Ako je potrebno, odaberite drugu verziju u polju Android build-tools version.

Izrada AAB-ova

Za lokalno testiranje aplikacije upotrijebite APK format jer Qt Creator može instalirati i pokrenuti paket na uređaju. Za distribuciju na Google Play trgovinu stvorite AAB odabirom Build Android App Bundle (*.aab).

Prilikom izgradnje s CMakeom možete pregledati odabrane ABI-je u Initial Configuration u odjeljku CMake. Dodatne ABI-je možete postaviti kao vrijednosti ključa ANDROID_ABI:

CMake postavke za izgradnju AAB-ova

Kada gradite s Qbs ili qmake, možete odabrati ABI-je u polju ABIs u odjeljku Build Steps:

Postavke qmakea za izgradnju AAB-ova

Izrada AAR-ova

Odaberite AAR cilj u odjeljku Build Steps.

Odabir AAR cilja

Potpisivanje Android paketa

Da biste objavili svoju aplikaciju, morate je potpisati pomoću para javnog i privatnog ključa koji se sastoji od certifikata i odgovarajućeg privatnog ključa te je identificiran aliasom. Par ključeva koristi se za provjeru da su buduće verzije vaše aplikacije doista stvorene od strane vas.

Upozorenje: Pohranite par ključeva na sigurno mjesto i napravite sigurnosne kopije jer nećete moći ažurirati aplikaciju ako izgubite par ključeva.

Možete koristiti Qt Creator za generiranje keystorea i samopotpisanog certifikata. Generirani certifikat ima strukturu digitalnog certifikata X.509 v3. Sadrži informacije o verziji, serijskom broju i razdoblju valjanosti certifikata, ID-u algoritma koji se koristi za šifriranje podataka, organizaciji koja je izdala certifikat i subjektu (vlasniku) certifikata. U slučaju samopotpisanog certifikata, izdavatelj i vlasnik certifikata su ista osoba. Osim toga, certifikat sadrži informacije o algoritmu koji se koristi za potpisivanje certifikata, kao i sam potpis certifikata.

Tajnu riječ štiti spremnik ključeva. Osim toga, svaki alias možete zaštititi vlastitom tajnom riječi.

Kada potpisujete Android aplikaciju, morate odabrati keystore koji sadrži certifikate i alias certifikata. Proces potpisivanja ugrađuje javni ključ (certifikat) za alias u APK.

Za izradu keystorea i samopotpisanog certifikata:

  1. U polju Keystore odaberite Create za stvaranje novog keystorea koji sadrži jedan par ključeva u dijalogu Create a Keystore and a Certificate:

    Stvaranje dijaloga za spremište ključeva i certifikat

  2. U grupi Keystore unesite lozinku za zaštitu keystorea.
  3. U grupi Certificate navedite veličinu ključa i razdoblje valjanosti certifikata. Možete odrediti zasebnu lozinku za zaštitu para ključeva ili upotrijebiti lozinku keystorea.
  4. U grupi Certificate Distinguished Names unesite informacije o sebi i svojoj tvrtki ili organizaciji koje identificiraju izdavatelja i vlasnika para ključeva.
  5. Odaberite Save.
  6. U dijaloškom okviru Keystore File Name unesite naziv za spremište ključeva i odaberite njegovu lokaciju.
  7. U dijalogu Keystore unesite lozinku keystorea kako biste stvorili par ključeva u keystoreu.

Za potpisivanje Android paketa pomoću para ključeva postavite grupne postavke za Sign package opisane u odjeljku Specifying Settings for Packages:

  1. U polju Keystore odaberite Choose za odabir postojećeg keystorea.
  2. U polju Certificate alias odaberite alias s popisa ključnih parova koje keystore sadrži.
  3. Odaberite Sign package da biste upotrijebili alias za potpisivanje Android paketa.

Dodavanje vanjskih biblioteka

Qt Creator automatski otkriva koje Qt biblioteke aplikacija koristi i dodaje ih kao ovisnosti. Ako aplikacija treba vanjske biblioteke, idite na Projects > Build Settings > Build Android APK i navedite ih u Additional Libraries. Biblioteke se kopiraju u mapu s bibliotekama vaše aplikacije i učitavaju pri pokretanju.

Za dodavanje OpenSSL biblioteka odaberite Include prebuilt OpenSSL libraries u grupi Additional Libraries. Time će se dodati projekt OpenSSL include definiran u postavkama uređaja u grupi Android OpenSSL. To se može koristiti za projekte qmake i CMake.

U suprotnom, možete ručno dodati putanje do potrebnih biblioteka libssl.so i libcrypto.so u polje Additional Libraries.

Uređivanje manifestnih datoteka

Možete koristiti opcije konfiguracije za navođenje svih postavki potrebnih za alat androiddeployqt. Za navođenje Android-specifičnih postavki, kao što je ikona aplikacije, potrebna vam je samo Android manifest datoteka. Međutim, manifest datoteka vam je potrebna za objavljivanje paketa u Play Trgovini. Za više informacija o manifest datotekama pogledajte Konfiguraciju manifest datoteka za Qt za Android.

Ako koristite CMake kao sustav za izgradnju, morate navesti izvorni direktorij paketa za Android, QT_ANDROID_PACKAGE_SOURCE_DIR, u datoteci CMakeList.txt, kako je navedeno u vodiču za mobilne uređaje.

Da biste upotrijebili Qt Creator za izradu Android manifestne datoteke i otvorili je u uređivaču Android manifesta:

  1. Idite na Projects > Build Settings > Build Android APK i odaberite Create Templates.
  2. Provjerite putanju u Android package source directory.

    Dijalog za izradu predloška

  3. Odaberite Copy the Gradle files to Android directory ako planirate proširiti Java dio vaše Qt aplikacije.
  4. Odaberite Finish kako biste kopirali datoteke predloška u direktorij android i otvorili manifestnu datoteku za uređivanje.

    Informacije o paketu u Uređivaču manifestacije za Android

Sljedeća tablica sažima opcije koje možete postaviti.

OpcijaVrijednost
Package nameValjano ime paketa za aplikaciju. Na primjer, org.example.myapplication. Automatski generirani Java pokretač koji se pakira zajedno s aplikacijom u APK pokreće aplikaciju.
Version codeUnutarnji broj verzije paketa koji određuje je li jedna verzija aplikacije novija od druge.
Version nameBroj verzije koji je vidljiv korisnicima.
Minimum required SDKMinimalna razina API-ja potrebna za pokretanje aplikacije ako ste je ručno postavili u manifestnoj datoteci.
Target SDKCiljana API razina aplikacije, ako je postavite ručno u manifestnoj datoteci.
Application nameNaziv aplikacije.
Activity nameNaziv aktivnosti.
Style extractionMetoda koju Qt koristi za određivanje kojeg UI stila koristiti. Za više informacija o nazivima paketa pogledajte Izvlačenje stila.
Screen orientationKako odrediti orijentaciju zaslona.
Application iconSlike koje se koriste kao ikone aplikacije ovisno o rezoluciji zaslona.
Splash screenSlike za prikaz kao splash-ekrani ovisno o orijentaciji i rezoluciji zaslona.
PermissionsDozvole koje aplikacija treba.

U gornjoj traci odaberite karticu " XML Source " kako biste uredili datoteku u XML formatu.

Nazivi paketa

Paketi Android aplikacija obično se imenuju hijerarhijskim obrascem, pri čemu su razine u hijerarhiji odvojene točkama (.). Općenito, naziv paketa započinje nazivom domene najviše razine organizacije, nakon čega slijedi naziv domene organizacije i svi nazivi poddomena navedeni obrnutim redoslijedom. Organizacija zatim može odabrati specifičan naziv za svoj paket. Nazivi paketa trebali bi se pisati isključivo malim slovima kad god je to moguće. Na primjer, org.qtproject.example.

Potpune konvencije za razlikovanje naziva paketa i pravila za imenovanje paketa kada se naziv internetske domene ne može izravno koristiti kao naziv paketa opisani su u odjeljku 7.7 specifikacije Java jezika.

Za više informacija o nazivima paketa pogledajte Temelji Android aplikacija.

Orijentacija zaslona

Možete odrediti različite opcije za određivanje orijentacije zaslona, ovisno o očitanjima senzora ili korisničkim postavkama. Sljedeća tablica navodi dostupne opcije.

OrijentacijaOpis
NespecificiranoSustav bira orijentaciju. Pravilo koje koristi, a time i odabiri u određenim kontekstima, mogu se razlikovati od uređaja do uređaja.
IzaKoristite istu orijentaciju kao aktivnost koja se nalazi odmah ispod nje u hrpi aktivnosti.
PejzažPoložaj vodoravno, gdje je širina zaslona veća od njegove visine.
PortretPortretna orijentacija, gdje je visina zaslona veća od njegove širine.
Obrnuti pejzažPejzažni prikaz u suprotnom smjeru od normalnog pejzaža.
Obrnuti portretPortretna orijentacija u suprotnom smjeru od normalne portretne orijentacije.
Pejzažni prikaz sa senzoromPejzažni prikaz, ali može biti normalni ili obrnuti pejzaž ovisno o senzoru uređaja. Senzor se koristi čak i ako je korisnik zaključao rotaciju temeljenu na senzoru.
Portretni prikaz sa senzoromPortretna orijentacija, ali može biti normalna ili obrnuta portretna ovisno o senzoru uređaja. Senzor se koristi čak i ako je korisnik zaključao rotaciju temeljenu na senzoru.
Korisnički pejzažLežeći prikaz, ali može biti normalan ili obrnut ležeći prikaz ovisno o senzoru uređaja i korisnikovoj preferenciji.
Portrait orijentacija korisnikaPortretna orijentacija, ali može biti normalna ili obrnuta portretna ovisno o senzoru uređaja i korisnikovoj preferenciji.
SenzorOrijentaciju određuje senzor orijentacije uređaja. Orijentacija zaslona ovisi o načinu na koji korisnik drži uređaj. Mijenja se kada korisnik okreće uređaj. Međutim, neki uređaji prema zadanim postavkama neće se okretati u sve četiri moguće orijentacije. Da biste omogućili sve četiri orijentacije, odaberite opciju punog senzora. Senzor se koristi čak i ako je korisnik zaključao rotaciju temeljenu na senzoru.
Puni senzorOrijentaciju za bilo koju od četiri orijentacije određuje senzor orijentacije uređaja. Ovo je slično opciji senzora, osim što dopušta bilo koju od četiri moguće orijentacije zaslona, bez obzira na to što uređaj obično radi. Na primjer, neki uređaji obično neće koristiti okrenuti portret ili okrenuti pejzaž, ali ova opcija ih omogućuje.
Bez senzoraOrijentacija se određuje bez oslanjanja na senzor orijentacije uređaja. Senzor se zanemaruje, pa se zaslon neće rotirati ovisno o tome kako korisnik pomiče uređaj.
KorisnikTrenutna preferirana orijentacija korisnika.
Puna korisnička kontrolaAko je korisnik zaključao rotaciju na temelju senzora, ova se opcija ponaša na isti način kao opcija korisnika. Inače se ponaša isto kao opcija punog senzora i dopušta bilo koju od četiri moguće orijentacije zaslona.
ZaključanoZaključava orijentaciju na trenutnu rotaciju, bez obzira na njezinu vrijednost.

Ikone

Možete postaviti različite slike koje će se prikazivati kao ikone aplikacije i uvodne zaslone na zaslonima niske, srednje, visoke i ekstra visoke gustoće piksela (DPI). Sljedeći popis sažima vrijednosti DPI-ja koje se obično povezuju sa svakom kategorijom:

  • Niske gustoće (LDPI): ~120 dpi
  • Srednje gustoće (MDPI): ~160 dpi
  • Visoka gustoća (HDPI): ~240 dpi
  • Izuzetno visoka gustoća (XHDPI): ~320 dpi
  • Izuzetno visoka gustoća (XXHDPI): ~480 dpi
  • Izuzetno visoka gustoća (XXXHDPI): ~640 dpi

Odredite postavke za ikone na kartici Application icon. Odaberite sliku najviše razlučivosti kao Master icon. Qt Creator generira i postavlja prilagođene verzije za zaslone niske, srednje, visoke i ekstra visoke DPI razlučivosti, prema potrebi. Alternativno, postavite ikone za svaku razlučivost zasebno.

Ikone aplikacija u Uređivaču manifesta Androida

Početni zasloni

Splash screen Odredite postavke za splash-slike na kartici Postavke zaslona. Odaberite slike koje će se prikazivati kao splash-slike ovisno o orijentaciji uređaja i rezoluciji zaslona.

Početni zasloni u uređivaču Android manifesta

Po zadanome, crtanje aktivnosti skriva uvodni zaslon. Da biste ga zadržali vidljivim dok se ne pozove QNativeInterface::QAndroidApplication::hideSplashScreen(), odaberite Sticky splash screen.

U odjeljku Image show mode odaberite hoćete li centrirati početni zaslon na zaslonu uređaja ili ga skalirati kako bi ispunio zaslon.

Postavite boju pozadine u Background color.

Odaberite slike s najvišom rezolucijom kao Master image, Portrait master image i Landscape master image.

Odaberite Clear All za resetiranje svih postavki ili uklanjanje svih slika.

Postavljanje dozvola

Počevši od Androida 6.0 (API 23), aplikacije moraju tražiti dozvole tijekom izvođenja (vidi QCoreApplication::requestPermission()). Korisnici moraju odobriti te dozvole prilikom instalacije aplikacije za niže razine Android API-ja. Android OS zatim aplikaciji odobrava pristup odgovarajućim podacima i značajkama.

Dozvole u Uređivaču manifesta za Android

Odaberite Include default permissions for Qt modules i Include default features for Qt modules kako biste dodali dozvole potrebne Qt bibliotekama, kao što je android.permission.ACCESS_BACKGROUND_LOCATION za Qt Positioning.

Da biste dodali dozvolu, odaberite je s popisa, a zatim odaberite Add.

Vidi također Kako: Izgraditi i pokrenuti, Kako: Razvijati za Android, Postavke pokretanja za Android i Kitovi.

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.