Idealna količina RAM-a koja je telefonima potrebna za glatko obavljanje više zadataka prilično je tema o kojoj se raspravlja. Apple se snalazi s manjom veličinom svojih iPhonea, koji su često upotrebljiviji od Android rješenja. Na iPhoneu također nećete pronaći nikakvu vrstu upravljanja RAM memorijom, dok Android za to ima vlastitu namjensku funkciju.
Ako idete, na primjer, u Samsung Galaxy telefonima do podešavanje -> Njega uređaja, ovdje ćete pronaći indikator RAM-a s informacijama o tome koliko je prostora slobodno i koliko je zauzeto. Nakon što kliknete na izbornik, možete vidjeti koliko memorije koja aplikacija zauzima, a također imate mogućnost brisanja memorije ovdje. Ovdje se nalazi i funkcija RAM Plus. Njegovo značenje je da će od interne memorije odgristi određeni broj GB koje će koristiti za virtualnu memoriju. Možete li zamisliti ovako nešto na iOS-u?
Pametni telefoni oslanjaju se na RAM. Služi im za pohranjivanje operativnog sustava, pokretanje aplikacija i također za pohranjivanje nekih svojih podataka u predmemoriju i međuspremnik. Dakle, RAM mora biti organiziran i upravljan na takav način da aplikacije mogu glatko raditi, čak i ako ih bacite u pozadinu i nakon nekog vremena ponovno otvorite.
Swift vs. Java
Ali kada pokrećete novu aplikaciju, morate imati slobodnog prostora u memoriji da je učitate i pokrenete. Ako to nije slučaj, mjesto se mora napustiti. Sustav će stoga nasilno prekinuti neke pokrenute procese, poput aplikacija koje su već pokrenute. Međutim, oba sustava, tj. Android i iOS, rade drugačije s RAM-om.
Operativni sustav iOS napisan je u Swiftu, a iPhone uređaji zapravo ne moraju reciklirati iskorištenu memoriju iz zatvorenih aplikacija natrag u sustav. To je zbog načina na koji je iOS napravljen jer Apple ima potpunu kontrolu nad njim budući da radi samo na svojim iPhone uređajima. Nasuprot tome, Android je napisan u Javi i koristi se na mnogim uređajima, stoga mora biti univerzalniji. Kada se aplikacija prekine, prostor koji je zauzela vraća se operativnom sustavu.
Izvorni kod vs. JVM
Kada programer napiše aplikaciju za iOS, kompajlira je izravno u kod koji se može pokrenuti na procesoru iPhonea. Taj se kôd naziva izvornim kodom jer ne zahtijeva tumačenje niti virtualno okruženje za izvođenje. Android je, s druge strane, drugačiji. Kada se Java kod kompajlira, pretvara se u međukod Java Bytecode, koji je neovisan o procesoru. Stoga može raditi na različitim procesorima različitih proizvođača. To ima velike prednosti za kompatibilnost s više platformi.
Naravno, postoji i loša strana. Svaki operativni sustav i kombinacija procesora trebaju okruženje poznato kao Java Virtual Machine (JVM). Ali izvorni kod ima bolju izvedbu od koda koji se izvodi putem JVM-a, tako da korištenje JVM-a jednostavno povećava količinu RAM-a koju koristi aplikacija. Dakle, iOS aplikacije koriste manje memorije, u prosjeku 40%. To je također razlog zašto Apple ne mora opremati svoje iPhone uređaje s toliko RAM-a kao što to čini s Android uređajima.
Nisam baš stručnjak, ali opisat ću svoju perspektivu iz perspektive korisnika koji je koristio Android 15 godina i sada je 2 mjeseca u iPhoneu 13 mini. Na androidu s 8 GB memorije (u posljednje vrijeme Samsung S21, Flip3) obično sam se nakon određenog vremena vraćao na prethodno pokrenutu aplikaciju koja je i dalje bila učitana u RAM-u, tako da nije počinjala ispočetka i mogao sam glatko nastaviti gdje sam prekinuto. S druge strane, i sa 8GB memorije sam jednom tjedno "oborio" sve aplikacije da očistim RAM jer je sustav počeo usporavati s punom memorijom. Nemam problema sa usporavanjem na iPhone-u, ali s druge strane, moram reći da kod korištenja gotovo identičnih aplikacija, naprotiv, redovito mi se događa da kada se vratim na prethodno pokrenutu aplikaciju, ponovno se potpuno učitava i ne mogu glatko nastaviti gdje sam stao.
Koja je opcija bolja? Teško je reći... Ubijanje aplikacija na androidu i brisanje RAM-a stvar je dva klika. Ponovno učitavanje cijele aplikacije na iPhoneu nije toliko dugotrajno, pa i nije toliko bitno... Naravno, idealno bi bilo imati više RAM-a na iPhoneu i multitasking kao na Androidu :-D
Sranje, opet je glupo. Kao prvo, Android već dugo nije rađen u Javi, za to služi Kotlin. Garbage collector je zadužen za memoriju, što je najjednostavnije u iOS-u, što postoji i uz njegove nedostatke. Cijela stvar je u tome što iOS ubija aplikacije čim ih skinete s ekrana. Ovo oslobađa memoriju baš kao na linuxu kada upišete kill pid procesa. Zato je potrebno toliko vremena da otvorite preglednik i vratite se na prethodni rad. Ovaj je članak doslovni prijevod X godina starog članka iOS fanatika bez znanja programiranja. Da, naravno, upravljanje memorijom uglavnom je odgovornost programera, ono što aplikacija radi. Ako se nakašlje na to, u svijetu postoji curenje memorije i pqk možete imati X Gb memorije, a ona je i dalje beskorisna. A u vrijeme kada su mnoge aplikacije samo WebView, ovo je vrlo jednostavno, jer on sam jede što može. Članak je glupost, smeće.
Android više ne koristi jvm, već dvm. Osim toga, zatim ga kompajlira u izvornu izvršnu datoteku
Java je još uvijek u Androidu.