En introduksjon til Android TV

An Introduksjon til Android TV
43
Del
18
Del
Dette Cyber ​​mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.

Vil du få en bedre forståelse av Android TV? Kanskje du ønsker å utvide eksisterende Android-prosjekter for å støtte denne nye plattformen, eller kanskje du har en idé til en Android-TV-appen du ønsker å utvikle.

Uansett motivasjon, vil denne artikkelen introdusere deg til Android TV plattformen, fra hva Android TV er Anmeldelser og hva som kjennetegner en effektiv TV app, rett gjennom å skape og teste din egen Android-TV prøveprosjektet.

1. Hva er Android TV?

Kunngjøres på Google IO 2014, er Android TV den nye Smart TV-plattform fra Google. Brukere kan enten kjøpe en TV med den nye plattformen bygget i, eller de kan legge til Android TV til sine eksisterende TV ved å kjøpe en frittstående set-top-boks, som for eksempel Nexus Player.

I hovedsak Android TV bringer apps og funksjonalitet brukere allerede nyte mindre Android-enheter til det store lerretet. Brukere kan laste ned Android-TV-programmer fra den kjente Google Play-butikken, og plattformen støtter Google Cast, slik at brukerne kan kaste innhold fra smarttelefonen eller nettbrettet inn på deres Android TV-enheten.

2. Designing for Android TV

Hvis du har erfaring med utvikling for Android smarttelefoner eller tabletter, Android TV vil umiddelbart føle seg kjent, men det er noen viktige forskjeller du må være klar over. Denne delen dekker beste praksis som er unike for Android TV.

Lever en effektiv '10 Foot Experience '

Ifølge den offisielle Android TV dokumentasjon, sitter den gjennomsnittlige TV-seer rundt 10 fot unna skjermen sin, slik at alle dine elektroniske innhold må være godt synlig fra 10 meters avstand.

Et triks for å levere en effektiv '10 fot erfaring 'er å utforme et brukergrensesnitt som endrer automatisk avhengig av størrelsen på TV-skjermen. Dette betyr å bruke layout-relative størrelse, for eksempel fill_parent, snarere enn absolutte dimensjonering, og velger for tetthetsuavhengig piksel istedenfor absolutt piksel enheter.

Du bør også holde teksten til et minimum som tekst blir vanskeligere å lese på avstand. Så mye som mulig, bør du kommunisere med brukerne via andre metoder, for eksempel kommentarspor, lydeffekter, video og bilder.

Hvis du trenger å inkludere tekst, gjøre det enklere å lese ved å:

unngå lette fonter

unngå skrifter som har svært smale eller veldig brede strøk

bruke lys tekst på mørk bakgrunn

bryte tekst i små biter

Minimer og Forenkle Interaksjon

Tenk på hvordan du kommuniserer med TV-en din. Du vanligvis utføre noen enkle interaksjoner å komme til innholdet du ønsker, enten det er å bytte kanal, starte opp DVD-spilleren, eller starte ditt favorittinnhold-streaming app.

Du ikke
forvente å måtte utføre kompliserte interaksjoner-og det gjør heller ikke Android-TV-brukere. Hvis du ønsker å holde brukerens oppmerksomhet, trenger din app å ha færrest mulige skjermer mellom app inngangspunkt og innhold innlevelse.

Selv når brukeren er nedsenket i programmet ditt, bør du holde samhandling til et minimum og unngå kompliserte samspillet som den typiske TV brukeren har begrenset kontrollene til rådighet-vanligvis enten en fjernkontroll, en spillkontroller, eller den offisielle Android TV-appen installert på sin smarttelefon eller et nettbrett.

Easy Navigation

TV-kontroller har en tendens til å være begrenset til en navigasjonsknapp og en valgknappen, så utfordringen er å skape en effektiv navigasjon ordningen for din app, ved hjelp av disse begrensede kontroller.

Ett triks er å bruke en visning gruppe (for eksempel Listevisning eller Grid View) som automatisk ordner appens brukergrensesnitt-elementer i lister eller rutenett, som er lett å navigere med en navigasjonsknapp og en valgknappen.

Dine brukere bør også være i stand til å fortelle med et blikk som objekt er valgt. Du kan markere den gjeldende valgte objektet med visuelle signaler, for eksempel størrelse, skygge, lysstyrke, animasjon, og opasitet.

Enkelt og Ryddig

Android TV kan gi deg mer skjermplass å spille med, men ikke bli båret bort og prøver å fylle hver tomme av plass. En enkel, ryddig brukergrensesnitt er ikke bare mer visuelt tiltalende, det er også lettere å navigere-noe som er spesielt viktig med tanke på de begrensede kontroller tilgjengelig for den typiske Android TV bruker.

