2014-10-23 5 views
0

타사 API를 Android 애플리케이션에 통합하려고하며 NDK 라이브러리를 포함해야합니다. 내가 Gradle을 승/안드로이드 Studio를 사용하여 아래의 모든 네이티브 라이브러리를 걸었습니다 :NDK 라이브러리를 구현할 때 어떤 아키텍처가 필요합니까?

src/main/jniLibs/ 

내 질문이 있습니다 :

armeabi/ mips/ x86/ 

내가해야합니까 : 그들은 하위 디렉토리에서 라이브러리 '.SO'제공 한 내 응용 프로그램의 jniLibs 아래에 이러한 모든 디렉토리가 포함되어 있습니까?

구현 지침에서는 'armeabi'만 지정했지만 다른 아키텍처가 제공되는 이유는 확실하지 않습니다. mips 디렉토리는 약 3.2MB이고 x86 디렉토리는 약 6MB이므로 필자는 필자가 필요하지 않은 경우이 패키지를 내 패키지에 포함시키고 싶지 않습니다. 그들이 무엇을위한 것인지 잘 모르겠습니다.

+0

대상 장치에 따라 다릅니다. 네이티브 코드를 실행할 모든 장치의 아키텍처를 포함해야합니다. – m0skit0

+0

대상 기기는 모두 Android 휴대 전화 및 태블릿> = Api 9 – JohnRock

+0

입니다. API> = 9 인 모든 Android 태블릿 및 휴대 전화의 아키텍처를 찾아야합니다. – m0skit0

답변

3

MIPS 기반 장치는 요즘 비교적 작은 시장 점유율을 차지하고 있으며, 이는 저가형 (주로 소매 가격면에서)입니다. 귀하의 앱이이 틈새 시장에 가장 적합하거나이 기회를 추구하는 데 관심이 없을 수 있습니다 (마케팅 접근 방식 및 기술적 인 문제는 최고급 및 저가형 타겟과 크게 다릅니다).

필자가 본 모든 인텔 기반 장치에는 네이티브 앱 개발자가이 플랫폼을 잘못 사용했음을 보완하기위한 목적으로 알맞은 ARM 에뮬레이션이 내장되어 있습니다. 따라서 성능에 관심이 없다면 x86 지원을 무난하게 중단 할 수 있습니다.

고급 명령어 세트 (특히 NEON)를 사용하면 대다수 사용자 (대부분의 사용자)의 앱 성능이 향상 될 수 있으므로 armv7-a 네이티브 라이브러리 버전을 제공하는 것이 더 중요 할 수 있습니다. 현대의 태블릿과 전화는 요즘은 이들을 지원하는 칩셋 중 하나와 함께 제공됩니다.)

또한 한 달 안에 새로운 ABI가 시장에 진입 할 것입니다. 64 비트 Intel 및 ARM 장치. Android 5.0 Lollipop을 실행하는 Nexus 6

그러나 궁극적으로 당신의 주요 관심사는 아마도 수백만의 사용자가 Play 스토어에서 다운로드됩니다 APK 파일의 크기가 불필요하게 거대 할 것입니다. 이 문제를 해결하기 위해 APK를 분할하고 Play 스토어에 업로드 할 때 각 ABI마다 하나씩 다른 버전을 사용할 수있는 다른 기술이 있습니다. 그 트릭은 각 플랫폼의 사용자가 원활하게 업그레이드 할 수 있도록 버전 번호를 신중하게 관리해야한다는 것입니다. Here이 작업을 관리하는 데 도움이되는 버전 번호 체계가 실제로 제안되었습니다 (및 Ashwin S Ashok 개선됨).

관련 문제