of 15 /15
Odsek za računarsku tehniku i računarske komunikacije Projektovanje namenskih ra čunarskih struktura 1 Razvojni alati Androida

Projektovanje namenskih računarskih struktura 1 · 2020. 6. 28. · o animacije –folder anim o liste boja kojećese koristiti –folder color o multimedija (slike, animacije, itd.)

  • Author
    others

  • View
    2

  • Download
    0

Embed Size (px)

Text of Projektovanje namenskih računarskih struktura 1 · 2020. 6. 28. · o animacije –folder anim o...

  • Odsek za računarsku tehniku i računarske komunikacije

    Projektovanje namenskihračunarskih struktura 1

    Razvojni alati Androida

  • Alati za razvoj Android aplikacija

    Glavni set besplatnih alata:

    o Android Studio IDE

    o Android SDK i NDK

    o adb

    o Emulator

    o logcat

    2020 2

    IDE

    Emulator

    ADT ADB

    Android

    AppBuild

    ToolsSource

  • Android Studio

    Zvanično okruženje od 2015

    Trenutno aktuelna verzija 3.6

    Zasniva se na IntelliJ IDEA okruženju

    Koji je proširen sa podrškom za Android

    Google zvanično podržava AS

    Visok stepen integracija sa Android SDK i NDK

    Pogodan za o Razvoj koda

    o Pronalaženje grešaka

    o Profilisanje

    o Dizajn grafičkog okruženja

    2020 3

  • Finalni Android program APK

    APK je Androidova arhiva (verzija ZIP) za jednu aplikaciju

    Digitalno je potpisana (može i sa komercijalnim i debug ključem)

    Sve što je potrebno za aplikaciju nalazi se u ovoj arhivio Programski kod

    o Biblioteke

    o Resursi

    o Pomoćni fajlovi (na primer, Manifest)

    2020 4

  • Android Debug Bridge - adb

    Konzolna aplikacija na platformi za razvoj, deo Android SDK

    Obezbeđuje klijent-server sistem, gde je klijent na host računaru (gde se odvija razvoj), a server na Android računaru o Android računar može biti i emulator

    o Komunikacija se obavlja preko mreže ili preko USB

    Omogućuje:o Listanje priključenih uređaja: adb devices

    o Povezivanje sa uređajem: adb connect

    o Instalaciju programa u Android računar: adb install apk_file

    o Prenos datoteka na/sa Android uređaj: adb push moj_fajl /sdcard/

    o Pregled sistemskog Log-a: adb logcat

    o Rad sa konzolom na Android računaru (shell): adb shell

    2020 5

  • Povezivanje sa Android uređajem

    Provera prisustva uređaja:

    adb devices

    Fizički uređaj se spaja USB kablom

    o Na uređaju potrebno je uključiti podršku za USB debagiranje

    adb connect

    Fizički uređaj je na lokalnoj mreži

    o potrebno je da se poveže komandom:

    adb connect x.x.x.x:port

    2020 6

  • Emulator

    Uz SDK stiže i emulator ciljne platforme (ARM, Intel, MIPS)

    Mogu se birati različiti modeli (generički, ili emulatori pravihhardverskih uređaja) i različita okruženja (verzije OS-a, verzije API-ja)

    Izvršava izvršni kod sa druge platforme (npr. ARM) na PC

    Zasniva se na qemu programu, koji omogućuje on-the-fly prevođenjeinstrukcija

    Nedostatak: sporije izvršavanje

    Alternativa je da se instalira VirtualBox Android slika ili da se koriste x86 slike

    Prednost emulatora: univerzalnost, nema potrebe za pravimuređajem, eksperimenti sa različitim platformama (veličina, RAM, ekran, rezolucija)

    2020 7

  • Postupak generisanja aplikacije

    Generisanje aplikacije je transformacija izvornog koda u izvršivu datoteku

    Tokom generisanja, poziva se niz alata

    Većina je nevidljiva za programera (osim možda gradle alata koji upravlja build procesom)

    IDE skriva kompleksnost postupka, i nudi niz alata za njegovo ubrzavanje

    Podrazumeva tesnu integraciju sa Android SDK i NDK

    2020 8

  • Klasa R

    Klasa R je automatski generisana klasa u Android projektu koja čuva informacije o korišćenim resursima u projektu

    Resursi su stringovi, grafički elementi, rasporedi (layouts), boje

    Čini spregu između Java sveta i stvarnih resursa

    Kada se promene resursi, klasa R se mora ponovo generisati

    Proces generisanja APK brine o tome

    2020 9

    /* AUTO-GENERATED FILE. DO NOT MODIFY.

    * This class was automatically generated by the

    * aapt tool from the resource data it found. It

    * should not be modified by hand.

    */

    package com.rtrk;

    public final class R {

    public static final class attr {

    }

    public static final class drawable {

    public static final int icon=0x7f020000;

    }

    public static final class layout {

    public static final int main=0x7f030000;

    }

    public static final class string {

    public static final int app_name=0x7f040001;

    public static final int hello=0x7f040000;

    }

    }

  • Resursi

    Resursi mogu biti:

    o animacije – folder anim

    o liste boja kojeće se koristiti – folder color

    o multimedija (slike, animacije, itd.) – folder drawable

    o ostali fajlovi – folder raw android.resource://com.rtrk/raw/famous

    o xml fajlovi koji opisuju prostorni raspored komponenti na ekranu Aktivnosti – folder layout

    o opis menija – folder menu

    o stringovi – folder values, fajl strings.xml i18n

    localisation

    ne moraju svi stringovi da se smeste u jedan strings.xml fajl

    • tablestrings.xml, connectionstrings.xml i sl.

    2020 10

  • Android manifest

    U APK nalazi se i AndroidManifest.xml datoteka koju sistem generiše na osnovu parametara projekta u IDE

    Datoteka sadrži metapodatke koje omogućavaju Android sistemu na telefonu da rukuje aplikacijom

    Tokom instalacije i ažuriranja (update) sistem konsultuje ovu datoteku da bi se ona ispravno instalirala

    U manifestu se minimalno nalazi

    o Ime Java paketa

    o Minimalni nivo API-ja za izvršavanje

    o Dozvole koje aplikacija zahteva

    o Spisak aktivnosti i servisa u APK datoteci

    o Aktivnost od koje kreće izvršavanje programa

    2020 11

  • Android manifest - primer

    2020 12

  • Načini instalacije aplikacije

    Iz IDE okruženja

    o Pokretanjem programa

    o Pronalaženje i ispravljanje grešaka u programu

    Ručno

    o adb install MyApp.apk

    o adb uninstall com.paket.MainClass

    Sa javnog portala (Google Play)

    o APK datoteka se preuzima sa servera i instalira na uređaju

    Proverene aplikacije

    2020 13

  • Podrška tokom razvoja

    Android sajt za razvoj

    o http://developer.android.com

    Knjige

    o Android Programming: The big nerd ranch guide

    o Karim Yaghmour: Embedded Android: Porting, Extending, and Customizing

    Forumi sa temama vezanim za Android razvoj:

    http://stackoverflow.com

    http://www.xda-developers.com/

    2020 14

  • Rezime

    Alati za razvoj olakšavaju i ubrzavaju razvoj softvera, i doprinose kvalitetu istog

    o Direktno

    o Indirektno

    Mnoge stvari su sakrivene od strane IDE, ali je potrebno razumeti na koji način se generiše izvršni kod za Android – barem na visokom nivou

    To znanje će biti potrebno kada nešto krene po zlu

    2020 15