Et brukergrensesnitt som inneholder en noen store, kraftige elementer i brukergrensesnittet er også kommer til å gi et bedre '10 fot erfaring "enn en skjerm fylt med mange mindre elementer i brukergrensesnittet.

Support landskapsmodus

Alle dine prosjektets aktiviteter må støtte liggende retning eller din app vil ikke vises til Android TV-brukere i Google Play-butikken.

Hvis du utvikler en app som også kan kjøres på smarttelefoner og nettbrett, være oppmerksom på at hvis prosjektet inneholder android: screenOrientation = "portrett" den android.hardware.screen.portrait kravet implisitt satt til true. Du må spesifisere at selv om programmet ditt støtter stående retning der det er tilgjengelig, kan det kjøres på enheter der stående modus ikke støttes (dvs. Android TV):
< bruker-featureandroid: name = "android.hardware.screen. portrett "android: påbudt =" false "/>
Tillat for Scan

For å sikre at det er aldri noen tomrom rundt kantene av skjermen, kan TV-klippet kantene av innholdet i en prosess som kalles overscan. Siden du ikke ønsker å miste noe viktig innhold for å overscan, bør du la en margin rundt kantene på din app som er fri fra alle elementene i brukergrensesnittet.

v17 Leanback bibliotek gjelder overscan- automatisk trygge marginer til programmet ditt. Alternativt kan du lage dine egne overskanning sikker marginer ved å la 10% av tomrom rundt kantene på din app. Dette betyr en 48dp margin rundt venstre og høyre kant (android: layout_marginRight = "48dp"), og 27dp langs toppen og bunnen (android: layout_marginBottom = "27dp")

Design for Android TV maskinvare. Begrensninger

Android-TV har ikke mange av maskinvarefunksjoner vanligvis tilgjengelig for andre Android-baserte enheter. Når du utvikler for Android TV-plattform, kan du ikke bruke følgende:

Near Field Communication (NFC)

GPS

Kamera

Mikrofon

Touchscreen

Telefoni

Hvis du vil at app til å kjøre på ikke-TV-enheter, for eksempel smarttelefoner og nettbrett, kan du angi Selv om appen krever disse maskinvarefunksjoner, vil den bruke dem der det er tilgjengelig, for eksempel:
< bruker-feature android: name = "android.hardware.touchscreen" android: påbudt = "false" />

Vær også oppmerksom på at følgende bruksområder-tillatelses manifest erklæringer antyde maskinvarefunksjoner som Android TV ikke support:


RECORD_AUDIO

CAMERA

ACCESS_COARSE_LOCATION

ACCESS_FINE_LOCATION


3. Opprette en Android TV Eksempel Project

I den siste delen av denne opplæringen, vil vi ta en første hånd se på noen TV-ready-kode ved å opprette og teste en enkel Android TV prosjekt.

Før du kan utvikle noe for Android TV-plattform, sørg for at du har oppdatert SDK til Android 5.0 (API 21) eller høyere, og dine SDK verktøy til versjon 24.0.0 eller høyere.

