2016. május 31.

Androidos újdonságok a Google I/O 2016-on

10 perc olvasási idő

Androidos újdonságok a Google I/O 2016-on

Május 18. és 20. között megtartották a 2016-os Google I/O-t. Vetek egy pillantást a legújabb Androidos újdonságokra fejlesztői szemmel.

Android N

Még ezen az éven jön a legújabb Android verzió. A csapat egy elnevezési játékot is elindított mivel nehezen találnak N-el kezdődő fincsi süti nevet.
Nekünk fejlesztőknek sokkal fontosabb, hogy mik is azok az újdonságok, amikre fel kell készülnünk.

Multi-Window

alt

A felület felosztható lesz két részre, ezáltal még nagyobb fókuszt kap majd egy reszponzív felület tervezése. Még ha a telefon fekvő nézetben van, akkor is álló nézetben lehet majd az applikációd, vagy pont fordítva. Az orientáció tulajdonképpen nem arra vonatkozik, hogy a telefon milyen helyzetben van. Ha az app szélessége kisebb, mint a magassága, akkor állóban, ha nagyobb, akkor fekvőben van.

Amennyiben a cél API-d az N verzió, a multi-window nem fogja figyelembe venni a manifestből kikényszerített orientációkat. Régebbi cél API-k esetén, ha a manifestben kikényszerítettél egy orientációt, akkor nem is lesz ez a funkció elérhető. Sajnos, ha a kódodban setRequestedOrientation() hívást használtad annak nem lesz hatása erre a funkcióra és engedélyezve lesz.

3 módja van:

  • split screen: osztott képernyő
  • freeform: szabadon átméretezhető
  • picture-in-picture: TV-n elérhető kép a képben funkció

Több részletet megtudhatsz a prezentációból és az Android dev portálon

Értesítések

Áttervezték az értesítések kinézetét és viselkedését. Szerencsére NotificationAppCompat használatával visszafelé kompatibilis lesz minden.
Jónak ígérkező új funkció az a közvetlen válasz lehetősége az értesítésekből.
19-es API-tól lekérdezheted azt is hogy engedélyezve vannak-e az értesítések. Eddig, ha a beállításodban be volt kapcsolva, de a felhasználó mégsem kapta meg őket akkor nem tehettél semmit. Most már megjeleníthetsz egy figyelmeztetést, hogy kikapcsolta őket a beállításokban.

Az újdonságokról többet megtudhatsz a prezentációból vagy a dev portálon.

Képernyő méret

A készülék beállításai között egy új funkció érhető el, amivel megváltoztatható a készülék dpi-je. Ez azzal jár, hogy minden felületi elem átméreteződik. Nagyjából 0.85 és 1.5 szeres szorzó között lehet állítani.

Play Store Chrome OS-en

Egy éve már lehetett sejteni, hogy nem csak mobilon és tableteken, hanem Chrome OS-en is elérhető lesz a play store. Ez azt jelenti, hogy alkalmazásaidat ott is futtatni tudják majd, mégpedig körülbelül szeptembertől. Sajnos nem minden működhet jól az appoddal ott.
Nem minden Chrome OS készüléknek van érintős kijelzője, viszont az androidos appok ezt alapból követelik. Hogy ezeken a készülékeken is elérhető legyen, az alábbi sort be kell rakni a manifestbe:


<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>

Ekkor egeret és billentyűzetet használó készülékeken is megjelenik majd az appod.
Továbbá 3 méretben lehet majd az alkalmazásokat használni. Az ezek közötti átmenet konfiguráció váltással fog történni. Mobilon, ha elfordul a kijelző a dpi-je ugyan az marad, a szélesség magasság pedig felcserélődik. Chrome OS-en mindhárom tulajdonság teljesen megváltozhat.

Jelenleg nagyjából az androidos készülékek 0.1% lehet Chrome OS. Ennek ellenére érdemes figyelemmel követni ezt a platformot is.

Többet megtudhatsz a prezentációból.

Support Library

Egy már várt változást is beharangoztak a v4-es support könyvtárral kapcsolatban. A 9-es api alatti támogatást elvetik és felbontják kisebb modulokra. Jelenleg a 23.2.0-ás verzió több mint 9000 metódusból áll. Ezzel könnyebb lesz karbantartaniuk és gyorsabban adhatnak ki új verziókat.

Az utóbbi verziók újdonságairól többet megtudhatsz a prezentációban.
A témák és stílusok használatáról is tartottak előadást.

Android Studio 2.2

