Hands-on iskustva u razvoju
Android aplikacija
Nikola Kapraljević, Infinum
24 sata
Slušaj Radio
Brez
Frekvence!
OLX
Android OS
operativni sustav za smartphone/tablet uređaje
odličan mobilni OS
Google Inc.
aktualna verzija Gingerbread i Honeycomb
400 000 aktivacija dnevno
100 000 000 uređaja
Android OS
Linux based OS
no NIJE Linux
nema glibc
nema X11
nema konfiguracijske datoteke koje očekujemo
nema ni sve alate koji dolaze s Linuxom
Open source mobile OS
Google Nexus S
NFC!
HTC Desire
Izgled korisničkih sučelja
HTC Sense
Motorola Motoblur
Samsung TouchWiz
Sony Ericsson UX
Honeycomb
tablet računala
Android Market
25$ account (ne koristiti personal mail)
Lamborgini Aventador
700hp V12, 2.9s do 100km/h
Razvoj aplikacija
Koristite version control
GIT, SVN, bilo što!
Android SDK
osnova za razvoj aplikacija
Programski
jezik Java
Dalvik VM
Java SE 5
Android NDK
native development kit (C ili C++)
Eclipse IDE + ADT plugin
sve ostalo je “sedlanje krave” (™ @carr_)
Eclipse DDMS
perspective u Eclipseu
Android Debug Bridge
SDK/tools/adb
Android Emulator
nažalost strašno spor...
Android Emulator
AVD - Android Virtual Device
ekstremno spor
emulira se cijela ARM arhitektura te je zato spor
ima pristup Internetu
tools/emulator
Android Emulator
moguće ga je konfigurirati
 veličina SD storagea
 veličina i density ekrana
 forwardanje zvuka
 korištenje skinova
 ...
Android Emulator
Ctrl - F11/F12 mijenja rotaciju uređaja
više informacija o emulatoru možete pronaći
ovdje
http://developer.android.com/guide/
developing/tools/emulator.html
telnet localhost 5554
Emulator demo
App demo
New project...
File -> New Project...
Android Project
Workspace
Finish...
Workshop
src/
assets/
res/
AndroidManifest.xml
AndroidManifest.xml
permissions, activity, name, icon
strings.xml
layouts
R.java
pointers from java to resources
R.java
R.layout
R.string
R.drawable
R.anim
R.color
HomeActivity.java
jako puno overridinga i inheritancea
Android AVD Manager
napraviti ćemo novi AVD
DDMS perspective
pozivi, sms, network speed
~/.android/avd
Pokretanje aplikacije
compiling, signing, deploying, running
ant make
android update project -p .
ant help
Command line install
adb install bin/Workshop.apk
adb uninstall com.infinum.workshop
Instalacija apk
 email
 web URL
 QR code
Signing applications
 kompajliranje
 potpisivanje
 čuvati keystore, ako ga izgubimo onda je FUBAR
 ne moramo kupovati certifikat (self-signed)
Paziti na
Low processing power
Limited RAM
Limited permanent storage capacity
Small screens with low resolution
High costs associated with data transfer
Slow data transfer rates with high latency
Unreliable data connections
Limited battery life
ANR
application not
responding
services 10s
activities 5s
draw9patch
layoutop
layoutopt res/layout-hdpi
sqlite3
 $ adb -s emulator-5554 shell
 sqlite3 /data/data/com.infinum.test/databases/data.db
 SQLite version 3.3.12
 Enter ".help" for instructions
 .... enter commands, then quit...
 sqlite> .exit
Application testing
Money/monkeyrunner, Robotium
.nomedia
Hiding your files from the Media Scanner
LevelListDrawable
coloredlog.py
NFC

near field
communications
peer 2 peer
read/write
card emulation
Flurry
AdMob
Google IO 2011
http://www.youtube.com/user/GoogleDevelopers
Pitanja ...
Hvala!

twitter@nixa
skype@nkapralj
nikola.kapraljevic@gmail.com

Hands on Android

Editor's Notes

  • #2 \n
  • #3 \n
  • #4 \n
  • #5 \n
  • #6 \n
  • #7 \n
  • #8 \n
  • #9 - definicija otvorenosti u reziji andy rubina\n- glavni za razvoj androida u googleu\n- kao odgovor na tvrdnju jobsa da android nije otvoreni projekt\n
  • #10 - ukoliko kupujete trenutno android telefon, to je telefon koji zelite kupiti\n
  • #11 \n
  • #12 - svi vendori koji koriste android na svojim uredajima imaju mogucnost modificirati ga\n- korisnicima je to najvidljivije u vidu korisnickog sucelja\n
  • #13 \n
  • #14 \n
  • #15 \n
  • #16 \n
  • #17 \n
  • #18 \n
  • #19 \n
  • #20 \n
  • #21 \n
  • #22 \n
  • #23 \n
  • #24 - aplikacija nece po defaultu biti brza ako radite stvari koristeci C ili C++, ali ce sigurno biti nekoliko puta slozenija i slozenija za odrzavanje\n
  • #25 \n
  • #26 \n
  • #27 resetiranje adbd daemona, instaliranje i uninstaliranje aplikacija, push, pull\n
  • #28 \n
  • #29 \n
  • #30 \n
  • #31 \n
  • #32 \n
  • #33 \n
  • #34 \n
  • #35 \n
  • #36 \n
  • #37 \n
  • #38 min sdk version omogucuje da aplikaciju pokrecemo i na starijim verzijama SDK\naplikacija u tom slucaju mozda paziti na kojoj se verziji izvrsava\n
  • #39 \n
  • #40 \n
  • #41 \n
  • #42 \n
  • #43 \n
  • #44 \n
  • #45 \n
  • #46 - neke stvari se mogu emulirati no ne sve\n- recimo emuliranje kamere, telefonskih poziva i slicno radi\n- ne moze se emulirati sensore, slobodno pokusajte tresti laptop, ali ne moj!\n- network bandwidth se moze mijenjati\n
  • #47 \n
  • #48 pokazati ini file\ngdje se nalazi SD kartica i slicno\nmksdcard za napraviti karticu rucno\nprilikom stvaranja AVD-a mozemo izabrati ili velicinu ili datoteku\n
  • #49 \n
  • #50 \n
  • #51 radi deployment na emulator ili na uredjan no brine se za transfer i instalaciju na ciljanom uredaju\n
  • #52 \n
  • #53 \n
  • #54 \n
  • #55 \n
  • #56 \n
  • #57 \n
  • #58 \n
  • #59 \n
  • #60 \n
  • #61 \n
  • #62 \n
  • #63 \n
  • #64 \n
  • #65 \n
  • #66 \n
  • #67 \n
  • #68 \n