Android Q voor ontwikkelaars: alles wat u moet weten

Schrijver: Louise Ward
Datum Van Creatie: 9 Februari 2021
Updatedatum: 2 Juli- 2024
Anonim
Android Q : HAL : Android Studio for HAL development
Video: Android Q : HAL : Android Studio for HAL development

Inhoud


Vanuit het perspectief van een gebruiker is een nieuwe versie van Android meestal een spannende tijd. Tenzij u een bepaald UI-element niet leuk vindt, betekent dit over het algemeen betere prestaties, meer stabiliteit en een hele reeks nieuwe functies.

Lees ook: De beste Android Q-functies die u moet kennen

Voor ontwikkelaars brengt een update zoals Android Q meestal meer gemengde gevoelens met zich mee. Die nieuwe functies zijn nog steeds goed nieuws, waardoor mogelijk meer interessante en krachtige functionaliteit in onze apps mogelijk is. Tegelijkertijd vertegenwoordigen de wijzigingen ook veel werk, omdat we haasten om ervoor te zorgen dat projecten niet alleen het nieuwe platform ondersteunen en aan de specificaties voldoen, maar ook worden geoptimaliseerd om de best mogelijke ervaring te bieden.

Daartoe helpt dit bericht je op weg te komen, door alle belangrijke veranderingen en ontwikkelingen te delen die we tot nu toe kennen voor ontwikkelaars om in gedachten te houden.


Dit omvat momenteel alle nieuwe ontwikkelingen tot Beta 6. Dit is waarschijnlijk de laatste keer dat we dit bericht voor de definitieve release bijwerken!

Android Q voor ontwikkelaars in één oogopslag - wat u echt moet weten

Dit is wat je echt moet weten:

  • Nieuwe locatierechten zijn vereist.
  • Ondersteuning voor multi-CV vereist duidelijke wijzigingen.
  • Scoped-opslag verandert de manier waarop u bestanden op externe opslag opslaat en opent.
  • Scannen naar locatie vereist nu FIJN locatie.
  • Informatie zoals IMEI is nu beperkt.
  • Achtergrondapps kunnen niet langer voorgrondactiviteiten starten.
  • Hoewel het niet strikt gerelateerd is aan Android Q, worden nieuwe specificaties voor app-pictogrammen geïntroduceerd.
  • Evenzo worden ontwikkelaars later dit jaar gedwongen om Android Pie minimaal te ondersteunen. Waarschuwingen verschijnen op apps als ze zich niet houden.
  • En alle apps moeten tegen het einde van het jaar 64-bits versies bieden.
  • Nieuwe systeemgebaarnavigaties kunnen de gebruikersinterface van de app beïnvloeden.

Hier zijn enkele coole nieuwe functies waarin u misschien geïnteresseerd bent:


  • Multi-cv zorgt voor krachtigere multitasking.
  • U kunt wijzigingen in de emulator testen via het release-kanaal van Android 3.5 Canary.
  • Devs hebben nu toegang tot meer gegevens van dieptesensoren.
  • Devs kunnen ervoor kiezen om het donkere thema te ondersteunen.
  • Hoogwaardige WiFi-modi met lage latentie beschikbaar.
  • Met TextClassifier kunnen ontwikkelaars de taal van een stuk tekst identificeren.
  • Met MicrophoneDIrection API kunt u de richting van de microfoon kiezen tijdens het opnemen.
  • Bubbels zorgen voor eenvoudiger multitasking en rijke meldingen.
  • Verbeterde ondersteuning voor mediacodecs.
  • Door snelkoppelingen te delen, kunt u gemakkelijker media vanuit apps delen.
  • Snelle instellingen bieden gemakkelijke toegang tot instellingen met betrekking tot de huidige app.
  • Ondersteuning voor Vulkan wordt hard gepusht.
  • Meer neurale netwerkoperaties.
  • Verbeteringen aan de Android-runtime helpen uw apps sneller te lunchen (in theorie).