Jön az újabb Studio. Javítottak a szerkesztőn és a tesztelésen.
A preview verziót már eléred a canary csatornán.

Layout szerkesztő

Végre elkészült az előző évben bemutatott design és preview ablak. Most már közvetlenül az előnézetben is lehet szerkeszteni a felületet az XML mellett. Egy új blueprint mód kerül hozzáadásra ahol a felület drótvázát láthatod. Design módban megtekintheted az elemek főbb és részletes tulajdonságait. Ami új, hogy ki lesznek töltve a mezők az alapértelmezett értékekkel és végre az olyan konténerek mint a ScrollView görgethetőek.
Újdonság, hogy lehet a menu és a preferences elemeit is módosítani design módban.

Constraint Layout

Kiadtak egy új layoutot, ami első ránézésre nagyon hasonlít az IOS féle Auto Layouthoz. Nagyban épít az új szerkesztőre, ahol is folyamatosan láthatod mi az eredménye ez egyes elemek elhelyezésének. Maga a Constraint layout a layoutjaid laposítását teszi lehetővé, ezzel gyorsabb lesz a megjelenítés. Jelenlegi layoutjaidat is átalakíthatod, szóval érdemes lesz kipróbálni.

Dokumentációt és prezentációt is találsz róla.

C/C++

Fejlesztettek a debuggoláson. Egyszerre lehet Java és C++ kódot debugolni. CMake támogatás is van már, ami egy népszerű build tool C++-hoz. Az NDK az egyik legelmaradottabb része a környezetnek, ráfér a fejlesztés.

Az NDK-ról szóló prezentációt is megtekintheted.

Kisebb fejlesztések
  • Példa kódra való keresés:
    A kontextus menüben elérhető opció az Google által létrehozott példákban keres a kijelölt osztályra.
  • Új Lint ellenőrzések, például
    szól, ha statikusan akarunk Context típusú objektumot tárolni.
  • Pár új Annotáció, köztük a
    @Keep annotációval megvédhetjük metódusunkat a Proguardtól.
Apk analyzer

Beépített eszköz lesz arra, hogy feltárd azokat erőforrásokat, amik a legtöbb helyet foglalják az APK fájlban. A metódusok számát is kiírja így könnyebben kizárhatod a felesleges könyvtárakat és a 65 ezres limit alá kerülhetsz.

Manifest merger

Vannak esetek amikor app futtatásakor derül ki, hogy olyan engedélyt is kér az applikációd, amiről te nem tudsz. Mostantól láthatod, melyik könyvtár milyen engedélyt hoz magával. Ezt az eszközt a manifest megtekintésekor éred majd el.

Tesztestek rögzítése

Fel lehet majd venni Espresso teszteket. Ez jelentősen leegyszerűsíti és megrövidíti majd a felület tesztelését. Ezeket a teszteket akár a Cloud Test Lab-en is el lehet indítani.
Volt egy prezentáció az Espresso használatáról is.

Play Service 9.0

Firebase nevű szolgáltatást és a Play Service-t olvasztották össze. Sajnos át kellesz vinni előbb utóbb a régi cuccokat ide.
Van viszont pár új ígéretes, ingyenes funkció. Crash report, Analitika, Távoli konfiguráció és a Dynamic linknek nevezett szolgáltatásuk.

Instant Apps

Telepítés nélküli appok volt az egyik nagy bejelentése a Googlenak a megnyitóban. Egy webes linkre kattintva nem az ahhoz tartó weboldal, hanem a hozzá tartó applikáció nyílik meg. Pontosabban az a része, amelyik azt a tartalmat mutatja, amit meg szeretnél nézni. Az appnak csak azt a részét töltöd le a Google szerveréről, amire szükség van.

Ez funkció a 16-os apitól lesz elérhető majd. Instant appal természetesen nem fogsz tudni hozzáférni az Android api egyes funkcióihoz. Például nem lehet background service-t sem indítani. Elkészítésükhöz nem kell majd szerencsére külön applikációt létrehozni csak a meglévőt felkészíteni rá.

Jelenleg pár fejlesztő bevonásával tesztelik amit folyamatosan bővítenek. Ha érdekel és szeretnél a teszteléshez hozzáférni, jelentkezhetsz az Android dev portálon.

Vaszil Ádám

Már sok-sok éve szeretne programozó lenni, de mivel ennyi nyelvet nehéz megtanulni, ezért inkább csak a Javara koncentrál.

Vaszil Ádám

Hozzászólások