Android-programmering och systemstruktur
60 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Vad är den huvudsakliga funktionen av Android Runtime?

  • Köra applikationer i en virtuell miljö (correct)
  • Ge tillgång till lägre liggande bibliotek
  • Publicera och dela data mellan appar
  • Hantera hårdvaruresurser
  • Vilket lager hanterar hårdvaruresurser i Android-programstacken?

  • Linux kärna (correct)
  • Hardware Abstraction Layer
  • Java API Framework
  • System Appar
  • Vad innebär en Content Provider i Android?

  • Ett ramverk för att kommunicera med hårdvarukomponenter
  • En klass för att skapa grafiska gränssnitt
  • En uppsättning klasser som delar data mellan appar (correct)
  • En komponent för att lagra användardata lokalt
  • Vad är syftet med Hardware Abstraction Layer (HAL)?

    <p>Att ge en högre kodnivå så applikationer kan köras oberoende av hårdvara (A)</p> Signup and view all the answers

    Vilken del av Android-programstacken är mest relevant för utvecklare?

    <p>Java API Framework (C)</p> Signup and view all the answers

    Vad sker med varje applikation i Android?

    <p>De får egen process och är skilt från andra (B)</p> Signup and view all the answers

    Vilket API lager används för att utveckla programvara för Android?

    <p>Java API Ramverk (D)</p> Signup and view all the answers

    I vilken form presenteras data i en Content Provider?

    <p>Databasliknande form med tabeller (B)</p> Signup and view all the answers

    Vad är huvudsakligen View System i Android?

    <p>Det är en samling av grafiska objekt som användargränssnittet bygger på. (A)</p> Signup and view all the answers

    Vilken manager hanterar resurser som ligger under res-mappen?

    <p>Resource Manager (B)</p> Signup and view all the answers

    Vad är en Activitys livscykel status 'Paused'?

    <p>Activityn är delvis skymd. (D)</p> Signup and view all the answers

    Vilken metod rekommenderas nu för att spara applikationsdata?

    <p>onStop() (A)</p> Signup and view all the answers

    Vad gör Notification Manager?

    <p>Möjliggör att appar kan få notifikationer och uppdateringar. (D)</p> Signup and view all the answers

    Vad är den viktigaste delen av en egenutvecklad Android-app?

    <p>Activity (B)</p> Signup and view all the answers

    Om en Activityn dör, vad händer med instansen och dess resurser?

    <p>De förstörs och går förlorade. (B)</p> Signup and view all the answers

    Vilken manager ger tillgång till enhetens platsbestämning?

    <p>Location Manager (D)</p> Signup and view all the answers

    Vad är en vanligt förekommande orsak till att systemet stänger ned en process?

    <p>Det finns en mindre appprioritet. (D)</p> Signup and view all the answers

    Vilket scenario kräver godkännande från användaren?

    <p>Kontrollera status på telefontjänsten. (A)</p> Signup and view all the answers

    Vad gör Packet Manager?

    <p>Ger information om installerade appar. (C)</p> Signup and view all the answers

    Vilken typ av objekt kan inte skickas mellan aktiviteter genom vanliga kommunikationssätt?

    <p>Komplexa datatyper (D)</p> Signup and view all the answers

    Vad händer om tunga anrop till andra system görs på huvudtråden i en Android-app?

    <p>Användaren kommer att uppfatta att appen låst sig. (B)</p> Signup and view all the answers

    Vilken typ av trådning behövs för anrop till Internet i Android?

    <p>Anropen måste vara trådade och kan inte köras på huvudtråden. (A)</p> Signup and view all the answers

    Vad innebär att en Activity är 'Started'?

    <p>Activityn visas helt för användaren. (A)</p> Signup and view all the answers

    Vilka komponenter består en app av?

    <p>Activities, Services och Broadcast Receivers. (B)</p> Signup and view all the answers

    Vad är en fördel med att använda FusedLocation för att bestämma enhetens position?

    <p>Det ger en mer exakt uppskattning av positionen genom att kombinera olika sensorer. (D)</p> Signup and view all the answers

    Vad krävs för att använda GPS i en Android-app?

    <p>Tillstånd både i Manifest-filen och realtidsfråga till användaren. (B)</p> Signup and view all the answers

    Vilken komponent i Android används för att hantera affärslogik i MVC-mönstret?

    <p>ViewModel (A)</p> Signup and view all the answers

    Vad är ett krav för att koppla upp sig mot ett REST API i en Android-app?

    <p>Tillstånd för Internet i Manifest-filen. (C)</p> Signup and view all the answers

    Vad kännetecknar ett barn-fragment i Android?

    <p>Det är en del av ett större gränssnitt. (C)</p> Signup and view all the answers

    Vad är huvudsyftet med Activities och Fragments i Android?

    <p>Att hantera användarinteraktion och gränssnitt. (D)</p> Signup and view all the answers

    Vilken typ av databas är RealTimeDatabase i Firebase?

    <p>En JSON-strukturerad realtidsdatabas. (C)</p> Signup and view all the answers

    Vilket bibliotek rekommenderas för att hantera API-hämtning och trådning i Android?

    <p>Retrofit (B)</p> Signup and view all the answers

    Vad är syftet med ViewModel när man kommunicerar mellan Activities?

    <p>Att spara och hantera data överlevande konfigurationsändringar. (B)</p> Signup and view all the answers

    Vilken metod bör användas för att registrera en callback för resultat från en Activity?

    <p>registerForActivityResult() (D)</p> Signup and view all the answers

    Vad är skillnaden mellan explicita och implicita Intents?

    <p>Implicita Intents kräver inget specifikt paketnamn. (A)</p> Signup and view all the answers

    Vilket av följande påståenden om Fragments är korrekt?

    <p>Fragments kan vara headless och sakna användargränssnitt. (D)</p> Signup and view all the answers

    Vilket mönster rekommenderas för kommunikation mellan Fragments?

    <p>Observer-mönstret med hjälp av LiveData. (B)</p> Signup and view all the answers

    Vilket syfte har NavHostFragment i navigation mellan Fragments?

    <p>Att förenkla navigering med hjälp av en nav_graph.xml fil. (A)</p> Signup and view all the answers

    Vad karakteriserar en bakgrundsservice?

    <p>Den används för långtidsspecifika uppgifter utan användargränssnitt. (D)</p> Signup and view all the answers

    Vad kännetecknar en bunden service?

    <p>Den kan acceptera flera kopplingar från olika komponenter. (D)</p> Signup and view all the answers

    Hur kan man växla mellan olika Fragments?

    <p>Genom FragmentManager och FragmentTransaction. (C)</p> Signup and view all the answers

    Vad innebär det att en Activity eller Fragment är 'headless'?

    <p>Den saknar ett användargränssnitt men kan fortfarande behandla logik. (C)</p> Signup and view all the answers

    Vilken typ av Intent används typiskt för att starta en specifik Activity?

    <p>Explicit Intent. (D)</p> Signup and view all the answers

    Vad är syftet med LiveData i samband med ViewModel?

    <p>Att observera och uppdatera UI automatiskt vid databasändringar. (B)</p> Signup and view all the answers

    När bör registerForActivityResult användas istället för onActivityResult?

    <p>För att registrera callbacks för resultat när en Activity startas. (D)</p> Signup and view all the answers

    Vad är en FragmentContainerView?

    <p>En behållare där Fragment kan placeras och hanteras. (A)</p> Signup and view all the answers

    Vad händer med en StartedService om den har en aktiv bindning?

    <p>Den fortsätter att köra oavsett om appen används. (A)</p> Signup and view all the answers

    Vilken av följande metoder används för att spara data mellan olika sessioner av appen?

    <p>Shared Preferences (C)</p> Signup and view all the answers

    Vad är syftet med en Adapter i Android-programmering?

    <p>Att anpassa data för att koppla till en AdapterView. (C)</p> Signup and view all the answers

    Vilket alternativ beskriver RecyclerView korrekt?

    <p>Det erbjuder större flexibilitet och bättre prestanda jämfört med ListView. (B)</p> Signup and view all the answers

    Hur hanterar ViewBinding referenser till Views?

    <p>Genom att automatiskt skapa ett objekt med referenser till layouts. (B)</p> Signup and view all the answers

    Vilken typ av databas används ofta i Android-applikationer för att spara data permanent?

    <p>SQLite (A)</p> Signup and view all the answers

    Vad används SafeArgs i samband med?

    <p>Överföring av data mellan Fragment med hjälp av Jetpack Navigation. (D)</p> Signup and view all the answers

    Vad kännetecknar ListView som en AdapterView?

    <p>Det kan visa data i en listformat med lyssnare för klick. (D)</p> Signup and view all the answers

    Vilket av följande alternativ förklarar Bundle korrekt?

    <p>Det används för att lagra data temporärt under en Activitys livstid. (C)</p> Signup and view all the answers

    Vilken typ av layout kan RecyclerView använda?

    <p>Både lineär och grid layout. (A)</p> Signup and view all the answers

    Vilket av följande är ett korrekt användningsområde för Content Provider?

    <p>För att överföra data mellan olika appar. (C)</p> Signup and view all the answers

    Vad innebär det att en adapter återanvänder vyer?

    <p>Det förbättrar prestanda genom att minska skapandet av nya vyer. (D)</p> Signup and view all the answers

    Vilket påstående är korrekt om R-filen i Android?

    <p>Den är en kompilerad klass med publika konstanter för resurser. (B)</p> Signup and view all the answers

    Vilken av följande påståenden om Android LifeCycle management är korrekt?

    <p>Det är viktigt för att förstå hur komponenter interagerar vid konfigurationsändringar. (C)</p> Signup and view all the answers

    Study Notes

    Androids Programstack

    • Androids programstack baseras på Linuxkärnan.
    • Programstacken har olika lager.
    • Java API Framework är det lager utvecklare programmerar mot.
    • Hårdvarubiblioteket (C/C++) är ett lägre lager, kompilerat mot processorn.
    • Android Runtime (JVM/Dalvik JVM) är den virtuella maskinen.
    • Hardware Abstraction Layer (HAL) är ett abstraktionslager för hårdvara.
    • Linuxkärnan hanterar processer och resurser.
    • Varje applikation körs i en egen process.

    Viktiga Delar för Utvecklare

    • Huvudfokus ligger på Java API Framework.
    • Anpassning till ramverkets regler är nödvändig.
    • Life-cycle-metoder är viktiga (Activity och Fragment).
    • HAL-lagret används för enhetens inbyggda sensorer (kamera, GPS).

    Java API Framework

    • Innehåller färdig funktionalitet.
    • Utvecklare måste följa ramverkets regler.

    Content Providers

    • Tillåter appar att publicera/dela data med andra appar.
    • Data presenteras i en databasliknande form.
    • Kräver användartillstånd.

    View System

    • Uppbyggnad av användargränssnitt (UI).
    • Views (Widgets) och ViewGroups (Layouts).

    Managers

    • Resource Manager: Hanterar resursfiler (exempelvis resurser i res-mappen).
    • Activity Manager: Hanterar Activitys livscykel, backstack.
    • Notification Manager: Hanterar aviseringar (meddelanden, ikoner, ljud/vibrationer).
    • Telephone Manager: Hanterar telefontjänsten.
    • Location Manager: Hanterar platsbestämning (GPS).
    • Packet Manager: Hanterar installerade appar, implicit Intent.

    Appar och Processer

    • Processer kör appar, services och andra komponenter.
    • Varje app körs i en egen Linuxprocess.
    • Services kör ofta på huvudtråden (tänk på prestanda).
    • Systemet kan avsluta processer för att spara minne.

    Activity

    • Viktig del av en app.
    • Utseendet definieras i en XML-fil.
    • Views och ViewGroups används.
    • Endast en Activity kan vara aktiv samtidigt.
    • Data i Activities kan överleva pausas/stopp.
    • Activities har olika states och life-cycle callbacks.
    • Implementera spara av data i onStop() för bättre prestanda.
    • Ej optimalt att ha långa processer i onPause().

    Att Växla mellan Activities

    • Använd startActivity() för att starta en ny Activity.
    • Använd startActivityForResult() när du behöver ett resultat från den nya Activityn (nu deprecerad, använd registerForActivityResult).
    • Kommunikation mellan Activities sker via Intent (implicit och explicit).

    Fragments

    • Liknande Activities, men mer dynamiska.
    • Används för att bygga komplexa gränssnitt.
    • Headless fragments existerar.
    • Övergångar hanteras genom FragmentManager.
    • Nuvarande rekommendation är användning av NavHostFragment och nav_graph.xml.

    Services

    • Bakgrundskomponenter utan UI.
    • Används för långtidskörningar (exempelvis musik, dataöverföring).
    • Finns olika typer (startad, bunden).
    • Bundna services fortsätter att köras även om appen inte används.
    • Started Services kan köras även när appen inte är aktiv.

    LifeCycle Management

    • Viktig hantering för Activities och Fragments.
    • Kopplas till konfigurationsändringar.

    Bundle

    • Används för dataöverföring mellan Activities och Fragments.
    • Data sparas under appens livscykel.

    Resources

    • Viktigt att hantera resurser (res-mappen).
    • R-filen innehåller konstanter för Views.
    • Olika mappar för olika skärmorienteringar och upplösningar.

    ViewBinding

    • Automatiskt skapat objekt för View-referenser.
    • Undviker findViewById.
    • Typsäker och hanterar null bättre

    SafeArgs (Directions)

    • Gradle plugin för dataöverföring mellan Fragments.
    • Används tillsammans med Navigation Component.

    ListView/RecyclerView

    • ListView är en gammal standard.
    • RecyclerView är det moderna alternativet (mer effektivt).
    • Adapters används för att anpassa listorna till datakällor.

    Adapters

    • Används för att formatera data till ListViews/RecyclerView.
    • Olika typer av adapters för olika datakällor.

    Data Lagring/Delning

    • Bundle: Temp data under appens livstid.
    • Shared Preferences: Data mellan appens körningar.
    • SQLite: Lokal databas med Room Persistence Library.
    • Firebase (etc.): Molnbaserade tjänster (RTDB, Cloud Firestore) för data-delning mellan appar, olika användare.
    • Content Provider: Delning av data mellan appar.

    Trådning

    • Androids View-system kör på huvudtråden.
    • Använd arbetstrådar för långa operationer (databasar, internet).
    • Firebase har inbyggd asynkronitet.

    Modern Appbyggande och Navigering

    • Använd främst Fragments för att bygga gränssnitt i Activities.
    • Fragments är återanvändbara.

    Workshops

    • Location: Använd FusedLocation för GPS-information.
    • API: Använd bibliotek för API-frågor och trådar anropen.
    • Firebase: Molntjänster för data-lagring, asynkrona callbacks.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Description

    Denna quiz testar din kunskap om Android-programstacken och dess huvudkomponenter. Frågor fokuserar på funktioner såsom Android Runtime, Content Providers och Hardware Abstraction Layer. Perfekt för både nybörjare och erfarna utvecklare.

    More Like This

    Android App Development Quiz
    48 questions

    Android App Development Quiz

    LionheartedWisdom4273 avatar
    LionheartedWisdom4273
    Android App Architecture Quiz
    40 questions

    Android App Architecture Quiz

    ProtectiveBohrium3356 avatar
    ProtectiveBohrium3356
    Use Quizgecko on...
    Browser
    Browser