Android za platformo x86 v virtualnem okolju

Danes skoraj ni dogodka s področja informatike ali telekomunikacij, na katerem se ne bi tako ali drugače vsaj omenilo operacijskega sistema Android (www.android.com/). Za vse, ki Androida še ne poznate in vas zato še ni zasvojil ali vsaj navdušil, naredimo hiter pregled, kaj sploh je Android. Ker je pri dejstvih težko biti izviren, kaj šele kreativen, smo si pri opisu pomagali tudi z nekaterimi informacijami v Wikipediji (http://en.wikipedia.org/wiki/Android_(operating_system). Android je operacijski sistem oziroma platforma, namenjena pametnim mobilnim telefonom, že v tem besedilu pa bomo spoznali, da lahko Android namestimo tudi v druge naprave. Android temelji na Linuxovem jedru in ga razvija podjetje Google v sodelovanju s podjetji, ki so združena v Open Handset Alliance (OHA) in je bilo predstavljeno v drugi polovici leta 2007. V tem združenju najdemo podjetja, kot so Google, HTC, Intel, LG, Motorola, Nvidia, Samsung Electronics ... V tej pisani druščini so predstavniki proizvajalcev strojne in programske opreme ter operaterjev.

Ime Android pomeni robota, ki s svojim videzom ter delovanjem spominja na človeka. Z razvojem Androida je začelo podjetje Android Inc, ki ga je leta 2005 prevzel Google. Android je širši javnosti bolj poznan kot rezultat Googlovega projeta Gphone. Koda (odprta) tega projekta je bila dana v javnost kot pod imenom Android Open Source Project (AOSP). Kot zanimivost še podatek, da OS Android vsebuje 12 milijonov vrstic programske kode vključno s 3 milijoni vrstic XML, 2,8 milijona vrstic C-ja, 2,1 milijona vrstic v Javi ter 1,75 milijona vrstic kode C++.

Android SDK že podpira tudi različico 2.3

ZAKAJ ?

Vsak zakaj ima običajno tudi svoj zato. Android ima kar nekaj pomembnih prednosti pred drugimi platformami, ki so namenjene mobilnim telefonom. Eno od njih smo že omenili – odprtokodnost. Ta gre največkrat z roko v roki z brezplačnostjo. Prosto dostopna so tudi podrobna navodila za razvijalce aplikacij in potrebna orodja (npr . SDK – Software Development Kit, http://developer.android.com/sdk/index.html) za okolja Windows, Mac OSX in Linux. Od teh dejstev imajo koristi različne skupine. Uporabniki imajo možnost dostopa do cenejše in zmogljivejše naprave, saj je tudi razvoj programske opreme za proizvajalce cenejši. Android omogoča, da lahko z dodatnimi aplikacijami zamenjamo komponente uporabniškega vmesnika ali celo zamenjamo osnovne aplikacije in si tako naredimo »unikaten« izdelek po lastni meri. Ena od mnogih prednosti Androida je tudi lažje izkoriščanje vgrajenih strojnih komponent, kot so senzor pospeška, GPS-sprejemnik, kamera ali recimo zaslon, občutljiv na dotik.

Izredno pomemben element pri (ne)uspehu določenega izdelka imata uporabniška izkušnja in z njo povezan uporabniški vmesnik. Priznati je treba, da se lahko uporabnik naprave z Androidom hitro privadi, saj njegova uporaba ne zahteva praktično nobenega učenja. Pri namestitve v ustrezno strojno opremo, je tudi ustrezno odziven. Uporabnik lahko delovno okolje (beri: namizje zaslona) oblikuje v skladu s svojimi željami in potrebami. Pomembnejše pa je dejstvo, da Android podpira večopravilnost. Aplikacije lahko zato delujejo tudi v »ozadju« in kot še vedno aktivne beležijo vse potrebne informacije in uporabljajo potrebne komponente (npr. GPS-modul) ali opozarjajo na dogodke (npr. končan prenos datoteke, nova e-pošta).

Jasno je, da je pri razvoju Androida Google napeljal vodo tudi na svoj mlin. Vzpostavljena je močna povezanost naprav z Androidom in Googlovimi storitvami. Uporabnik ima stalno ažurne in varno shranjene podatke, ne glede na tip naprave (naprava za Androidom, osebni računalnik, prenosnik), Google pa večno zadovoljnega in lojalnega uporabnika storitev. Preizkušen in v praksi uspešen model, ki je uporabljen za Applove iPhone, uporablja pogosto tudi Android. Aplikacije je mogoče preprosto, hitro in največkrat brezplačno, namestiti v napravo z Androidom brez osebnega računalnika. Na koncu pa vsekakor zelooo pomembno dejstvo – naprave z Androidom je mogoče razmeroma preprosto posodobiti, seveda pod pogojem, da je nova različica na voljo tudi za napravo, ki jo imate. Več o tem v nadaljevanju.

Android SDK – navidezna naprava z Androidom 2.1 nima nameščenega Android Marketa.

BIO TRŽNICA

Proizvajalci mobilnih telefonov se danes zelo dobro zavedajo dejstva, da je mogoče nezanemarljiv delež dodatnih prihodkov doseči s prodajo dodatne programske opreme in različnih vsebin (App Store, Ovi Store). Podoben primer je prevzet tudi pri Androidu. Programsko opremo naložimo v napravo z Androidom najlažje prek spletnega Android Marketa. Uporabnik lahko poišče želeno programsko opremo z iskalnikom v Android Marketu – izbrane programske pakete lahko preprosto namestimo, posodobimo ali odstranimo. Če je določen paket že nameščen, nas Android Market na to opozori. V Android Marketu lahko najdemo praktično vse, kar potrebujemo – od preprostih pripomočkov in iger do pisarniških paketov in orodij za sistemske administratorje … z drugimi besedami praktično vse. Nekatere zanimivejše in uporabne pakete si bomo prihodnjič tudi natančneje ogledali. Rezultat nameščanja najrazličnejše programske opreme se pogosto pokaže v dejstvu, da je po vseh modifikacijah naprava z Androidom še najmanj mobilni telefon. Treba se je zavedati tudi, da Android Market ni odprtokoden in ni del samega Androida OS (poglej repozitorij), dejstvo pa je, da ima Google pravico nad »marketom« ter da se proizvajalci naprav odločajo, kaj bodo tovarniško namestili v svoje naprave.

Pred namestitvijo določenega programskega paketa nas »tržnica« opozori tudi na potrebne osnovne pogoje. V določenih primerih je predpisana različica Android OS-a, v drugih primerih lahko potrebujemo modificirano, različico telefona s tako imenovanim korenskim (root) dostopom. Vsi uporabniki Linuxa verjetno veste ali vsaj sumite, kaj naj bi to pomenilo. Korenski dostop v svetu *nix/Linux pomeni popoln (administratorski) dostop do vseh možnosti in nastavitev, ki jih ima posamezni sistem. Proizvajalci pa namestijo Android v napravo tako, da je dostop do določenih funkcionalnosti in možnosti sistema omejen. Uporabniki imajo zato omejen dostop do sistema (serviserji pa manj sivih las zaradi eksperimentiranja uporabnikov). Slabost tega je, da določenih funkcionalnosti z »nemoderniziranim« OS-om preprosto ne moremo zagotovili.

Dalvik Debug Monitor omogoča natančno pridobivanje informacij o napravi.

POMEMBNOST RAZLIČICE SISTEMA

Podobno kot različice OS-a v osebnem računalniku (npr. Windows 2000, XP, Vista, 7) poznamo tudi različice Androida. Različica 1.1, je bila objavljena februarja leta 2009. Že po dobrih dveh mesecih je luč sveta ugledala različica 1.5 (Cupcake), ki je temeljila na Linuxovem jedru 2.6.27. Septembra istega leta je bila objavljena različica 1.6 (Donut). temelječa na jedru 2.6.29. Oktobra je sledila še različica 2.0/2.1 (Eclair) na osnovi iste različice jedra. Proti koncu maja 2010 je bila objavljena različica 2.2 (Froyo oziroma Frozen yoghurt), ki temelji na jedru 2.6.32. V mesecu decembru je bila najavljena različica 2.3 (Gingerbread – http://developer.android.com/sdk/android-2.3.html), ki temelji na Linux jedru 2.6.35. Najdemo pa lahko tudi napovedi o različicah 3.5 (Honeycomb) in 4.0 (Ice Cream), ki naj bi ugledali luč sveta v drugi polovici leta 2011. Pri zadnjih različicah je predvidena uporaba zmogljivejše strojne opreme (vsaj 1 GHz procesor, vsaj 512 MB pomnilnika, zaslon z diagonalo, večjo od 3,5 palca ...).

Iz navedenega lahko ugotovimo, da teče razvoj Androida zelo hitro. Pri posameznih različicah ne gre le za kozmetične popravke na ravni grafičnega vmesnika, ampak za vidne in opazne spremembe oz. izboljšave. Tako je na primer različica 2.0/2.1 (glede na starejše različice) prinesla napredek pri hitrosti in funkcionalnostih (npr. podpora za HTML 5, digitalni zum, Bluetooth 2.1 ...). Le malo novejša različica (npr. 2.2) pa lahko pomeni bistvene napredke. Tako prinaša Froyo opazne razlike pri hitrosti, optimiranju virov in pomnilnikov, uporabi USB-ja (tethering – dostop do omrežja in spleta prek USB-povezave v osebnem računalniku) in wi-fi vmesnika (mobilni telefon preprosto spremenimo v wi-fi dostopno točko), podporo Adobovemu Flashu 10.1... Nekatere od novih funkcionalnosti (npr. onemogočanje prenosa podatkov prek mobilnega omrežja) lahko uvedemo tudi pri starejših različicah in z dodatno programsko opremo na »tržnici«, dejstvo pa je, da mora uporabnik to storiti sam. Če ste nekoliko zahtevnejši uporabnik, se vsekakor odločite za trenutno aktualno različico (2.2), manj zahtevni pa boste (verjetno) popolnoma zadovoljni tudi s kakšno starejšo.

Zajem zaslonske slike z uporabo razhroščevalnika

PRAKSA UČI

Zakaj namenjamo toliko pozornosti nameščeni različici, če je naprave z nameščenim Androidom mogoče posodobiti? Iz sveta osebnih računalnikov smo vajeni, da lahko strojno opremo z novejšim OS-om največkrat brez težav nadgradimo – seveda pod pogojem, da strojna oprema ni pretirano podhranjena. Samodejna preslikava te logike na Android bi nas lahko zavedla v napačno smer. Pravijo, da vrag tiči v podrobnostih. Napravo z Androidom je mogoče posodobiti, a le pod pogojem, da je napravo mogoče programsko posodobiti in da proizvajalec to možnost podpira (izda novejšo različico za vašo napravo)! Pošten prodajalec/proizvajalec vas bo na to, da nadgradnja ni mogoča, opozoril. Slaba stran hitrega razvoja je, da proizvajalec naprave podpira le nadgradnjo do določene različice, kot na primer Enclair (2.1), različice Froyo (2.2) pa ne boste dočakali, tudi če sama strojna oprema to omogoča. To seveda ne pomeni, da ne kupujte naprav s starejšo različico – pomembno pa se je zavedati, kaj kupujemo, in ne kaj bi bilo mogoče z napravo »teoretično« storiti. Dejstvo je, da je lahko naprava s starejšo različico popolnoma ustrezna in cenovno izredno ugodna, naprava z najnovejšo različico pa ima cenovni pribitek zaradi dejstva, da je žemljica še vroča.

Android, nameščen v Asusu EEE.

Android bomo najlažje spoznali tako, da ga bomo uporabljali. Omenili smo že, da je Android namenjen namestitvi v mobilne telefone, namestimo pa ga lahko tudi v druge naprave (npr. tablični računalniki, osebni računalniki). Če nimamo ustrezne naprave, si lahko pomagamo z namestitvijo v virtualno okolje. Tisti, ki okolja za virtualizacijo še nimate, si lahko to preprosto vzpostavite z različico VirtualBox, ki ne potrebuje posebne namestitve. Eno od možnosti prenosa tovrstne že pripravljene različice VirtualBoxa najdemo na spletni strani www.linuxliveusb.com/downloads/?version=virtualbox. V naslednjem koraku moramo prenesti še želeno različico Androida namenjeno, x86 platformi (npr. http://android-x86.googlecode.com/files/froyo-vm-20100812.iso). Se vam je utrnila misel, da morda obstaja možnost namestitve Androida v osebni računalnik? Odgovor je pritrdilen. Različico Androida x86 lahko podobno kot kateri drug OS namestimo v osebni računalnik. Več o tej tematiki si lahko preberete na strani www.android-x86.org/.

Ročno nameščanje paketa APK z orodjem adb

Po zagonu virtualnega računalnika z Androidom izberemo možnost Live CD - Run Android without installation in počakamo, da se prikaže delovno namizje (ikona ključavnice in zvočnika). Napravo »odklenemo« tako, da pritisnemo levi miškin gumb na znaku ključavnice in jo potegnemo navzgor (da se nariše delovno namizje). Nato lahko sledimo Androidovim namigom ali pa se prepustimo raziskovanju. V vrstico na vrhu zaslona lahko vnesemo želeni iskalni kriterij (seveda bo poizvedba narejena prek Googla), kliknemo globus (odpre se nam spletni brskalnik) ali pritisnemo znak s poljem kvadratov (dostop do aplikacij). Ker imamo Android nameščen v osebni računalnik, ikona s telefonskim aparatom nima praktične uporabne vrednosti (no, morda za imenik s kontakti). Še nekaj namigov. Naprave z Androidom imajo tudi tipke za dostop do dodatnih možnosti. Tako lahko dobimo s klikom funkcijske tipke F4 oziroma F6 možnost izklopa naprave, vnovičnega zagona ali spremembe načina dela, klik levega miškinega gumba je podoben običajnemu levemu kliku pri osebnem računalniku, klik desnega miškinega gumba nas vrne na prejšnji zaslon. S hkratnim klikom levega in desnega gumba se nam odpre meni, prek katerega lahko spreminjamo delovno namizje. Možnosti vsakega trenutno aktivnega programa nam izpiše srednji miškin gumb oziroma menijska tipka (med tipko »Windows« in desno tipko »Ctrl«). Med posameznimi delovnimi namizji, se gibljemo s klikom pike v spodnjih vogalih zaslona. Kliki seveda ne morejo dati občutek dela, ki ga omogoča na dotik občutljiv zaslon, vsekakor pa lahko dosežemo učinek delovanja in možnosti samega sistema s konceptom nameščanja aplikacij, ki jih namestimo prek AppStora. Iz VirtualBoxa pridemo v hipu s pritiskom desne tipke Ctrl.

Pri izbiranju datoteke .iso ste verjetno naleteli tudi na datoteko froyo-eeepc-20101015.iso (http://android-x86.googlecode.com/files/froyo-eeepc-20101015.iso). Ta datoteka je optimirana za namestitev Androida 2.2 v Asusovega malčka EEE. Namestitev izvedemo tako, da iz prenesene datoteke z ustreznim programom (www.linuxliveusb.com/) izdelamo zagonski USB-ključek. Z njim lahko zaženemo sistem oziroma namestimo Android v netbook. Tudi v tem primeru tipke in miška nadomeščajo na dotik občutljiv zaslon, vlogo srednjega gumba pa prevzema menijska tipka.

Če ste tudi sami namestili Android v EEE, ste verjetno opazili nekaj malenkosti. Brezžična (wi-fi) povezava včasih malo »pocuka« in ima včasih težave pri dodeljevanju IP-naslovov prek strežnika DHCP (ročna dodelitev naslovov ni problematična). Manjših očitkov je lahko deležna tudi občasna lenobnost grafičnega vmesnika, kljub vsemu pa se zdi Android kot pisan na kožo malčku – no, zelo dobrodošel bi bil ustrezen zaslon, ki bi nadomestil klike vdelane »miške«.

Android Market omogoča preprosto nameščanje aplikacij

RAZVOJNO OKOLJE

Prosto dostopen SDK za Android smo že omenili. V našem primeru smo prenesli SDK za okolje Windows (http://dl.google.com/android/android-sdk_r07-windows.zip) in ga namestili v osebni računalnik. Ob prihodu nove različice 2.3 smo ga tudi posodobili. V imeniku, v katerega smo namestili SDK, zaženemo datoteko SDK Manager.exe. Glede na nameščeno različico po potrebi izvedemo posodobitve in naredimo navidezno napravo z Androidom ( Virtual Devices – New). V našem primeru jo bomo poimenovali mojMikro (name), v njej bo nameščen Android 2.2 (Target). Naši napravi bomo dodelili 512 MB (SD Card Size), okolje (skin) lahko ostane nespremenjeno (HVGA). Definirali bomo še strojno opremo naše navidezne naprave. Dodamo lahko vse komponente (New – SD card support, Dpad support …). Ko dodamo vse potrebne komponente, kliknemo gumb Create AVD.

Navidezno napravo, ki smo jo naredili, zaženemo s klikom gumba Start. Po zagonu se na zaslonu pokaže jo »zaslon« naše naprave in tipke glede na definirano vrsto naprave. Zdaj že vemo, kako se gibljemo po sistemu. Ker smo med strojno opremo definirali tudi na dotik občutljiv zaslon, bomo tovrstno aktivnost emulirali tako, da bomo pritisnili levi miškin gumb (in ga držali enako kot prst na zaslonu), z miško pa se bomo gibali v poljubni smeri. Druge tipke oz. možnosti so dostopne na desni strani emulatorja. Še namig: podobno dobimo tudi možnost povečave/pomanjšave (zuma) v brskalniku, in sicer s klikom levega gumba in potegom miške. Če ste naredili navidezno napravo po postopku, kot smo ga opisali, ste verjetno ugotovili, da nimate nameščenega Android Marketa.

Mobilni telefoni ponujajo običajno več možnosti kot cenejši modeli tablic.

V naprave z Androidom nameščamo »programske« datoteke APK (Android Package). APK so paketi, ki jih največkrat nameščamo prek Android Marketa, v primeru, kot je naš (nimamo nameščenega Android Marketa), pa jih lahko namestimo tudi ročno. Pa si oglejmo, kako to storimo. S spletne strani www.freewarelovers.com/android smo prenesli paket Advanced Task Manager Free (www.freewarelovers.com/android/app/advanced-task-manager-free). Datoteko APK Advanced_Task_Manager_Free_5.2.apk shranimo kar v podimeniku tools SDK-ja (v našem primeru C:\AndroidSDK\android-sdk-windows\tools). Nato se premaknemo v ta imenik in zaženemo datoteko ddms.bat. Ta nam naloži Dalkvin Debug Monitor (razhroščevalnik), ki nam vzpostavi povezavo z našo napravo (emulatorjem). Povezavo lahko preverimo tako, da kliknemo napravo (mojMikro) in izberemo Device – Screen capture. V tem primeru lahko vidimo trenutno zaslonsko sliko naše naprave). Po napravi se lahko tudi sprehodimo z ukazom Device – File Explorer ali Show Precess status. Okno, ki smo ga odprli, pustimo odprto, v ukazni vrstici (prompt) pa v imeniku tools vpišemo niz adb install Advanced_Task_Manager_Free_5.2.apk. Čez nekaj trenutkov lahko vidimo sporočilo o uspešni namestitvi aplikacije v ukazni vrstici (Success) in v razhroščevalniku. Da je aplikacija resnično nameščena, lahko preverimo tudi v sami napravi. Postopku ročnega nameščanja Android Marketa v okolje emulatorja tokrat ne bomo posvečali pozornosti, lahko pa najdemo na spletnih straneh ustrezne napotke za namestitev.

NAPRAVE

Pri sistemu Android pridejo uporabniki največkrat v stik z mobilnimi telefoni, čeprav to niso edine naprave z njim. Zaradi svoje zasnove in koncepta imajo mobilni telefoni kar nekaj prednosti in trenutno »vlečejo voz« z Androidom, že v letu 2011 pa se bo to po mojem mnenju nedvomno spremenilo. Cenovno so mobilni telefoni lahko razmeroma ugodni, saj so s strani mobilnih operaterjev »subvencionirani« v obliki različnih paketov. Mobilni telefoni imajo tudi to prednost, da jih imamo skoraj vedno pri sebi in imajo ustrezne dimenzije. Pametni telefoni imajo možnost različnih vmesnikov (wi-fi, bluetooth, mobilno omrežje) in vsebujejo funkcionalnost drugih naprav (GPS-sprejemnik, fotoaparat/kamera). Po potrebi lahko izrabljen akumulator tudi zamenjamo.

Tablice imajo nekoliko večje zaslone (običajno z diagonalo nekje med 7 in 10 palcev), ki lahko ponujajo tudi večjo ločljivost. Drugače kot mobilni telefoni se s svojo okolico največkrat povezujejo le z povezavo WLAN (wi-fi) ali USB-vmesnikom, povezava prek mobilnega omrežja pa je prej redkost kot pravilo – pogosto je ta mogoča preko zunanje USB-naprave. Žal se v praksi izkaže, da so tablice brez spletne povezave bistveno manj uporabne kot sicer. Določene tablice ponujajo včasih tudi možnost povezave prek priključka HDMI in funkcionalnost mobilnega telefona. Če se vam zdi, da gre pravzaprav za podobne naprave, se ne motite. Tako lahko na na primer kot komentar o Samsungovem Galaxy Tabu, najdemo tudi oceno, da gre pravzaprav le za Samsung Galaxy S (mobilni telefon) »na steroidih«.

Prav zato bomo v naslednji številki med drugim spoznali Samsungov model Galaxy Spica (i5700), ki ga je bilo mogoče pred časom dobiti razmeroma ugodno v eni od prodajnih akcij mobilnega operaterja. Ker gre za več kot leto star model, ki ima na trgu že svoje naslednike, bo toliko bolj zanimivo, kaj je mogoče storiti z njim. Prvotno je na bila na i5700 nameščena različica Androida 1.5, razvoj se je kljub zahtevam (peticija) uporabnikov po nadgradnji na Froyo kot vse kaže končal pri različici 2.1 (Eclair). Eden od razlogov, da je bil ta skok sploh mogoč, je tudi vgrajeni 800 MHz procesor. Še najbolj je Spica podhranjena pri pomnilniku, katerega kapaciteta je le 128 MB. Soliden AMOLED-zaslon z ločljivostjo 320 x 480 pik (3,2 palca diagonala) podpira prikaz 16 milijonov barvnih odtenkov). Kot zanimivost – če v i5700 nimamo vstavljene SIM-kartice, dobimo iz telefona miniaturno tablico, in to za dokaj ugodno ceno . Tovrstni aparat omogoča zato več kot dobro izkušnjo, ki nam lahko pove, kaj lahko od podobne ali zmogljivejše naprave sploh pričakujemo. Morda še celo več – ugotovite lahko celo, da lahko posežete po napravi, ki bo nekoliko skromnejša, kot ste prvotno mislili ...
(Se nadaljuje.)


Zanimivosti in nasveti
• Ljubitelji eksperimentiranja lahko Android namestite v prenosnik/netbook in poskusite živeti z njim teden ali dva. Tako boste dobili boljši občutek, kaj bi za vas pomenila uporaba tabličnega računalnika ali mobilnega telefona z Androidom. Seveda ima ta na dotik občutljiv zaslon, ki odtehta marsikatero slabost.
• Programsko opremo je mogoče v naprave z Androdiom preprosto namestiti brez osebnega računalnika prek Android Marketa. Ta uporablja preizkušen in uspešen koncept – uporabniki imajo možnost preprostega dostop do programske opreme (brezplačne ali poceni), podjetja imajo lažjo in cenejšo distribucijo izdelkov (možnost vpeljave novih poslovni modelov). Če Android Market v napravo ni nameščen, pakete APK namestimo ročno.
• Android je na spletnih straneh zelo dobro podprt. Pohvale vredno je dejstvo, da veliko informacij najdemo tudi v slovenskem jeziku (npr. http://slo-android.si/).
• Programsko različico Androida lahko razmeroma preprosto posodobimo. Od nameščene različice Androida je odvisno, ali je določena funkcionalnost privzeto podprta in mogoča. Pri nadgradnji sta edini vprašanji, ali sama naprava to dopušča ter ali ta obstaja za določen tip naprave. Včasih posodobitev programsko opreme ni mogoča brez uvedbe korenskega nadzora. Kljub predstavitvi različice 2.3 v mesecu decembru velja Froyo (različica 2.2) za trenutno svežo.
• Najpreprostejša možnost za namestitev programske opreme v naprave z Androidom je Android Market. Pogosto so povezave na aplikacije izvedene tudi prek kod QR, ki skrivajo povezave na aplikacije. Datoteke APK lahko namestimo ročno z orodjem adb, prenesemo pa jih lahko z različnih spletnih strani (npr. www.freeandroidware.com, www.freewarelovers.com/android, www.androiddownloadz.com)
• V začetku decembra je bila predstavljena različica 2.3. Obljublja napredke na področjih zmogljivosti in integracij, pa tudi drugih.

Moj mikro, januar 2011 | Marko Koblar