Lees verder voor meer informatie over al deze dingen en meer kleine wijzigingen. We gaan ook kijken hoe je je app nu meteen op Android Q kunt testen.

Locatiemachtigingen zien verbeterde beveiligingsopties

Elke nieuwe iteratie van Android brengt nieuwe functies met zich mee die zijn ontworpen om gebruikers een veiligere en privé-ervaring te bieden. Deze keer krijgen ze meer controle over locatie-informatie. Voorheen konden gebruikers toegang verlenen tot groothandel in locatiegegevens. Deze keer kunnen ze een derde optie selecteren om alleen die gegevens te verstrekken terwijl de app in gebruik is - wanneer deze op de voorgrond wordt uitgevoerd.

Dit betekent hopelijk dat gebruikers niet zullen weigeren om een ​​app volledig te installeren omdat ze niet willen dat ze 'naar hen kijken', hoewel de formulering die wordt gebruikt voor de toestemming voor achtergrondlocaties een beetje onaangenaam kan zijn:

"Geef de app toegang tot de locatie van dit apparaat altijd?

Ouch!

Hoe je het ook voelt, het betekent dat je een paar wijzigingen moet aanbrengen. In het bijzonder moeten ontwikkelaars die zich op Q richten de volgende regel aan hun app-manifest toevoegen: android.permission.ACCESS_BACKGROUND_LOCATION.

Als je een oudere app hebt, voegt Android deze toestemming standaard toe aan ACCESS_FINE_LOCATION of ACCESS_COARSE_LOCATION.

Meer informatie over hoe u dit kunt instellen, is hier beschikbaar bij Google.

Scoped-opslag verandert de manier waarop u toegang krijgt tot externe bestanden

Hoewel we het over privacy hebben, kunnen gebruikers ook de toegang tot gedeelde bestanden in de mappen Foto's, Video's en Audio beheren met nieuwe runtime-machtigingen die READ_EXTERNAL_STORAGE en WRITE_EXTERNAL_STORAGE vervangen. Toegang tot de map Downloads is ook alleen beschikbaar via de systeembestandskiezer, waardoor gebruikers volledige controle hebben over welke bestanden beschikbaar worden gesteld.

Om dit in te stellen, moet u nieuwe machtigingen aanvragen zoals READ_MEDIA_IMAGES en vervolgens toegang krijgen tot de collecties via de MediaStore API. U vindt de volledige instructies hier.

Ter compensatie hebben apps nu hun eigen 'geïsoleerde opslagsandbox' die een map biedt die beperkt is tot die app op externe opslag. Dit is bedoeld om de behoefte aan machtigingen te verminderen en hopelijk iets flexibeler te zijn dan de interne opslag die momenteel wordt geboden. U moet nog steeds een back-up van die bestanden maken door ze te verplaatsen naar de MediaStore-collecties of het Storage Access Framework te gebruiken als u wilt dat ze blijven bestaan ​​nadat de app is verwijderd. Het zal echter onvermijdelijk enkele obstakels creëren in een paar unieke use-cases.

