A quantidade ideal de RAM que os telefones precisam para realizar multitarefas sem problemas é um tópico bastante debatido. A Apple sobrevive com um tamanho menor em seus iPhones, que muitas vezes é mais utilizável do que as soluções Android. Você também não encontrará nenhum tipo de gerenciamento de memória RAM no iPhone, enquanto o Android possui uma função própria dedicada para isso.
Se você for, por exemplo, em telefones Samsung Galaxy para Configurações -> Cuidados com o dispositivo, você encontrará aqui um indicador de RAM com informações sobre quanto espaço está livre e quanto está ocupado. Após clicar no menu, você pode ver quanta memória cada aplicativo está ocupando, e também tem a opção de limpar a memória aqui. A função RAM Plus também está localizada aqui. Seu significado é que ele retirará uma certa quantidade de GB do armazenamento interno, que usará para memória virtual. Você pode imaginar algo assim no iOS?
Os smartphones dependem de RAM. Serve para armazenar o sistema operacional, para iniciar aplicativos e também para armazenar alguns de seus dados no cache e na memória buffer. Assim, a RAM deve ser organizada e gerenciada de forma que os aplicativos possam funcionar sem problemas, mesmo que você os coloque em segundo plano e os abra novamente depois de um tempo.
Rápido vs. Java
Mas ao iniciar um novo aplicativo, você precisa ter espaço livre na memória para carregá-lo e executá-lo. Caso contrário, o local deverá ser desocupado. O sistema, portanto, encerrará à força alguns processos em execução, como aplicativos que já foram iniciados. No entanto, ambos os sistemas, ou seja, Android e iOS, funcionam de forma diferente com RAM.
O sistema operacional iOS é escrito em Swift e os iPhones não precisam reciclar a memória usada de aplicativos fechados de volta ao sistema. Isso se deve à forma como o iOS é construído, pois a Apple tem controle total sobre ele, já que só roda em seus iPhones. Por outro lado, o Android é escrito em Java e é usado em muitos dispositivos, por isso deve ser mais universal. Quando o aplicativo é encerrado, o espaço ocupado é devolvido ao sistema operacional.
Código nativo vs. JVM
Quando um desenvolvedor escreve um aplicativo iOS, ele o compila diretamente em um código que pode ser executado no processador do iPhone. Esse código é chamado de código nativo porque não requer interpretação ou ambiente virtual para ser executado. O Android, por outro lado, é diferente. Quando o código Java é compilado, ele é convertido em código intermediário Java Bytecode, que é independente do processador. Portanto, ele pode ser executado em diferentes processadores de diferentes fabricantes. Isso traz enormes vantagens para compatibilidade entre plataformas.
Claro, também há uma desvantagem. Cada combinação de sistema operacional e processador precisa de um ambiente conhecido como Java Virtual Machine (JVM). Mas o código nativo tem melhor desempenho do que o código executado por meio da JVM; portanto, usar a JVM simplesmente aumenta a quantidade de RAM usada pelo aplicativo. Portanto, os aplicativos iOS usam menos memória, em média 40%. É também por isso que a Apple não precisa equipar seus iPhones com tanta RAM quanto faz com os dispositivos Android.
Não sou exatamente um especialista, mas descreverei minha perspectiva da perspectiva de um usuário que usa o Android há 15 anos e agora está no iPhone 2 mini há 13 meses. No Android com 8 GB de memória (mais recentemente Samsung S21, Flip3), geralmente voltava depois de um certo tempo para o aplicativo iniciado anteriormente e ele ainda estava carregado na RAM, então não reiniciou tudo de novo e eu pude pegar suavemente onde eu deixado de fora. Por outro lado, mesmo com 8GB de memória, eu “desligava” todos os aplicativos uma vez por semana para limpar a RAM, pois o sistema começava a ficar lento com memória cheia. Não tenho problemas em desacelerar no iPhone, mas por outro lado, devo dizer que ao usar aplicativos quase idênticos, pelo contrário, acontece regularmente comigo que quando volto a um aplicativo lançado anteriormente, ele carrega completamente novamente e não consigo continuar de onde parei.
Qual opção é melhor? Difícil dizer… Matar aplicativos no Android e limpar a RAM é questão de dois cliques. Carregar novamente o aplicativo inteiro no iPhone não é tão demorado, então não importa tanto... Claro, seria ideal ter mais RAM no iPhone e multitarefa como no Android :-D
Merda, é estúpido de novo. Por um lado, o Android não é feito em Java há muito tempo, é para isso que serve o Kotlin. O coletor de lixo fica encarregado da memória, que é a mais simples do iOS, que existe mesmo com suas desvantagens. A questão toda é que o iOS mata aplicativos assim que você os tira da tela. Isso libera memória como no Linux quando você digita kill pid de um processo. É por isso que demora tanto para abrir o navegador e retornar ao trabalho anterior. Este artigo é uma tradução literal de um artigo de X anos escrito por um fanático por iOS sem nenhum conhecimento de programação. Sim, claro, o gerenciamento de memória é principalmente responsabilidade do programador, o que o aplicativo faz. Se ele tossir, há um vazamento de memória no mundo e pqk você pode ter X Gb de memória e ainda é inútil. E numa época em que muitas aplicações são apenas WebView, isso é muito simples, porque ele mesmo come o que pode. O artigo é um absurdo, lixo.
O Android não usa mais jvm, mas sim dvm. Além disso, ele compila-o em um executável nativo
Java ainda está no Android.