Når du er oppdatert, er det på tide å lage din app:..


    Launch Android Studio

    Velg Start en ny Android Studio Prosjekt
    < li> Gi prosjektet et navn og et domene. Klikk på Neste.
  1. Velg TV, og deretter velge bort alle de andre avmerkingsboksene. Selv om du kan lage Android-TV-prosjekter som har en smarttelefon, nettbrett og /eller Android Wear modul, for enkelhets skyld vi skal opprette en enkelt-modul prosjektet. Klikk på Neste.

    5. Velg Android TV Aktivitet og klikk på Neste.

    6. Hold deg til standardinnstillingene, og klikk Fullfør
    .

    Android Studio vil deretter lage ditt prosjekt.



    4. Breaking Down the Manifest

    Nå har du opprettet din prøve prosjekt, vil vi ta en linje for linje titt på Android Manifest, som denne filen inneholder massevis av TV-spesifikk kode.

    Legg merke til at selv om de fleste av denne koden genereres automatisk når du oppretter en Android-TV-prosjekt, har jeg gjort noen mindre tilføyelser og justeringer som er alt klart merket i teksten.
    < xml version = "1.0" encoding = "utf-8" > http: //schemas.android.com/apk/res/android "pakken =" com.example.jessica.tvdemo "> < bruker-tillatelse android: name = "android.permission.INTERNET" /> < bruker-tillatelse android: name = "android.permission.RECORD_AUDIO" />

    Som allerede nevnt, android.permission.RECORD_AUDIO tillatelse innebærer at appen krever android.hardware.microphone. Så denne linjen med kode forhindrer effektivt programmet ditt fra å bli installert på enheter som ikke har tilgang til en mikrofon. Hvis din app kan fungere uten en mikrofon, bør du gjøre følgende tillegg:
    < bruker-feature android: name = "android.hardware.microphone" android: påbudt = "false" />

    Legge koden ovenfor betyr at brukerne kan installere appen på enheter som don ' t har tilgang til mikrofon hardware
    < bruker-feature android. name = "android.hardware.touchscreen" android: Påkrevd = "false" />

    Mens berøringsskjerm støtte er funnet på mange Android-baserte enheter Dette er ikke tilfelle med Android TV. Android TV app må erklære at den ikke krever
    berøringsstøtte
    < bruker-feature android. Name = "android.software.leanback"

    Listen biten erklærer at appen bruker Leanback-grensesnittet vi diskutert tidligere
    android: påbudt = "true" />

    Hvis du vil at app til å kjøre på ikke-TV enheter hvor Leanback ikke støttes, må du endre. over linjen til android: påbudt = "false"
    < søknad android. allowBackup = "true" android: icon = "@ Mipmap /ic_launcher" android: label = "@ streng /APP_NAME" android: tema = "@ style /Theme.Leanback "

    Ovennevnte tillegg gjelder Leanback tema i prosjektet
    android: banner =." @ teikne /banner ">

    App bannere representere din app på Android TV skjermen og er hvordan brukeren starter programmet ditt. Din app banner må være 320px x 180px xhdpi image og bør inkludere tekst

    Hvis du ønsker å bruke samme banner over alle dine aktiviteter, bør du legge til android. Banner attributt til ditt manifest < søknaden > tag som jeg har gjort her. Hvis du ønsker å gi en annen banner for hver aktivitet, må du legge til en android: banner attributt til alle programmets < aktivitet > tags i stedet
    < aktivitet android: ".. MainActivity" name = android: icon = "@ teikne /app_icon_your_company" android: label = "@ streng /APP_NAME" android: logo = "@ teikne /app_icon_your_company" android: screenOrientation = "landskapet" > < intent-filter > < handling android: name = "android.intent.action.MAIN" /> < kategori android: name = "android.intent.category.LEANBACK_LAUNCHER" />

    Dette biten erklærer en bærerakett aktivitet for TV
    < /intent-filter >. < /aktivitets > < aktivitet android: name = ". DetailsActivity" /> < aktivitet android: name = ". PlaybackOverlayActivity" /> < aktivitet android: name = ". BrowseErrorActivity" /> < /søknad > < /manifest >
    5. Teste Sample App

    Det neste trinnet er å teste hvordan app-funksjoner fra brukerperspektivet. Selv om du har tilgang til en fysisk Android TV, vil du ønsker å teste prosjekt på tvers av flere enheter, slik at du alltid bør opprette minst en Android TV AVD

    For å opprette din AVD.


      Start AVD sjef, enten ved å klikke på AVD Behandling-knappen på verktøylinjen eller ved å velge Verktøy > Android > AVD Manager.
    1. Klikk på Opprett ny Virtual Device.
    2. Velg TV-kategorien.
    3. Velg et av Android-TV enheter som er oppført og klikk på Neste.
    4. Velg system image og klikk på Neste

      Gi AVD et navn og klikk Finish

      For å teste prøveprosjektet, velg Kjør >..; Kjør app, etterfulgt av din TV AVD. Når AVD er ferdig lastet, vil du se Android TV brukergrensesnitt med appens banner i nederste venstre hjørne.


      For å starte app, Klikk på banneret bildet. Etter en kort forsinkelse, vil app vises i AVD vinduet.



      6. Mer å utforske

      Denne artikkelen har gitt deg en innføring i Android TV og har vist deg hvordan du oppretter en prøve app. Hvis du ønsker å utforske mer av Android TV-plattform, kan du fortsette å utvikle prøven din app ved å ta en titt på følgende områder:

      BrowseFragment. I prøven app, tilsvarer hver rad med innhold til en kategori. Denne delen av brukergrensesnittet er opprettet med BrowseFragment klassen. Du kan lære mer om dette fragmentet i Opprette en katalog Browser del av den offisielle Android-TV-docs.

    5. DetailsFragment. Klikk på en del av innholdet for å se mer informasjon om dette innholdet. For å utvide denne funksjonaliteten, ta en titt på DetailsFragment klassen i å bygge et Detaljer View.



      SearchFragment. Til tross for søkeikonet i appens øverste venstre hjørne, er søkefunksjonen ikke fungerer i prøven din app. For å få det til å fungere må du ta en titt på SearchFragment klassen, som du også kan finne mer informasjon om i Android TV dokumentasjon.

      Konklusjon

      Du skal nå har en bedre forståelse av hva utvikle for Android TV innebærer. Det er et par ting å se opp for, men å utvikle for Android TV bør ikke være for vanskelig hvis du allerede har erfaring med utvikling for Android.