2014-02-18 3 views
0

개발중인 앱에서 C 라이브러리를 사용해야합니다. 이것은 내가 모든 다른 안드로이드 장치의 모든 다른 명령 세트를 다뤄야 만한다는 것을 의미합니다. 맞습니까?Android 용 명령어 세트 목록

이러한 모든 명령어 세트 중 사용 가능한 목록이 있습니까 (아니면 누군가 내게 말할 수 있습니까?)? 지금까지 모든 안드로이드 기기는 32 비트이지만, 물론 그보다 더 많은 것들이 있습니다.

+0

"명령어 세트"란 "CPU 아키텍처"를 의미합니까? – CommonsWare

+0

거의 예, 대답 – Zero

답변

1

큰 세 가지는 ARMv5, ARMv7 및 x86입니다. ARMv7 장치는 ARMv5 명령어를 실행할 수 있습니다. ARMv7 CPU에는 부동 소수점 보조 프로세서가 있지만 ARMv5에는 없습니다. 따라서 많은 부동 소수점 작업을 수행한다면 NDK가 각 아키텍처에 대해 .so 파일을 생성하도록해야합니다. 부동 소수점 연산을 수행하지 않는 경우 ARMv5를 건너 뛸 수 있습니다.

대부분의 안드로이드 기기는 ARM에 의해 구동되지만, x86은 늦게 복귀하고 있습니다. 성능 비용으로 전용 x86 바이너리를 피하는 방법으로 a blog post discussing libhoudini이 있습니다.

MIPS에 대한 Android 지원도 있습니다. 내가 본 첫 번째 MIPS 기반 Android 기기입니다. 따라서 개발자는 NDK가 지원하더라도 (IIRC)이 항목에 대해 걱정하지 않아도됩니다.

+0

답장을 보내 주셔서 감사합니다. 이미 답변으로 받아 들여졌습니다. 여전히 질문이 있습니다. 대략적으로 ARMv5, ARMv7 및 x86이 안드로이드 장치의 몇 퍼센트를 차지합니까? – Zero

+0

@ Zero : Google은 이에 대한 통계를 게시하지 않고 다른 설문 조사를 본 적이 없습니다. x86은 아마 ~ 1 %입니다. ARMv7은 지금까지 ARMv5를 따라 잡았을 것이고, 아마도 하이 엔드 시장에있을 것입니다. ARMv5는 안드로이드 기기가 원래 사용했던 것이었고, 신흥 시장을 겨냥한 저사양의 안드로이드 기기는 아마 낮은 부품 비용으로 ARMv5 CPU와 함께 출하되고 있다는 인상하에 있습니다. AFAIK, 안드로이드 용 멀티 코어 ARM CPU는 모두 ARMv7입니다. – CommonsWare

+0

고마워요! 이것은 매우 도움이됩니다! :) – Zero