64 bita i na Androidu?

Android-64-bit

U jednom od prošlih članaka bavili smo se problematikom 64-bitnih procesora i njihovom korisnošću.
Donijeli smo zaključak da se iza njihovog predstavljanja krije priprema terena za budućnost i mobitele koji će dolaziti s više od 4 GB RAM memorije i koji će pokretati zahtjevnije aplikacije u kojima će brža arhitektura doći do izražaja.
Apple je lansiranjem iPhonea 5s na tržište postao i prva tvrtka koja je isporučila 64 bitni procesor u smartfonu, a o planovima ostalih proizvođača se već naširoko šuška.

S obzirom na ubrzani tempo kojim proizvođači Android uređaja izdaju nove modele, najčešći način koji koriste kako bi se razlikovali od konkurencije je nadogradnja hardvera, po sistemu – brže, veće i jače. Zbog toga ekrani mobitela konstantno rastu, procesori dobivaju nove jezgre, a frekvencija istih se jednakom brzinom umnožava.
Količina radne memorije, odnosno RAM-a se također povećava, pa je većina Samsungovih novih uređaja više klase sada opremljena s 3 GB RAM memorije, a samo je pitanje je vremena kada će granica i od 4 GB biti prijeđena. Za razliku od Applea koji sam kontrolira svoj softver i hardver, za Android proizvođače je problem što ovise o tempu kojim Google izdaje svoj OS. Android operacijski sustav trenutno podržava 32 bitnu arhitekturu te zbog toga primjerice Samsung niti ne može predstaviti mobitel koji ima 4 GB RAM memorije.

No, je li podrška u potpunosti izostala?

Androidov kernel je zasnovan na kodu koji je većinom naslijeđen iz Linuxa, a koji već dulje vrijeme ima podršku za 64 bitne procesore. Zbog toga možemo reći i da Androidov kernel podržava procesore izrađene u 64 bitnoj arhitekturi.
Zanimljivost je da je i Google prilikom predstavljanja Gingerbreada, prije više od tri godine, uvjetovao proizvođačima mobitela da Android OS kompajliraju na platformama koje pokreću 64 bitne arhitekture. Kao razlog je navedeno da će se proces kompajliranja na 64 bitnim platformama izvršavati puno brže, u odnosu na okruženja koja pokreću 32 bitni procesori.

Ipak, u trenutno aktualnoj tehničkoj dokumentaciji Android OS-a stoji:
"Android je trenutno prilagođen za pokretanje na 32 bitnim sustavima. U teoriji bi se mogao pokretati i na 64 bitnim sustavima, no to trenutno nije prioritet."

Sudeći prema dostupnim informacijama, ugrađivanje podrške za 64 bitne sustave u Android i nije tako velik problem. Naime, kao što smo u članku o virtualnim mašinama i pojasnili, Android za pokretanje aplikacija koristi Dalvik VM ili novi ART koji izvode bajtkod dobiven pretvorbom izvorne aplikacije zapakirane u APK format. Samim time taj bajtkod je neovisan o veličini registara te je ograničen na veličine registara koje su postavljene u VM-u, odnosno ART-u. Te veličine su apstraktne, pa i povećanje registara na 64 bitne vrijednosti u teoriji ne bi trebao predstavljati problem.

Problemi?

Velika većina Android aplikacija je pisana u Javi, no postoji dio njih koje su izrađene u C-u, odnosno C++. Zbog alata koji omogućuju pisanje Android aplikacija u C/C++ programskom jeziku, takve će se aplikacije trebati prepisati na način kako bi podržavale 64 bitnu arhitekturu. U slučaju da developeri ne budu ažurni i ne prilagode svoje aplikacije na vrijeme, postoji realna opasnost da će određeni broj aplikacija biti nekompatibilan s novim OS-om.
Treba napomenuti da je većina aplikacija pisana u Javi, dok se developeri za C/C++ uglavnom odlučuju kod izrade igara.

Ako malo pogledamo u prošlost, vidjet ćemo da je većina proizvođača Android uređaja svojim hardverom uvijek korak ispred Googlea te nerijetko predstavljaju uređaje na OS-u koji nije u potpunosti prilagođen za novi hardver ili je još nedovoljno ispoliran. Dovoljno se prisjetiti Androida 3.0 i Motorolinog Xooma čije je predstavljanje bilo ishitreno kako bi se prvi tablet s Androidom posebno prilagođenim za tablete mogao natjecati s novim iPadom. Zbog toga je korisničko iskustvo s Androidom 3.0 bilo podosta loše sve do nadogradnje na 3.1, odnosno 3.2 koje je isti uređaj primio tek nakon nekoliko mjeseci.
Zato je Google u realnoj opasnosti da mora trčati za proizvođačima uređaja koji će gotovo sigurno uskoro predstaviti 64 bitne sustave. A nakon inicijalne verzije budućeg Android OS-a prilagođenog za 64 bitne arhitekture, proizvođači i Google će dodatno prilagođavati softver koji će se onda isporučivati kao nadogradnja nakon nekoliko mjeseci.

Kao zaključak možemo reći da trenutni ARM procesori imaju zastarjeli set instrukcija te je skok na novi instrukcijski set od 64 bita neminovan. ARMv8 je predstavio novi, moderni instrukcijski set koji će u slučaju da je operacijski sustav dovoljno dobro optimiziran, korisnicima mobitela u slučajevima zahtjevnijih aplikacija donijeti bolje performanse. Dakle, prelazak na 64 bitnu arhitekturu nije uvjetovan samom mogućnošću adresiranja veće količine memorije, već i novim setom instrukcija koji će omogućiti brži i optimiziraniji rad uređaja.

No, ostaje strah da će proizvođači Android hardvera požuriti Google, kako bi se mogli natjecati s iPhoneom 5s i u specifikacijama navesti da je i njihov uređaj – 64 bitni, a korisnici od nove arhitekture neće previše profitirati, bar ne do neke zrelije i ispoliranije verzije OS-a.