프로그래밍과 잡담

iOS와 안드로이드 차이.. 본문

잡담

iOS와 안드로이드 차이..

크레온 2012. 10. 22. 23:50

일단 난 아이폰이 없으므로 그냥 시스템적인 이야기나 할려 한다.

메모리 관리에 대해서 이야기를 해보자 한다.
아이폰의 iOS는 멀티테스킹을 지원 안했다.  물론 push 서비스(카톡)나 음악같은거는 되는거 같지만.

여하튼 iOS 와 안드로이드의 차이는 안드로이드는 멀티스테스킹이 되고 애플은 최근에 와서 되는거 같긴 한데 좀 이상하다고 한다.  


iOS는 한 개의 앱이 램을 모두 사용하는 모양이다.  그렇기 때문에 게임과 같은 시스템의 자원을 몽땅 사용해야하는 앱들은 iOS가 성능이 좋을 수 밖에 없다.


안드로이드는 자바 달빅 가상머신이 관리를 하기 때문에 힙사이즈가 정해져 있다.(JNI를  통해서 추가 메모리를 확보하는 방법도 있다. 근데 그 방법이 되게 귀찮다.)


그렇기 때문에 안드로이드 게임앱들은 아이폰에 비해서 성능이 낮을 수 밖에 없다.

물론 GPU가 아이폰보다 좋다면 더 좋을 수 도 있지만..



안드로이드의 경우는 멀티테스킹이 가능하다. 하지만 PC에서 보는거와 같은 멀티테스킹 방식은 아니다.

PC는 가상메모리라는 것을 사용하게 된다. 큰 하드디스크를 이용해서  가상의 램을 만드는 방식을 이용한다.

반면에 안드로이드는  리눅스에서 사용하는 swap(가상 메모리)을 사용하지 않는다.


그렇기에 안드로이드는 다른 방식을 이용한다.  안드로이드는  포그라운드 앱[각주:1]이 메모리가 부족하면 백그라운드 앱[각주:2]을 강제로 종료를 시킨다.


home 버튼을 오래 동안 누르거나  최근에 실행한 앱 열기 버튼 누르면 





 

위와 같이 나온다.

OS에 의해서 종료된 앱을 실행하면  앱은 처음부터 다시 시작하게된다. 



정리 하자면 

iOS는 멀티테스트킹이 되지 않지만 게임처럼 폰의  자원 많이 필요로 하는 경우 같은 비슷한 성능을 가진 안드로이드보다 성능이 뛰어나다. 하지만 일반적인 유틸 앱의 성능은 비슷하다.


안드로이드는 멀티테스킹이 되지만 PC와 같은 방식은 아니다.

떨어지는 멀티테스킹이긴 하지만 램 용량이 클 경우에는  램 용량 부족으로 인해서 앱이 죽는 경우가 줄어든다.

하지만 완벽한 해결법은 아니기에  용량이 크더라도 앱이 종료되는 현상이 생길 것이다. 

그래도 어느정도 멀티테스킹이 되기 때문에  최근에 실행한 앱에 빠르게 접근 할 수 있다.



아이폰이나 안드로이드폰 모두 장단점은 있다.

아이폰은 안드로이드에 비해서 작은 화면, 내장베터리, 좋지 않은 A/S, 위젯 불가 등등 여러가지 단점이 있지만 

가장 큰 장점으로  안드로이드에 비해서  일괄적으로 버전 업데이트가 된다는 것.. 물론 이건 애플 하나의 업체만 iOS를 쓰기 때문이지만..


안드로이드는 아이폰에 비해서 자유로운 커스터마이징(위젯, 각종 기능),  화면 크기,  개성있는 제품들을 장점으로 볼 수 있다.

하지만 단점으로 균일하지 않은 해상도, 안드로이드 버전 파편화(이 부분은 사용자가 그다지 신경 쓸 부분은 아니다), 제조자의 자율적인 업데이트 등등이 있다.

개인적으로는 구글이 안드로이드 버전을 업데이트하고 제조사는 그냥 일종의 테마 같은 방식으로 UI를 바꾸고 했으면 좋겠다.



끝으로 어차피 안드로이드나 애플이나 지금은 거의 비슷비슷해서 자신이 원하는 스타일의 제품을 사면된다. 


끗..







  1. 현재 화면에서 동작하는 앱 [본문으로]
  2. 화면 뒤에서 동작하는 앱 [본문으로]
반응형
Comments