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

Preview:

Citation preview

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

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.rtrk"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk android:minSdkVersion="9" />

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name" >

<activity

android:name=".LayoutExamplesActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

</manifest>

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

Recommended