Идеалното количество RAM, от което телефоните се нуждаят за безпроблемна многозадачност, е доста дискутирана тема. Apple се справя с по-малък размер на своите iPhone, което често е по-използваемо от решенията за Android. Също така няма да намерите никакъв вид управление на RAM паметта на iPhone, докато Android има своя собствена специална функция за това.
Ако отидете, например, в телефони Samsung Galaxy до регулиране -> Грижа за устройството, тук ще намерите индикатор за RAM с информация колко място е свободно и колко е заето. След като щракнете върху менюто, можете да видите колко памет заема всяко приложение и също така имате възможност да изчистите паметта тук. Тук се намира и функцията RAM Plus. Значението му е, че ще отхапе определен брой GB от вътрешната памет, която ще използва за виртуална памет. Можете ли да си представите нещо подобно на iOS?
Смартфоните разчитат на RAM. Той им служи за съхраняване на операционната система, за стартиране на приложения, както и за съхраняване на част от данните им в кеш паметта и буферната памет. По този начин RAM трябва да бъде организирана и управлявана по такъв начин, че приложенията да могат да работят гладко, дори ако ги оставите на заден план и ги отворите отново след известно време.
Swift vs. Java
Но когато стартирате ново приложение, трябва да имате свободно място в паметта, за да го заредите и стартирате. Ако това не е така, мястото трябва да бъде освободено. Следователно системата принудително ще прекрати някои работещи процеси, като приложения, които вече са стартирали. Въпреки това и двете системи, т.е. Android и iOS, работят по различен начин с RAM.
Операционната система iOS е написана на Swift и iPhone всъщност не трябва да рециклират използваната памет от затворени приложения обратно в системата. Това се дължи на начина, по който е изграден iOS, тъй като Apple има пълен контрол над него, тъй като работи само на своите iPhone. За разлика от това, Android е написан на Java и се използва на много устройства, така че трябва да бъде по-универсален. Когато приложението бъде прекратено, мястото, което е заело, се връща на операционната система.
Роден код срещу. JVM
Когато програмист напише приложение за iOS, той го компилира директно в код, който може да работи на процесора на iPhone. Този код се нарича собствен код, защото не изисква интерпретация или виртуална среда за изпълнение. Android, от друга страна, е различен. Когато Java кодът се компилира, той се преобразува в Java Bytecode междинен код, който е независим от процесора. Следователно може да работи на различни процесори от различни производители. Това има огромни предимства за междуплатформена съвместимост.
Разбира се, има и недостатък. Всяка комбинация от операционна система и процесор се нуждае от среда, известна като Java Virtual Machine (JVM). Но собственият код се представя по-добре от кода, изпълняван чрез JVM, така че използването на JVM просто увеличава количеството RAM, използвано от приложението. Така приложенията за iOS използват по-малко памет, средно 40%. Ето защо Apple не трябва да оборудва своите iPhone с толкова много RAM, както прави с устройства с Android.
Не съм точно експерт, но ще опиша моята гледна точка от гледна точка на потребител, който е използвал android от 15 години и сега е 2 месеца в iPhone 13 mini. На android с 8 GB памет (последно Samsung S21, Flip3) обикновено се връщах след определено време към стартираното преди това приложение и то все още беше заредено в RAM, така че не започваше отначало и можех безпроблемно да продължа откъдето трябва тръгна, напусна. От друга страна дори и с 8гб памет веднъж седмично "свалях" всички приложения за изчистване на RAM, защото системата започна да бави при пълна памет. Нямам проблем със забавянето на iPhone, но от друга страна трябва да кажа, че при използване на почти идентични приложения, напротив, редовно ми се случва, когато се върна към стартирано преди това приложение, отново се зарежда напълно и не мога да продължа плавно от там, където съм спрял.
Кой вариант е по-добър? Трудно е да се каже... Убиването на приложения на android и изчистването на RAM е въпрос на две кликвания. Зареждането на цялото приложение отново на iPhone не отнема много време, така че няма толкова голямо значение... Разбира се, би било идеално да имате повече RAM на iPhone и многозадачност като на Android :-D
Мамка му, пак е глупаво. От една страна, Android не е правен в Java от дълго време, за това е Kotlin. Garbage collector отговаря за паметта, която е най-простата в iOS, която съществува дори и с недостатъците си. Цялата работа е, че iOS убива приложения веднага щом ги свалите от екрана. Това освобождава памет точно както при Linux, когато въведете kill pid на процес. Ето защо отнема толкова време, за да отворите браузъра и да се върнете към предишната работа. Тази статия е дословен превод на X-годишна статия от iOS фанатик без познания по програмиране. Да, разбира се, управлението на паметта е основно отговорност на програмиста, какво прави приложението. Ако той се изкашля върху него, има изтичане на памет в света и pqk можете да имате X Gb памет и тя все още е безполезна. И във време, когато много приложения са само WebView, това е много просто, защото то самото яде каквото може. Статията е глупост, боклук.
Android вече не използва jvm, а dvm. И в допълнение, след това го компилира в собствен изпълним файл
Java все още е в Android.