razvoj mobilnih aplikacija - Пријава · razvoj mobilnih aplikacija author: marko created...
TRANSCRIPT
![Page 1: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/1.jpg)
RAZVOJ MOBILNIH APLIKACIJAMarko Milošević
![Page 2: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/2.jpg)
Android Studio vs Eclipse
Zvanično okruženje za razvoj Android aplikacija Kreirao ga i održava Google razvojni tim
Workspace -> Project Nije moguće raditi na više projekata istovremeno
Project -> Module Funkcionalne jedinice koje se mogu nezavisno pokretati,
testirati i debug – ovati Svaki modul ima svoj Gradle build fajl
![Page 3: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/3.jpg)
Gradle
Sistem za automatizovanje build procesa Kreiranje različitih verzija softvera na osnovu istog
koda
Omogućava razrešavanje zavisnosti (dependencies) unutar projekta. Modul može da zavisi od drugog modula, jar fajla,
udaljene biblioteke, itd.
Automatsko testiranje aplikacije/modula Generisanje APK fajla
![Page 4: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/4.jpg)
Gradle
Android Studio generiše podrazumevane gradle.build fajlove Jedan glavni (top-level) Za svaki modul još po jedan (module-level)Osnovna podešavanja vezana za modul
Ostali fajlovi gradle-wrapper.propertiesOdređuje verziju Gradle – a. Omogućava build – ovanje
aplikacije i ukoliko Gradle nije instaliran
![Page 5: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/5.jpg)
Gradle
Ostali fajlovi settings.gradle Referencira sve module u projektu
gradle.properties Sadrži svojstva vezana za ceo projekat
local.properties Čuva lokaciju lokalnog SDK
![Page 6: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/6.jpg)
Gradle – dodavanje zavisnosti
Prebacivanjem jar fajla u lib folder Izmenom gradle.build fajla Korišćenjem grafičkog interfejsa
Opcija “Open Module Settings”
![Page 7: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/7.jpg)
Android Studio vs Eclipse
Poboljšan interfejs za dizajniranje aplikacije Promenjen AndroidManifest.xml
Verzije, minimalna i maksimalna verzija android – a pomerene u gradle.build
Dozvole (permissions) su još uvek na starom mestu
![Page 8: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/8.jpg)
Još po neka novost
Ubrzavanje emulatora korišćenjem virtualizacije Intel Virtualization Technology HAXM (Hardware Accelerated Execution Manager)
AMD Virtualization Podrška za virtualizaciju se obično uključuje kroz BIOS Postojanje podrške zavisi od CPU – a
![Page 9: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/9.jpg)
Višejezične aplikacije, podrška za različite uređaje
Resursi
![Page 10: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/10.jpg)
Višejezične aplikacije
Moguće je postaviti resurse koji zavise od izabranog jezika.
Resursi mogu biti stringovi, slike ili nešto treće. http://developer.android.com/guide/topics/resourc
es/providing-resources.html
![Page 11: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/11.jpg)
Dodavanje novih resursa
Novi direktorijum u res/ nazvan u stilu <resources_name>-<config_qualifier> <resources_name> je direktorijum za odgovarajući
podrazumevani resurs (tab. 1). <qualifier> je ime koje određuje pojedinačnu
konfiguraciju za koju se ovi resursi koriste (tab. 2).
![Page 12: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/12.jpg)
Dodavanje novih resursa
Može se dodati više <qualifier> delova. Odvajaju se crtom. Primer drawable-en-rUS-land se odnosi na sve
drawable resurse na US-English jeziku u landscape modu.
<qualifier> delovi moraju biti u redosledu kao u tabeli 2. Pogrešno: drawable-hdpi-port Ispravno: drawable-port-hdpi
![Page 13: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/13.jpg)
Dodavanje novih resursa
Direktorijumi za resurse ne mogu biti ugnježdeni res/drawable/drawable-en/
Imena direktorijuma ne razlikuju mala i velika slova. Pri kompajliranju se sva prevode na mala slova.
Svaki tip može da se pojavi samo jednom. drawable-es-rES-fr-rFR/
![Page 14: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/14.jpg)
Kreiranje direktorijuma za jezik
MyProject/ res/ values/
strings.xml
values-es/ strings.xml
values-fr/ strings.xml
![Page 15: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/15.jpg)
strings.xml
English (default locale), /values/strings.xml: <?xml version="1.0" encoding="utf-8"?>
<resources><string name="title">My Application</string><string name="hello_world">Hello World!</string>
</resources> French, /values-fr/strings.xml:
<?xml version="1.0" encoding="utf-8"?><resources>
<string name="title">Mon Application</string><string name="hello_world">Bonjour le monde
!</string></resources>
![Page 16: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/16.jpg)
Pristup resursima
Iz java kodaString hello = getResources().getString(R.string.hello_world);
TextView textView = new TextView(this);
textView.setText(R.string.hello_world);
Iz drugih resursa<TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world" />
![Page 17: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/17.jpg)
Podrška za različite uređaje
Ekrani android uređaja se dele na kategorije po dva osnovna svojstva: Veličina (small, normal, large, xlarge) Gustina (ldpi, mdpi, hdpi, xhdpi)
Treba ponuditi odgovarajuće resurse za svaku od kategorija za koju se pretpostavlja da će aplikacija biti korišćena na njima.
![Page 18: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/18.jpg)
Podrška za različite uređaje
Koristiti “wrap content” i “match parent”
![Page 19: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/19.jpg)
Podrška za različite uređaje
Koristiti RelativeLayout
![Page 20: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/20.jpg)
Podrška za različite uređaje
Koristiti kvalifikatore za veličinu res/layout/main.xml:<LinearLayout xmlns:android=“..."
android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent">
<fragment android:id="@+id/headlines"android:layout_height="fill_parent"android:name="com...HeadlinesFragment"android:layout_width="match_parent" />
</LinearLayout>
![Page 21: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/21.jpg)
Podrška za različite uređaje
Koristiti kvalifikatore za veličinu res/layout-large/main.xml: <LinearLayout xmlns:android=“..."
android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="horizontal"><fragment android:id="@+id/headlines"android:layout_height="fill_parent"android:name="com...HeadlinesFragment"android:layout_width="400dp"android:layout_marginRight="10dp"/>
<fragment android:id="@+id/article"android:layout_height="fill_parent"android:name="com...ArticleFragment"android:layout_width="fill_parent" />
</LinearLayout>
![Page 22: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/22.jpg)
Podrška za različite uređaje
Smallest width kvalifikator res/layout-sw600dp/main.xmlOvaj layout će biti odabran na svim uređajima koji po širini
imaju bar 600dp (device pixels).
Koristiti kvalifikatore za orijentaciju Koristiti 9 – patch bitmap slike
sdk\tools\draw9patch.bat
![Page 23: Razvoj mobilnih aplikacija - Пријава · Razvoj mobilnih aplikacija Author: marko Created Date: 3/8/2016 6:58:18 PM](https://reader033.vdocuments.mx/reader033/viewer/2022060100/60afc85fcb8c1c7fd17a74fa/html5/thumbnails/23.jpg)
Podrška za različite uređaje
Kreirati različite slike U zavisnosti od gustine, obično treba kreirati četiri vrste
slika. Primer – slika 100 x 100 px. xhdpi – 200 x 200 px hdpi – 150 x 150 px mdpi – 100 x 100 px ldpi – 75 x 75 px
Najčešće se kreira slika najveće rezolucije, pa se ostale dobijaju smanjivanjem.