Als u toegang wilt krijgen tot bestanden uit de geïsoleerde opslagsandboxen van andere apps op externe opslag, zijn er enkele kanttekeningen. Dit is standaard ingeschakeld voor veelgebruikte mediabestandstypen (zoals foto's en muziek). Als u echter toegang wilt krijgen tot andere bestanden die door een afzonderlijke app zijn gemaakt, moet u de intenties ACTION_OPEN_DOCUMENT en ACTION_OPEN_DOCUMENT_TREE gebruiken om toegang te vragen tot een specifiek bestand (dat de gebruiker zal verlenen of intrekken).

Meer beveiligingswijzigingen

Een paar andere beveiligingswijzigingen om te overwegen:

  • Achtergrond-apps zullen niet langer in staat zijn om activiteiten op de voorgrond te starten, omdat dit voor gebruikers schokkend kan zijn. In plaats daarvan moet u een melding met hoge prioriteit gebruiken met een intentie op volledig scherm voor zaken als inkomende oproepen.
  • Apparaten hebben standaard gerandomiseerde MAC-adressen op verschillende Wi-Fi-netwerken (dit was optioneel in Pie).
  • Toegang tot informatie zoals apparaat IMEI en serienummer is nu beperkt. Meer informatie hier.
  • Voor API's voor het scannen van netwerken is nu de FINE-locatietoestemming vereist.
  • Ondersteuning toegevoegd voor WPA3 en Enhanced Open Wi-Fi-standaarden.
  • Het lijkt erop dat apps niet langer kunnen schakelen tussen wifi, maar in plaats daarvan gedwongen worden te vertrouwen op het nieuwe instellingenpaneel.

Toekomstbestendig - opvouwbare apparaten, multi-cv en neurale netwerken

Android Q neemt ook een aantal stappen om zich voor te bereiden op de toekomst van hardware. Je weet wat dat betekent: opvouwbare! Of, zoals Google ze noemt: "innovatieve nieuwe schermen."

De grote ontwikkelingen zijn verbeteringen aan onResume en onPause. Deze ondersteunen nu "multi-CV" en stellen de app op de hoogte wanneer deze focus krijgt. Met Multi-Resume kunnen twee apps tegelijkertijd worden uitgevoerd zonder te pauzeren (zoals momenteel het geval is). Dit is waarschijnlijk van invloed op alle apps in de modus met meerdere vensters (niet alleen op opvouwbare schermen), waardoor onze telefoons uiteindelijk dichter bij echte desktopachtige prestaties komen. Als je wilt zien hoe dat er nu uitziet, kun je iets soortgelijks proberen via de MultiStar-app op Samsung (onderdeel van Good Lock).

Naast multi-cv ziet Android Q ook wijzigingen in onResume en onPause - misschien enkele van de meest fundamentele veranderingen die we al een tijdje hebben gezien.

Het aanpasbare kenmerk van het manifest van de activiteit wordt ook gewijzigd om te helpen bij het regelmatig verdubbelen van de grootte wanneer de schermen worden geopend.

Dit is allemaal grotendeels goed nieuws voor ontwikkelaars die zich nu minder zorgen hoeven te maken over hoe ze moeten omgaan met gepauzeerde maar zichtbare apps. Dat gezegd hebbende, introduceert het nog meer potentiële use-cases en display-types voor een al zeer gefragmenteerd platform. Leuk leuk.

Nogmaals, om dit alles te implementeren, moet u enkele wijzigingen aanbrengen in het manifest en specifiek de tag opnemen: android.allow_multiple_resumed_activities. Vanaf Beta 2 en 3 kunnen ontwikkelaars dit zelf testen met behulp van de opvouwbare emulator via de AVD.

De Neural Networks API 1.2 komt ook, met 60 nieuwe bewerkingen en verbeterde functionaliteit. Ops zijn onder meer ARGMAX, ARGMIN en Quantized LSTM, die in wezen betere objectdetectie en beeldsegmentatie mogelijk moeten maken.

Meer multitasking met bubbels

Alsof echte multitasking niet genoeg was, introduceert Android Q ook nog een andere manier om meer dan één ding tegelijk te doen: bubbels. Deze bubbels fungeren effectief als een vorm van melding, maar bieden meer informatie en laten zelfs hele activiteiten zien bovenop wat de gebruiker momenteel doet. Dit geeft snelle toegang tot zaken als notities, vertalingen en chats. In wezen chatkoppen dan.

bellen fungeren effectief als een vorm van kennisgeving

Ontwikkelaars hebben toegang tot de nieuwe functie via een API die bovenop het huidige meldingssysteem is gebouwd. Om bubbels te verzenden, gebruikt u setBubbleMetadata en geeft u vervolgens een activiteit weer die binnen de bubbel wordt weergegeven samen met een pictogram.

Snelkoppelingen delen en het instellingenpaneel

Google wil het voor gebruikers gemakkelijker maken om inhoud van apps te delen, en daarom introduceert het "Sharing Shortcuts" zodat gebruikers direct in een andere app kunnen springen. Ontwikkelaars kunnen 'deeldoelen' publiceren om specifieke activiteiten te starten met de bijgevoegde inhoud, en deze zullen aan gebruikers worden getoond via de gebruikersinterface. Vanaf Beta 2 kunt u nu een voorbeeld geven van de gegevens die worden gedeeld.

Dit werkt op dezelfde manier als App-snelkoppelingen en is dus toegankelijk via de ShortcutInfo API. Er komt ook een nieuwe ShareTarget AndroidX-bibliotheek, die werkt voor apparaten waarop Q niet actief is. Google heeft een voorbeeld-app gedeeld voor diegenen die willen controleren hoe dit allemaal werkt.

Het lijkt erop dat dingen sneller gaan, is de naam van het spel in het algemeen, met Android Q maakt het ook gemakkelijker om systeeminstellingen te wijzigen in de context van de app die momenteel wordt uitgevoerd. Dit is beschikbaar voor ontwikkelaars via de API van het instellingenpaneel.

Om het instellingenpaneel weer te geven, moet u gewoon een intentie zoals ACTION_VOLUME gebruiken met een actiepaneel-instellingen.

Verbeterde connectiviteit

De wifi-stack is opnieuw bewerkt in Android Q om de privacy en prestaties te verbeteren en om dingen zoals het beheren van IoT-apparaten of het suggereren van internetverbindingen eenvoudiger te maken zonder locatietoestemming.

Interessanter is echter dat ontwikkelaars toegang hebben tot hoge prestaties en lage latentiemodi. Dit laatste zal met name handig zijn voor games (en gamestreaming!).

U kunt deze openen door WiFiManager.WiFiLock.creatWifiLock () te bellen en WIFI_MODE_FULL_LOW_LATENCY of WIFI_MODE_FULL_HIGH_PERF te gebruiken.

Nieuwe media-opties - codec-ondersteuning en dieptegegevens

Devs kunnen nu profiteren van die dieptecamera's. Dynamische diepte-afbeeldingen kunnen worden aangevraagd en bevatten een JPG, XMP-metagegevens die diepte-elementen beschrijven en een kaart met dieptevertrouwen.

Dit kan nuttig zijn voor camera-apps en apps voor het bewerken van afbeeldingen, maar misschien nog spannender is het potentieel voor AR-toepassingen. Google werkt samen met OEM's om ervoor te zorgen dat deze beschikbaar is op alle Q-ondersteunende apparaten.

Android Q ondersteunt ook de open source videocodec AV1, die streaming van hoge kwaliteit mogelijk maakt met lagere bandbreedtevereisten. Audiocodering via Opus komt ook. Via de MediaCodecInfo API wordt het nu ook eenvoudiger om de renderingopties op een bepaald apparaat te onderscheiden.

Een native MIDI API maakt ook communicatie met MIDI-apparaten via de NDK mogelijk. Met de nieuwe MicrophoneDirection API kunnen ontwikkelaars de richting van de microfoon instellen tijdens het opnemen van audio. Dit standaardiseert ook de controle over zoombare microfoons.

Een andere nieuwe functie is de mogelijkheid om audio van andere apps op te nemen. Dit is handig voor dingen als gamestreaming, ondertiteling en vertalen.

Prestaties opgewaardeerd - Vulkan en de Android Runtime

Game-ontwikkelaars zouden over de hele linie moeten kunnen profiteren van verbeterde Vulkan-ondersteuning. Het gestelde doel van Google is ervoor te zorgen dat de API wordt ondersteund op alle 64-bits apparaten met Android Q. Het bedrijf werkt ook aan een standaard en bij te werken OpenGL-stuurprogramma voor apparaten die zijn gebouwd op Vulkan. Android Q voegt ook experimentele ondersteuning toe voor ANGLE - een abstractielaag waarmee games met OpenGL ES moeten kunnen profiteren van de prestaties en stabiliteit van Vulkan. OpenGL ES 2.0 wordt ook ondersteund in Q, met ondersteuning voor 3.0 kort daarna.

U kunt ook verwachten verbeterde algemene prestaties in al uw apps te zien. Dit wordt gedeeltelijk bereikt door verbeteringen in de Android-runtime, waardoor apps sneller kunnen starten en minder geheugen verbruiken (hoewel Gary dit niet in zijn Speed ​​Test G vond op een ouder apparaat).

In een poging de stabiliteit te verbeteren, beperkt Google ook de toegang tot privé-API's. U kunt hier een lijst vinden met degenen die in de grijze lijst staan. Google belooft dat openbare alternatieven in alle gevallen beschikbaar zullen worden gesteld.

UI-wijzigingen - gebarennavigatie en donkere modus

Vanaf bèta 3 kunnen ontwikkelaars er nu voor kiezen om het 'donkere thema' te ondersteunen door hun thema uit te breiden van 'Theme.AppCompat.DayNight' of materiële componenten. U kunt vervolgens uw eigen standaard nachtthema-instellingen instellen. Zorg ervoor dat gebruikers de optie krijgen om van thema te wisselen zoals zij dat willen, en denk na over hoe uw lay-out en zichtbaarheid.

Android Q ondersteunt ook gebarennavigatie zoals bijna elke Android Skin, wat nieuwe gebruikersinterface-overwegingen voor gebruikers met zich meebrengt. Bijvoorbeeld: overweeg of gebaren die zijn ingebakken in de unieke gebruikersinterface van uw app voor verwarring bij gebruikers kunnen zorgen. In dit soort gevallen kunnen ontwikkelaars kiezen of ze 'gebaaruitsluitingsrechthoeken' willen gebruiken om de systeemgebaren te negeren of om eenvoudig de manier te wijzigen waarop gebruikers omgaan met hun apps. Overweeg ook om meer gebruik te maken van dat extra scherm dat wordt geboden door het verlies van knoppen.

Met de klasse TextClassifier kunnen ontwikkelaars de taal van een stuk tekst detecteren. Ten slotte vullen slimme acties snelantwoordvelden in meldingen in met logische opties. Dit zal wat overhead verminderen voor ontwikkelaars die die functionaliteit niet langer helemaal opnieuw hoeven te coderen.

In reactie op feedback, hebben de laatste wijzigingen in Beta 5 een "peek" -optie toegevoegd voor apps die de navigatietekening gebruiken, en een snelle snelkoppeling voor toegang tot de assistent. Beta 6 bracht een gevoeligheidsinstelling voor het teruggebaar, samen met een 200dp verticale app-uitsluitingslimiet.

Hoe het te proberen

Als dat alles tot je verbeelding heeft geleid (of je een beetje angstig heeft gemaakt), zijn er een paar manieren waarop je Android Q een draai kunt geven.

U kunt Android Q Beta op een Pixel-apparaat laden. Als je echter toevallig geen Pixel hebt rondslingeren - of als je niet graag een bèta-besturingssysteem op je dagelijkse stuurprogramma wilt installeren - dan kun je in plaats daarvan de eenvoudigere route kiezen om het in te stellen met behulp van AVD Manager.Open gewoon de SDK Manager en dan zou je een systeemkopie moeten kunnen kiezen voor Android Q Beta om het te downloaden.

Vanaf Android Q Beta 4 en hoger zijn alle API's nu beschikbaar voor ontwikkelaars om hun apps te testen en Google accepteert al die targeting API 29 in de Play Store.

Wat vindt u van deze veranderingen? Kun je nieuwe functies bedenken die je aan je projecten kunt toevoegen? Of heb je nu veel werk om de beveiligingsupdates te omzeilen?

De Pocophone F1 kreeg veel aandacht toen hij vorig jaar werd gelanceerd. De napdragon 845-toting-telefoon werd gelanceerd met een middenklae prij en i inddien alleen goedkoper geworden. Het blijft een...

Xiaomi-apparaten hebben de reputatie de bete waar voor uw geld te bieden, met indrukwekkende pecificatie voor een lagere prij dan veel andere grote peler. Het merk i inddien verder uitgebreid dan zijn...

Wij Adviseren