Идеалната количина на RAM меморија што им е потребна на телефоните за нивно непречено извршување на повеќе задачи е доста дебатирана тема. Apple успева со помала големина на своите iPhone-и, што е често поупотребливо од решенијата за Android. Исто така, нема да најдете никаков вид на управување со RAM меморијата на iPhone, додека Android има своја посветена функција за ова.
Ако одите, на пример, во телефоните Samsung Galaxy на Наставени -> Грижа за уредот, овде ќе најдете индикатор за RAM меморија со информации за тоа колку простор е слободен и колку е зафатен. Откако ќе кликнете на менито, можете да видите колку меморија зафаќа секоја апликација, а тука имате и опција да ја исчистите меморијата. Овде се наоѓа и функцијата RAM Plus. Неговото значење е дека ќе одгризе одреден број GB од внатрешната меморија, која ќе ја користи за виртуелна меморија. Можете ли да замислите вакво нешто на iOS?
Паметните телефони се потпираат на RAM меморија. Им служи за складирање на оперативниот систем, за стартување на апликации и исто така за складирање на некои од нивните податоци во кешот и тампон меморијата. Така, RAM меморијата мора да биде организирана и управувана на таков начин што апликациите можат да работат непречено, дури и ако ги фрлите во позадина и повторно ги отворите по некое време.
Свифт наспроти. Јава
Но, кога стартувате нова апликација, треба да имате слободен простор во меморијата за да ја вчитате и стартувате. Ако тоа не е случај, местото мора да се ослободи. Затоа, системот насилно ќе прекине некои работи кои се извршуваат, како што се веќе започнатите апликации. Сепак, двата системи, односно Android и iOS, работат поинаку со RAM меморијата.
Оперативниот систем iOS е напишан во Swift, а iPhone-ите всушност не треба да ја рециклираат искористената меморија од затворените апликации назад во системот. Ова се должи на начинот на кој е изграден iOS, бидејќи Apple има целосна контрола врз него бидејќи работи само на своите iPhone-и. Спротивно на тоа, Android е напишан во Java и се користи на многу уреди, па затоа мора да биде поуниверзален. Кога апликацијата ќе се прекине, просторот што го зазеде се враќа во оперативниот систем.
Мајчин код наспроти. JVM
Кога развивачот пишува апликација за iOS, тие ја компајлираат директно во код што може да работи на процесорот на iPhone. Овој код се нарекува мајчин код бидејќи не бара толкување или виртуелна средина за да се изврши. Андроид, од друга страна, е различен. Кога Java кодот е компајлиран, тој се претвора во среден код на Java Bytecode, кој е независен од процесорот. Затоа може да работи на различни процесори од различни производители. Ова има огромни предности за меѓуплатформска компатибилност.
Се разбира, има и негативна страна. Секој оперативен систем и комбинација на процесор има потреба од околина позната како Java Virtual Machine (JVM). Но, мајчин код работи подобро од кодот извршен преку JVM, така што користењето на JVM едноставно ја зголемува количината на RAM меморија што ја користи апликацијата. Така, апликациите за iOS користат помалку меморија, во просек 40%. Тоа е, исто така, причината зошто Apple не мора да ги опремува своите iPhone-и со толку многу RAM меморија како што тоа го прави со уредите со Android.
Не сум баш експерт, но ќе ја опишам мојата перспектива од перспектива на корисник кој користи андроид 15 години и сега има 2 месеци во iPhone 13 mini. На андроид со 8 GB меморија (последниот Samsung S21, Flip3) обично се враќав по одредено време на претходно стартуваната апликација и сè уште беше вчитана во RAM меморијата, така што не почна одново и можев непречено да подигнам од каде прекинат. Од друга страна и со 8GB меморија ги „соборував“ сите апликации еднаш неделно за да ја исчистам рамот, бидејќи системот почна да успорува со полна меморија. Немам проблем со забавување на iPhone, но од друга страна, морам да кажам дека при користење на речиси идентични апликации, напротив, редовно ми се случува кога ќе се вратам на претходно лансирана апликација, повторно се вчитува целосно и не можам без проблеми да продолжам таму каде што застанав.
Која опција е подобра? Тешко е да се каже… Убивањето на апликациите на андроид и чистењето на RAM меморијата е прашање на два клика. Повторно вчитување на целата апликација на iPhone и не одзема толку време, па не е толку важно... Секако, идеално би било да има повеќе RAM на iPhone и мултитаскинг како на Android :-D
Срање, пак е глупо. Како прво, Андроид одамна не е направен во Јава, за тоа служи Котлин. Собирачот на ѓубре е задолжен за меморијата, која е наједноставна во iOS, која постои и со своите недостатоци. Целата работа е што iOS ги убива апликациите веднаш штом ќе ги тргнете од екранот. Ова ја ослободува меморијата исто како на Linux кога пишувате kill pid на процес. Затоа е потребно толку време да се отвори прелистувачот и да се врати на претходната работа. Оваа статија е дословно превод на статија стара X година од фанатик на iOS без никакво програмско знаење. Да, се разбира, управувањето со меморијата е главно одговорност на програмерот, што прави апликацијата. Ако искашла на тоа, има истекување на меморија во светот и pqk можеш да имаш X Gb меморија и пак е џабе. И во време кога многу апликации се само WebView, ова е многу едноставно, бидејќи самиот јаде што може. Статијата е глупост, ѓубре.
Андроид веќе не користи jvm, туку dvm. И дополнително, потоа го компајлира во мајчин извршна датотека
Јава е сè уште во Андроид.