문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 Android/문제점 (문단 편집) ==== 하드웨어의 파편화 ==== 하드웨어의 파편화는 PC에서도 발생하지 않느냐는 주장이 있다. 실제로 통일되지 않은 하드웨어 때문에 다소의 출혈은 불가피한데,[* 이것은 소프트웨어와 하드웨어가 같은 개발사에서 개발되는 애플의 매킨토시의 강점이기도 하다. 매킨토시의 전통적인 장점인 기기 안정성은 여기서 나오는 것이다. 물론, 인텔로 이주한 현재 Mac의 강점은 macOS를 돌린다는 것 정도다. BIOS 안 쓰고... 어차피 PC는 자원이 모바일에 비해 엄청나게 많으므로 굳이 하드웨어 레벨까지 내려가서 코드를 작성할 필요가 없는 것도 있다.] 예를 들자면 PC 패키지 게임 시장보다 콘솔 게임 시장이 더 잘 나가는 건 별다른 이유가 아니라 하드웨어가 단일화되어 최적화하는 데 애로사항이 줄어들 뿐 아니라 플랫폼을 구매하는 데 쓰이는 자금도 줄어들기 때문이다. 예를 들면 Xbox용(펜티엄 3 기반 700MHz CPU) 게임인 헤일로 2의 PC버전은 펜티엄 4 2.0이 최소 사양이고 펜티엄 4 3.0이 권장 사양이다. 하지만 이는 우스운 주장이다. 안드로이드 옹호 진영에서 똑같은 파편화라고 말하곤 하는 PC 계열의 파편화를 자세히 보면, 철저하게 표준화된 [[IBM]] PC 형태에서 시작되었으며 지금도 계속 표준화된 형태를 따르고 있다.[* [[DDR4]]든 [[PCI-E]]든, [[USB]]든 [[SATA]]든, 정해진 표준을 따르며 그에 맞는 드라이버를 제공하는 PC 부품의 다양성은, 임베디드 기기라고 불러도 될 정도로 범용성이 떨어지는 안드로이드 기기(+부품)들의 파편화 따위가 비교할 수 있는 경지가 아니다. ] 이런 표준화 정책이 있기에 PC 진영은 파편화보다는 다양성에 가까운 모습을 보인다. 심지어 PC의 성능은 웬만한 스마트폰의 몇 배에 달하고, 이에 걸맞는 연산력뿐만 아니라 끊임없이 공급되는 대용량의 전력까지 있다. 그에 반해 스마트폰에 사용되는 하드웨어가 가지는 연산력은 여전히 현대의 소프트웨어 개발자들에게 있어서 일종의 제한선으로 작용하고 있다. 조금 심한 예로, 2GB 또는 4GB 메모리가 일상화된 PC 전문 소프트웨어 개발자가 스마트폰 개발에 뛰어들면 사용 가능한 메모리가 1/4도 아닌 1/8로 줄어드는 경우도 존재한다. 그 만큼 최적화를 더 해야 한다는 것이고, 이는 곧 개발 기간(및 비용)을 의미한다. 당연히 PC보다 안드로이드 폰의 문제가 심각한 것이, CPU를 예로 들자면 PC는 x86계열 CPU에 맞추면 극단적인 소수의 경우를 빼고는 정상 작동하지만 안드로이드 단말기에는 ARM, MIPS, x86 등 여러 가지 아키텍처가 쓰이고 있다. 안드로이드에 가장 많이 쓰이며 레퍼런스 폰들에 쓰인 [[ARM(CPU)]] 프로세서용 네이티브 코드를 넣어 만든 상당수의 애플리케이션들이 MIPS 기반 프로세서 안드로이드나 x86 기반 안드로이드에 돌리면 정상적으로 작동하지 않을 것은 당연한 소리이다. 실제로 중국에서 MIPS 기반 CPU로 만든 태블릿을 내놓은 걸 테스트하니 제대로 돌아가는 애플리케이션이 한 손에 꼽을 수준이라고 한다.--근데 요새도 MIPS가 나오긴 하나?-- 물론 아예 손을 놓은 것도 아니라서 인텔이 내놓은 클로버트레일은 x86 기반으로 안드로이드가 작동하는데, 대부분의 앱은 제대로 작동한다. 이는 안드로이드 애플리케이션 중 dalvik으로 만들어져 있는 앱들이 호환성을 타지 않기 때문이다. 물론 고성능을 필요로 하는 게임과 같은 앱들은 네이티브 코드인 NDK로 작동되고 있는데, 이런 앱들은 호환성에 영향을 받는다. 때문에 인텔은 x86 안드로이드에 ARM 코드를 x86 코드로 바꿔주는 기능인 Houdini Binary Translator을 내장했다. 이것으로 90% 이상의 NDK 앱들은 제대로 작동시킬 수 있다고 한다.[[http://pc.watch.impress.co.jp/docs/column/ubiq/20130926_616841.html|#]][* 다만 90% 호환성 제공이라는 인텔의 언급은 충분히 걸러 들어야 할 필요가 있다. 통상 제대로 된 소프트웨어업체의 경우 나름대로의 앱 검수과정을 거친 후 호환성이나 버그 개수 등이 일정 수준 이상을 충족하는 것을 확인한 후 출시하게 된다. 그런데 검수 과정은 대체로 각 소프트웨어 회사들의 영업비밀에 해당하는 내용이라서 공개되거나 공유될 만한 것들이 아니고 따라서 인텔이 특정 앱들에 대해서 바이너리 변환기가 호환된다고 확인해줄 수 있을 만한 권한을 갖고 있을 턱이 없다는 것이다. 다만 무식하게 일일이 직접 깔아서 시험해볼 수는 있다. 엄밀히 따져서 회사가 직원에게 돈을 주고 유료/무료 애플리케이션을 직원 명의로 업무용 기기에 깔게 해서 직접 돌려보는 건 법적으로 문제될 게 없으니까. 실제로 사용자 수가 매우 많은 유명 앱의 경우 이런 식으로 호환 여부 확인을 했을 수 있다.] 결론적으로 안드로이드 제조사들이 피처폰 제조에 익숙한 노장들인 탓도 있지만, 하드웨어에 변화를 꾀하는 제조사들의 움직임이 오히려 안드로이드의 발목을 잡고 있다 하겠다. 스마트폰을 제작할 때야 이런저런 기능을 넣고 화면 크기를 바꾸는 식으로 제작하면 되고, 실제로 제조사는 이에 맞춰 운영 체제를 변경해 판매하지만 정작 시장이 이런 급박한 변화를 따라가기에는 역부족인 것이다. 무엇보다도 다양한 하드웨어에 따라 소프트웨어 개발자가 일일이 이에 맞춰 손을 봐야 하니 그건 그거대로 개발 비용이 증가하는 원인이 된다. 괜히 개발자들이 농담으로 돈은 앱스토어에서 벌고 개발은 안드로이드에서 한다고 하는 게 아니다. 최근에는 안드로이드 폰의 성능이 상향평준화되어 하드웨어 파편화 논란은 많이 사그라들었다고 여겨진다. 높아진 성능 덕분에 [[ART]] 기반으로 만들면 만사 OK고 성능 문제 때문에 [[NDK]]를 쓰더라도 APU는 [[삼성 엑시노스]], [[퀄컴 스냅드래곤]], [[하이실리콘]] 기린, [[미디어텍 Helio]]로 4등분 되었고, 네 가지 모두 [[ARM(CPU)|ARM]] 기반이라 기본적인 베이스는 동일하다. 3D 게임의 경우에도 [[언리얼 엔진]]이나 [[유니티(게임 엔진)|유니티]] 등을 사용하는 게 대부분인데, 이런 하드웨어적인 차이에 따른 NDK 대응은 이미 엔진 단에서 처리되어 있다. 기기도 삼성의 [[갤럭시 S 시리즈]]가 대부분의 점유율을 차지함에 따라 [[퀄컴 스냅드래곤]], [[삼성 엑시노스]], [[하이실리콘]] 기린, [[미디어텍 Helio]] 이 네 가지만 잘 지원하면 안드로이드 최적화는 큰 문제가 없는 수준이 되었다. 다만 [[삼성 갤럭시 GOS 성능 조작 사건]]을 비롯하여 끊이지 않는 안드로이드 계열 ARM CPU들의 발열 및 최적화 문제, 그에 반하여 끝없는 성능 향상을 보여주고 있는 [[Apple Silicon]] 계열 CPU들을 볼 때, 안드로이드는 최소한 파편화 문제에 있어서만큼은 [[PC]] 계열과 [[Apple]] 양쪽을 넘어서질 못하고 있는 것도 사실이다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기