seminarski rad - razvoj aplikacija

Upload: helena-damjanovic

Post on 02-Nov-2015

343 views

Category:

Documents


3 download

DESCRIPTION

Seminarski rad razvoj aplikacija

TRANSCRIPT

Java Android programiranjeSeminarski rad iz predmeta IT120

Profesor: Student:Valentina Paunovi Helena Damjanovi 1945

Sadraj1.Uvod32.ta je Java?42.1 Karakteristike i osnovne komponente Java programskog jezika52.1.1 Osnovne vrste podataka62.1.2 Varijable (promenljive)72.2 Znaaj nezavisnosti platforme83. O Androidu84.Programiranje Android aplikacija94.1 Tipovi komponenti Android aplikacije104.2 Sastavljanje koda114.3 Android projekti125. Bezbedno pisanje u Javi13Zakljuak14Literatura15

1.Uvod

U ovom seminarskom radu predstaviu Javu, programski jezik koji se koristi za razvoj Android aplikacija. to se tie preduslova za razumevanje Jave, trebalo bi razumeti kako se programira, ali i biti upoznat sa specifinostima programiranja u Java jeziku. Takoe, prikazau jasne primere najee korienih jezika Java konstrukcija i principa, kao i neke Android savete i trikove. Da bi se razvila Android aplikacija (ili bilo kakva Java aplikacija po tom pitanju) potrebno je razvojno okruenje za pisanje i izgradnju aplikacija. Eclipse je veoma popularan kada se govori o razvojnom okruenju za Javu, i poeljan IDE za Android razvoj (dostupan je za Windows, Mac i Linux operativne sisteme.Postoji vie naina da se kreiraju aplikacije za Android ureaje, ali se preporuuje metod pisanja maternjih aplikacija, koristei Javu i Android SDK. Oni koji su novi u programiranju, verovatno bi elelli da se upoznaju sa sintaksama Java jezika i kako da ostvare osnovne zadatke programiranja.

2.ta je Java?

Programski jezici su, kao i redovni jezici, razliiti nain komuniciranja sa raunarom onako kako elite da deluje. Omoguavaju davanje instrukcija raunaru, korak po korak kako da manipulie podacima, prikuplja input od korisnika, a izmeu ostalog prikazuje stvari na ekranu. Android aplikacije se razvijaju korienjem Java jezika. Java je veoma popularan programski jezik razvijen od strane Sun Mycrosystems-a, koji je sada u vlasnitvu Oracle-a. Razvijen dugo posle C i C++, Java ukljuuje mnoge mone fukcije tih monih jezika. Programski jezici programirani na visokom nivou, poput Jave, omoguavaju pisanje instrukcija na apstraktan nain, koristei rei i simbole, dok raunar sam brine o prevoenju instrukcija.

Slika 1. Java logo

Ono to je bitno razjasniti je da ne postoji nikakva veza izmeu Java i JavaScript programskih jezika. Ipak, znanje vezano za JavaScript moe pomoi da razumete Javu, jer su neke od osnivnih komponenti i ideja sline. Ova dva jezika se piu i rade veoma drugaije, ali oba omoguavaju rad sa programskim karakteristikama kao to su varijable, objekti i slino. Logika jezika je ista, pa e korienje Jave biti lake ukoliko znate da koristite varijable, metode i petlje.[1]

2.1 Karakteristike i osnovne komponente Java programskog jezika

Izmeu ostalih, postoje neke od kljunih karakteristika Java programskog jezika: lako ga je nauiti i razumeti; dizajniran je tako da bude nezavisan od platforme, i bezbedan, koristei virtuelne maine; objektno je orijentisan;Android se u potpunosti oslanja na ove karakteristike Jave. Android SDK sadri mnoge standardne Java biblioteke (struktura podataka biblioteke, matematika biblioteke, grafike biblioteke, umreavanje biblioteke...), kao i posebne Android biblioteke koje mogu pomoi u razvijanju monih Android aplikacija.Jedan od razloga zbog kojeg je lako uenje Java programskog jezika je taj to sigurno postoji jako mnogo resursa koji vam mogu pomoi da nauite jezik, ukljuujui i veb sajtove, tutorijale, knjige i klase. Java je jedan od programskih jezika o kojima se najvie ui. Koristi se za mnoge razliite vrste programskih projekata, bez obzira na njihovu skalu, od veb aplikacija, preko desktop aplikacija do mobilnih aplikacija.Java je jedan od najvanijih ljudski itljivih jezika, ime se podrazumeva da osoba koja ne zna nita o programiranju mora esto pogledati neke od Java kodova kako bi imala nagovetaj ta da radi. Primer:char character = 'a';if(character=='a'){ doSomething();} else { doSomethingElse();}2.1.1 Osnovne vrste podataka

Ako se programiranje zasniva na radu sa podacima, bitno je bolje se upoznati sa osnovim tipovima podataka koji se koriste u Javi. Neke od sledeih su kljune rei koje ukazuju na tip podataka koje se koriste.int cela vrednost, odnosno ceo broj (bez decimali) koji sadri nule i negativne brojevefloat plutajua vrednost koja ukljuuje onoliko decimali koliko moe da izdri; decimalna mesta moete promeniti, vano je znati da ove vrednosti tehniki mogu biti neprecizne, a kada su potrebne precizne decimale, trebalo bi koristiti tip podataka BigDecimalboolean 1-bitna tana ili netana vrednost koja moe biti samo u jednom od tih tvrenjachar zaseban karakter, kao to je, na primer, slovo A ili simbol #; treba imati na umu da su veliki i mali karakteri drugaiji, odnosno da a i A nije istoString string podaci su gomila znakova zajedno nanizanih; slovo S na poetku je veliko, jer je String sloeniji tip podataka; Prve etiri vrste podataka (int, float, boolean i char) su primitivni tipovi podataka, to znai da su relativno jednostavni i jasni. Drugi primitivni tipovi podataka ukljuuju bajt, short i long.

Slika 2. Primitivni tipovi podataka2.1.2 Varijable (promenljive)

Varijable se u osnovi koriste za dranje podataka. Sami podaci mogu biti bilo ta, od jednostavnog broja do koordinata za lokacije. Java je statiki otkucan jezik, to znai da korisnici treba eksplicitno da se izjasne koji tip podataka varijable treba da odre.

Slika 3. Primer

Na slici iznad, prikazana je izjava koja deklarie varijablu pod nazivom title, koja dri string, tekst ili podatke. Takoe dodeljuje tekst Java osnove za Android na varijable.Prva re u deklaraciji je tip podataka, to nam govori koje vrste podataka e varijabla odrati. Druga re je ime promenljive, to moe biti bilo ta to korisnik eli. Imena varijabli ne smeju sadrati razmake ili specijalne karaktere. One mogu imati samo slova, brojeve i donje crte. Ipak, ne smeju poinjati brojem.Znak jednakosti (=) je operater, to znai da za korisnika obavlja odreenu operaciju. To je operater zadataka, to znai da se koristi da dodeli vrednost promenljivih. U ovom primeru se dodeljuje vrednost teksta na desnoj strani varijabli title na levoj strani.Zeleni tekst je String vrednost sa kojom korisnik radi. U Javi, String vrednosti su okruene duplim navodnicima kako bi bile razlikovane od redovnog teksta koji se koristi u kodu.Poslednji karakter je taka-zarez koji se koristi da zavri izjavu.[2]

2.2 Znaaj nezavisnosti platforme

Kada se radi sa mnogi programskim jezicima, nekada se mora koristiti kompilator kako bi se redukovao kod u mainski jezik koji ureaj moe dobro da razume. Iako je i ovo dobro, razliiti ureaji koriste razliite jezike maina. To znai da bi nekada moda morali da sastavimo svoje aplikacije za svaki od razliitih ureaja posebno, drugim reima, na kod ne bi bio prenosiv. Kada je Java u pitanju, ovo nije sluaj. Java kompajleri konvertuju svoju ifru od ljudski itljivih Java Source fajlova do neega to se u Java svetu zove bitecode. Java aplikacije rade u okviru mehura i izolovani su od hardvera ureaja. Odnosno, virtuelna maina preko koje funkcioniu moe obuhvati upravljanje i izvrenje koda na bezbedan nain, u poreenju sa jezicima koji rade u mainskom kodu direktno. Svaka Android aplikacija radi na operativnom sistemu koristei drugaiji korisniki nalog. Android aplikacije su paljivo kontrolisane od strane operativnog sistema i prekidaju sa radom ukoliko ne funkcioniu kako treba (ukoliko je zauzeto previe procesorske snage, prestanu da reaguju, troe resurse, itd.). Dakle, vano je razviti aplikacije koje su stabilne i reagujue. Aplikacije mogu komunicirati meusobno koristei dobro definisane protokole.[3]

3. O Androidu

Android je softverska platforma i operativni sistem za mobilne ureaje, razvijen od strane Google-a . Omoguava proramerima da piu kodove i upravljaju njima u Java jeziku, kontroliui ureaj preko Google razvijenih Java biblioteka. Za kratko vreme, Android je postigao veliki uspeh i jako brzo poeo da dominira na mobilnim telefonima i tabletima. Zasnovan je na Linux kernel jezgru koje razvija okruenje Opan Handset Alliance. Za razliku od ostalih operativnih sistema, kao to su na primer iOS, Android funkcionie kao open source operativni sistem, tako da proizvoai mobilnih telefona koji se odlue za ovu platformu mogu do izvesne mere da ga prilagode svojim potrebama. Obzirom na otvorenost izvornog programskog koda, aplikacije middleware-a imaju mogunost da komuniciraju i pokreu druge aplikacije. Iako je kod pisan u C/C++, veina stvari je pisana u Java programskom jeziku uz korienje Android Software Development Kit-a (SDK). Kada se govori o arhitekturi Androida ona moe biti predstavljena kroz est komponenti, od kojih svaka ini svoju funkciju.[4]

Slika 4. Arhitektura Androida4.Programiranje Android aplikacija

Operativni sistem Android je danas najzastupljeniji operativni sistem na mobilnim ureajima i sa ueem na tritu sa preko 60% u svetu i preko 70% kada e govori o naoj zemlji. Popularan je najpre zbog svog slobodnog koda i velikog broja obrazovanih proramera koji svakog dana rade kako bi reili razliite probleme, tzv.bagove, kao i da bi poboljali funkcionalnost Android operativnog sitema. Posledica iroko rasprostranjene upotrebe Androida je velika potreba za aplikacijama za ovu platformu, a samim tim su prilino traeni i Android programeri. Android platforma je skup dobro poznatih programskih jezika, od kojih sam ve pomenula Java programski jezik, a tu su i xml, html, css, java script, php, sqlite.

Sve aplikacije za Android se razvijaju u programskom okruenju Eclipse, sa plugin-om za Android. Osnovni elementi bilo koje Android aplikacije su njene komponente koje u potpunosti odluuju o ponaanju i karakteristikama aplikacija sa kojom sistem moe komunicirati ba preko njenih komponenti.

Slika 5. Eclipse radno okruenje

4.1 Tipovi komponenti Android aplikacije

AktivnostAktivnost se moe posmatrati kao jedan ekran sa korisnikim interfejsom. Recimo, aplikacija imenik moe sadrati jednu aktivnost koja e prikazivati sve kontakte u telefonu, dok e druga aktivnost vriti pretragu imena u imeniku, a trea moe obezbediti prikaz vie informacija o izabranom kontaktu iz imenika. Bitno je napomenuti da je svaka od aktivnosti nezavisna, iako su aktivnosti u okviru jedne aplikacije koordinirane i predstavljaju jednu logiku celinu. Zasebne aplikacije mogu startovati aktivnosti iz nekih drugih aplikacija.

ServisiServis je komponenta koja se uvek izvrava u pozadini kako bi bila omoguena realizacija nekih dugotrajnih operacija i izvravanje nekih udaljenih procesa. Servis ne prua korisniki interfejs.

Provajderi sadrajaOva komponenta upravlja deljenim delom podataka aplikacije. Podaci mogu biti skladiteni u sistemskom folderu, bazi, ili bilo kojoj lokaciji kojoj aplikacija moe da pristupi. Preko ove komponente aplikacija takoe moe vriti upit nad podacima.

Broadcast receiversBroadcast receivers je komponenta koja je kljuna za prenos sistemskih objava i obavetenja. Veina ovih komponenti potie iz sistema (npr. kada nam izlazi notifikacija da nam je slaba baterija, da je poslata poruka i sl.). Ova komponenta ne uestvuje u korisnikom interfejsu.

4.2 Sastavljanje koda

Potrebno je da programer sastavi Android projekte i spakuje ih kako bi se rasporedili na razliitim ureajima. Razvojno okruenje Eclipse dosta olakava ovaj proces. U Eclipse-u, automatska kompilacija je esto podrazumevano ukljuena, to znai da svaki put kada se sauva fajl projekta, Eclipse rekomponuje promene za paket aplikacije i odmah se mogu videti greke. Eclipse takoe vri interpretaciju Jave za vreme kucanja i prikazuje mnoge greke. esto se moe kliknuti na greke i Eclipse e ih automatski prepraviti ili obezbediti izjavu.I dalje se kod moe sastavljati runo. U okviru Eclipse-a, postoje podeavanja za izgradnju.Proces izrade za redovne Java programere rezultira fajlom sa ekstenzijom JAR Java Arhiva. Android aplikacije uzimaju JAR fajlove i pakuju ih za rasporeivanje na Android ureaje kao paket fajlova sa ekstenzijom .apk. Ovi formati ne samo da ukljuuju sastavljen Java kod koji je sastavio korisnik, ve i sve druge resurse kao to su slike, audio fajlovi i sl, koje aplikacija zahteva da pokrene. Android fajl za manifestovanje je fajl koji je zahtevan od strane svih Android aplikacija koji se koriste za definisanje konfiguracionih detalja o aplikaciji.[5]

4.3 Android projekti

Android projekti su projekti koji su ugraeni u jednu .apk datoteku koju instalirate na Android ureaju. Oni sadre stvari ako to u izvorni kod aplikacija i resursi dadoteke. Neki su podrazumevano generisani, dok druge treba generisati ukoliko je potrebno. Sledei direktorijumi i dadoteke ine jedan Android projekat:src/ sadri svoj fajl aktivnosti (svi ostali source code fajlovi kao to su .java ili .aidl takoe se smetaju ovde)bin/ - izlazni direktorijum; ovo je mesto gde moete pronai konanu .apk datoteku i druge prikupljene resursejni/ - sadri maternji izvor koda razvijen korienjem Android NDKgen/ - sadri Java dadoteke generisane uz ADT, kao to su npr. R.java fajl i interfejsi stvoreni od AIDL fajlovaassets/ - aktiva je prazna, moe se koristiti za skladitenje sirovih fajlova; fajlovi koji su sauvani ovde su objedinjeni u jedan .apk fajlres/ - sadri resurse aplikacija, npr. string vrednosti anim/ - za XML dadoteke koji su sastavljeni u objekte animacijecolor/ - za XML datoteke koje opisuju bojedrawable/ - za bitmap fajlove (PNG, JPEG ili GIF)layout/ - XML datoteke koje su objedinjene tako da kreiraju izgled ekrana (ili deo ekrana)menu/ - za XML datoteke koje definiu aplikacije menijaraw/ - za proizvoljne raw fajlove (uvanje datoteka ovde umesto u direktorijumu aktive razlikuje se samo u nainu na koji im se pristupa values/ - vrednosti su za XML datoteke koje su sastavljene u mnogo vrsti izvoraXML/ - za razliite XML datoteke koje konfiguriu komponente aplikacije.[6]

5. Bezbedno pisanje u Javi

Java statiko kucanje se pokazalo kao vredno izvan vog kompajlera. Sposobnost maine da analizira semantiku Java koda je glavna sila u razvijanju monih alata kao to su pronalazai bagova i sl. Mnogi programeri tvrde da, posebno uz moderno kodiranje alata, ogranienja koja postoje su mala cena koja se plaa u odnosu na mogunosti pronalaska i manifestovanja problema. Java je prilino dobar statiki vezan jezik, ali je lo dinamian jezik. Ipak, mogue je uraditi dosta dinaminih stvari uz Javu.[7]

Slika 6. Komparacija srodnih jezika

Zakljuak

Kako je Android postao iroko rasprostranjen, kao i njegova upotreba, tako rastu i zahtevi za Android aplikacijama i potranja za Android programerima je velika. Danas na Internetu postoji obimna literatura koja poetnicima moe olakati uvod u programske jezike. U ovom radu prikazala sam nain funkcionisanja Java programskog jezika, kao i povezanost sa Androidom i arhitekturu Android opertivnog sistema. Postoje mnoga radna okruenja koja su specijalno dizajnirana za ovaj vid programiranja tako da korisniku omoguavaju pouzdan i efikasan rad. Poetnici se uglavnom upoznaju sa elementima HTML jezika, zatim sa objektno orijentisanim tehnikama u programiranju i razlikama u odnosu na proceduralne i modularne jezike.Java je programski jezik koji je danas zastupljen irom planete i ugraen ne samo u mobilne ureaje ve i u raunare, automobile i slino, iju upotrebu olakava i unapreuje. Mislim da je izbor Java programskog jezika pri programiranju aplikacija za Android dobra odluka.

Literatura

[1], [3] http://code.tutsplus.com/tutorials/android-sdk-app-structure--mobile-20280[2] http://blog.teamtreehouse.com/java-basics-for-android-development-part-1[4], [6] http://it-ebooks.info/book/358/https://instaedu.com/what-is-Android-Programming/[5] http://developer.android.com/tools/projects/index.html[7] Learn Java for Android Development, Second edition, Jeff Friesen

Ni, 201414