본문 바로가기
연구하기/Computer Engineering

안드로이드 개발하면서 짜증나는 점.

by 썰렁황제 2010. 5. 2.

1. 부족한 힙 메모리.
   초기 안드로이드 폰은 16메가, 요즘 나오는 폰들은 24메가정도. (모토로이는 특이하게도 28메가)
   참고로 윈모 폰은 32메가,
   아이폰은 3G 가 45메가. 3GS 는 더 크다는 것만 확인.

   해상도 480x800 짜리 폰에 힙메모리 24메가면 뭐 어쩌라는 거요.


2. 부족한 어플 저장 공간
  윈모폰과 비슷한 구조로 인해 어플공간이 비좁음. 모토로이나 디자이어는 각각 SKAF 와 UI 덕에 120-150메가대의 용량을 가지는데, 덩치 큰 어플 몇개 깔면 끝. 그나마 최근 나온 갤럭시 A 가 600메가 대라고 들음.
  구글에서는 외장 메모리에 데이터를 설치하도록 권고하지만, 어플을 이렇게 서비스하려면 개발자들이 앱스토어에 앱 올리는 거 이외에도 별도의 서버를 굴려서 데이터 제공 서비스를 하든가, 업데이트 서비스를 구축해야 함. 데이터 덩치가 좀 크다면 몰라도 5-10메가대의 어플까지 이렇게 하긴 좀 난감. 결국은 개발자측이든 사용자측이든 불편함이 발생하는 걸 피할 수가 없음.


3. 보안 문제
  위의 2번의 문제로 구글은 보안 문제가 해결되면 외장 메모리에 어플을 저장할 수 있게 한다고 하는데, 이미 몇몇 폰들은 어플 보안이 뚫려 외장 메모리에 실행된다고 함. 문제는, 이 말은 어플이 여기저기 복사되기 쉽다는 것. 물론 아이폰도 제일브레이크가 있지만, 외장메모리로 쉽게 굴리는 거랑 비교하면 아무래도 불편함. (안되는 서비스들이 있기도 하고)
  유료 앱 개발자들에겐... 좋을 리 없는 상황.


4. 부실한 SDK 및 개발 문서
  어느 환경이든 SDK 설치가 가능한 건 좋은데 개발 도구는 정말 불편. UI 디자이너는 없다고 하는 게 좋은 레벨이고(하다못해 고전적인 QTopia 마저 GUI 저작도구가 있는데), UI 하부구조의 변경을 수행하려고 스펙을 보려하면, 관련된 문서가 하나도 없음. 오픈소스라고 마냥 좋아할 게 아닌 게, 구글링 해봐야 다들 삽만 푸는 이야기만 있지 더 아래 내용은 안나옴. 그래서 그냥 구글거 버리고 개발자들이 알아서 만들어쓰는 경우가 꽤 있다고 들었음. 이런 상황이면 UX 는 포기하는 게 좋겠지 아마도.
  OpenGL ES 쪽은 더 심해서, 구글에서 제공하는 문서라곤 샘플코드 몇개 빼곤 아무것도 없다시피 함. C 환경이면 OpenGL ES 쪽 글을 보면 되지만, 구글은 java 스펙의 OpenGL ES 인 주제에 또 M3G 스펙은 안따르고 있어서 그쪽 문서 참고가 별로 안됨. NDK 깔고 C 로 굴려도 되긴 하는데, 사운드나 사용자 입력은 자바로밖에 안되어서 결국은 JNI 를 통해 이어줘야 함.


5. 하드웨어 별로 다른 스펙
  다른 건 잘 모르겠고, 가장 치명적인 게 화면 비율. 해상도는 해법을 나름 그럭저럭 갖춰서 어떻게든 되는데, 화면 비율은 답이 안나옴. 지금 당장만 봐도, SDK 에 포함된 에뮬레이터(2:3) 와 모토로이(16:9) 와 넥서스원(16:10) 이 화면 비율이 다 다름.
  해상도와는 달리, 화면 비율이 달라지면 UI 디자인 자체를 고정적으로 할 수가 없으며 디자인할 때 고려사항이 훨씬 많아짐. 화면 비율에 안맞을 경우 검은 띠를 채워 비율맞추는 자동화도구같은 게 없기 때문에 일일이 알아서 대응해야 하는데 이게 꽤나 번거로움. 거기에 화면 회전까지 들어가면..... 개발자는 화면 레이아웃 디자인하느라 머리 뽀개짐.

  1번에 나온 힙메모리 쪽도 치명적인 문제점 중 하나. 힙메모리 24메가에 맞추어 만들면 당연히 16메가 폰엔 안돌아감. 하드웨어 발전에 맞추어 안돌아가거나 하는 어플이 있는 것은 어찌보면 자연스러운 현상이라 할 수 있지만,  그 기준을 앱 개발자와 앱 소비자가 쉽게 알 수 있는가 아닌가 하는 것은 완전히 다른 문제임. 아이폰은 3G 냐 3GS 냐. OS 버전이 몇이냐만 파악하면 되지만, 안드로이드는 개발자나 소비자가(개발자가 안하면 소비자가 해야 하므로) 일일이 각 폰의 힙메모리 제한을 파악해야 함.

추가. 한국어 자판 지원안됨
  원래 처음 글에는 가장 윗부분에 들어갔을 내용.
  기본 SDK 에 한글자판 아직도 없음. 이거 치명적인게, 그냥 기기 수입해 들어오면 한글자판 없어서 한글을 칠 수 조차 없는 상황이 발생할 수 있다는 것임. 자판 별도 설치가 가능하다는 상당히 좋은 장점이 이 단점으로 완전히 묻혀버림.
  기본 자판 없으면 결국 수입하는 통신사가 구현을 해야 하기 때문에 결국 통신사의 입김이 적든 크든 들어갈 가능성이 높음. 사실 구글은 통신사의 기존 지위에 대한 편의를 꽤 봐주는 기업이기도 하고...

추가. 16비트 색상
   출력 색상 16비트.... 요즘 세상에 뭐하자는 겁니까.
   링크 : http://www.androidpub.com/318123#4

   언제까지 이렇게 살텐가! 

X. 그럼 도대체 구글이 바보도 아니고 왜 저럴까?

   이에 대한 이유는 다음 포스팅에 쓰겠습니다. 꽤나 답이 나옵니다.

반응형