Android aplikacije su kolekcija zadataka, gde svaki zadatak poziva neku aktivnost. Svaka aktivnost u aplikaciji ima jedinstvenu svrhu i korisnički interfejs. Kako bi bolje razumeli ceo koncept rada android aplikacija, vodićemo se primerom za pravljenje jedne igrice i razložićemo njeno pravljenje na nekoliko koraka.
Pravljenje Andorid aplikacija - Dizajniranje
Naša aplikacija će imati pet prikaza ekrana:
- splash – ovaj prikaz ekrana korisnik prvo ugleda kada se aplikacija upali. On treba da sadrži logo igrice i verziju, takođe može puštati neku muziku po izboru.
- menu – na ovom prikazu ekrana korisnik može da bira različite opcije pre samog startovanja igre.
- play – na ovom ekranu se prikazuje igrica koja je bila tema ove aplikacije.
- scores – na ovom prikazu ekrana korisnik se može informisati o najbolje postignutom rezultatu.
- help – ovaj ekran prikazuje instrukcije koje mogu biti korisne korisniku pri igranju igre.
Određivanje aplikacionih aktivnosti:
Potrebno je implementirati pet različitih klasa aktivnosti, za svaki već definisani prikaz ekrana po jednu:
- SplashActivity – Ova aktivnost će biti glavna aktivnost pri pokretanju aplikacije. Ona jednostavno prikazuje jedan layout sa malo grafike, pušta po neku muzičku melodiju i nakon nekog perioda pokreće MenuActivity.
- MenuActivity – Ova aktivnost pokreće layout sa nekoliko dugmića, svaki korespodentan sa osobinama aplikacije. onClick() hendleri za svako dugme prouzrokuju pozivanje drugih aktivnosti aplikacije.
- PlayActivity – Ovde je implementirana cela logika igrice. Ova aktivnost mora da prikazuje različite svari na ekranu, procesira stvari koje korisnik zada ili unese, čuva rezultate itd.
- ScoreActivity – Ova aktivnost je jednostavna skoro kao i SplashScreen. Ona samo učitava pojedine podatke o rezultatima igrice u TextView i prikazuje ih na ekranu.
- HelpActivity – skoro je identična kao ScoreActivity, osim što umesto da prikazuje rezultat, ona prikazuje help tekst. Ovoj aktivnosti je možda potrebno dodati scroll ukoliko je tekst duži od veličine ekrana.
** Tip: Za ScoreActivity i HelpActivity moguće je koristiti isti layout jer te dve aktivnosti usuštini obavljaju isti posao, tj prikazuju tekst, samo je dovoljno promeniti pozadinsku sliku.
Implementacija funkcionalnosti andorid aplikacija:
Spomenuli smo da svaka aktivnost ima različiti korisnički interfejs definisan sa različitim layout resurs fajlom. Stvari koje vas možda muče su :
- kako da kontrolišem stanja aktivnosti?
- kako da sačuvam podešavanja?
- kako da pokrenem određenu aktivnost?
Sa našim primerom aplikacije u vidu igrice vreme je da uđemo dublje u sam koncept implementacije. Počećemo sa aplication context.
Pravljenje android aplikacija - Korišćenje aplication context
Aplication context je centralna lokacija za sve top-level funkcionalnosti aplikacije. Koristimo aplication context da pristupimo svim podešavanjima i resursima deljenim kroz različite instance aktivnosti.
Možete povratiti resurse alication context za proces koji želite pozivajući metodu getApplicationContext() na sledeći način:
Context context = getApplicationContext();
Pošto je Activity class izvedena iz Context class, možemo ovo koristiti umesto da pozivamo aplication context eksplicitno.
Pozivanje resursa android aplikacija:
Možete pozivati resurse aplikacije korišćenjem metode getResources() iz application context. Najjednostavniji način za pozivanje resursa je korišćenjem jedinstvenog resurs identifikatora koji su automatski generiše u R.java klasi. Sledeći primer poziva instancu Stringa iz resursa aplikacije koristeći njegov resurs ID:
String greeting = getResources().getString(R.string.hello);
Pristup podešavanjima android aplikacija
Možete pristupiti deljenim podešavanjima vaše aplikacije metodom getSharedPreferences(). Ovu metodu koristimo da sačuvamo jednostavne aplikacione podatke kao što su podešavanja konfiguracije. Primer:
SharedPreferences settings = getSharedPreferences("GamePrefs", MODE_PRIVATE);
SharedPreferences.Editor prefEditor = settings.edit();
prefEditor.putString("UserName", "Spunky");
prefEditor.putBoolean("HasCredits", true);
prefEditor.commit();
Pravljenje android aplikacija - Pokretanje aktivnosti
Postoje razni načini za pokretanje aktivnosti:
- imenovanje launc aktivnosti u manifest fajlu
- pokretanje aktivnosti korišćenjem application context
- pokretanjem dete aktivnosti iz roditelj aktivnosti kao rezultat
Imenovanje launch aktivnosti u manifest fajlu:
Svaka Android aplikacija mora imenovati default aktivnost u Android manifest fajlu. Ostale klase aktivnosti se mogu imenovati da se pokreću pri specifičnim okolnostima. Ovo se postiže tako što se u manifest fajlu koriste custom filteri. U našem primeru logično je da SplashActivity bude launch aktivnost po default-u.
Pokretanje aktivnosti korišćenjem application context:
Najčešći način za pokretanje aktivnosti je korišćenjem metode startActivity() iz application context-a.
startActivity(new Intent(getApplicationContext(), MenuActivity.class));
Pokretanje aktivnosti kao rezultat:
Ponekad aktivnost želi da pokrene aktivnost koja je takoreći u srodstvu sa njom uzimajući rezultat od nje koristeći metodu Activity.startActivityForResult(). Ovaj rezultat se može vratiti pomoću Intent parametra pozivanjem metode onActivityResult().
Upravljanje stanjima aktivnosti:
Aplikacija može biti prekinuta kada razni događaji sa većim prioritetom, kao što su telefonski pozivi, dobiju prednost. Može postojati samo jedna aktivnost uključena u jednom trenutku.
Korišćenje activity callback metoda:
Activity klasa poseduje brojne callback metode koje daju mogućnost aktivnosti da odgovori na suspend i resume događaje.
- onCreate()
- onResume()
- onPause()
- onDestroy()
Rad sa intentima:
Tri ključne komponente svake aplikacije – aktivnosti, servisi i broadcast risiveri se aktiviraju preko poruka – intents. Razmena poruka preko intenta omogućava kasno povezivanje tokom izvršavanja između između komponenata u okviru iste ili različitih aplikacija. Objekat Intent je pasivna struktura podataka koja drži apstraktan opis operacija koje treba da se izvrše, ili u slučaju broadcast risivera, opis nečega što se dogodilo ili se objavljuje.
Prenošenje podataka uz pomoć intenta:
Intenti se mogu koristiti za prenošenje podataka između aktivnosti. Možete koristiti intente tako što ćete uključiti dodatne podatke, takozvane extras unutar intenta.
ubacivanje podataka u intent:
Intent intent = new Intent(getApplicationContext(), HelpActivity.class);
intent.putExtra("
vrednost_1
", 23);
startActivity(intent);
izvlačenje podataka iz intenta:
Intent callingIntent = getIntent();
int helpLevel = callingIntent.getIntExtra("
vrednost_1
", 1);
Korišćenje intenta za pokretanje drugih aplikacija:
Sa određenim dozvolama koje se unose u android manifest fajl moguće je pozivati externe klase aktivnosti drugih aplikacija. Moguće je pozivati sledeće aktivnosti uz pomoć intenta:
- web browser uz pomoć URL adrese koja se daje kao parametar
- web browser uz pomoć search stringa kao parametra
- Dialer aplikaciju uz pomoć broja telefona kao parametra
- google maps aplikaciju uz pomoć lokacije kao parametra
- Camera aplikaciju
primer pokretanja web browser-a:
Uri address = Uri.parse("http://www.perlgurl.org");
Intent surf = new Intent(Intent.ACTION_VIEW, address);
startActivity(surf);
Logging application informacije:
Log.e() – Logs greške
Log.w() – Logs upozorenja
Log.i() – Logs informacione poruke
Log.d() – Logs debug poruke
Log.v() – Logs verbose poruke
Pročitajte još i:
Izrada Android aplikacija ; Programiranje Android aplikacija ; Brzina rada Android aplikacija ; Funkcionalnosti Android aplikacija