2014-04-13 20 views
35

Tôi thấy thư viện này (armeabi) nhiều lần khi tôi khám phá các nguồn mở, và tôi "googled" cho Định nghĩa nó, và tất cả các kết quả tôi tìm thấy nói về nó và không xác định nó, tôi muốn biết armeabi này là gì và tại sao họ sử dụng nó trong ứng dụng android.armeabi là gì và tại sao họ sử dụng nó

Trả lời

65

Thiết bị Android có CPU. Nhiều CPU trong số đó dựa trên kiến ​​trúc ARM, trong khi một số dựa trên x86, và một số khác dựa trên các thứ khác như MIPS.

Một số ứng dụng Android sử dụng Bộ phát triển gốc (NDK) để tạo mã C/C++ để liên kết với ứng dụng của chúng. Mã C/C++ cần được biên dịch cho một kiến ​​trúc CPU cụ thể. NDK đặt phiên bản của mã C/C++ được biên dịch cho mỗi kiến ​​trúc vào một thư mục kiến ​​trúc cụ thể. Một trong những thư mục đó là armeabi/, dành cho CPU ARM chung. Ngoài ra còn có armeabi-v7/ (đối với một ARM CPU v7 tương thích), x86/ (cho x86 CPU) vv

9

ABI - Application Binary Interface

EABI - Embedded Application Binary Interface

Vì vậy, ARMEABI là các tệp nhị phân được biên dịch phù hợp với kiến ​​trúc CPU của thiết bị Android của bạn.

ví dụ:

arm64-v8a (Nexus 5x) - 64bit - ARM Cortex-A35, ARM Cortex-A53, ARM Cortex-A57, ARM Cortex-A72, ARM Cortex-A73

armeabi-v7a - 32bit - ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A8, ARM Cortex-A9, ARM Cortex-A12, ARM Cortex-A15, ARM Cortex-A17

enter image description here

Để đưa *. do đó nhị phân jniLibs sử dụng Android Studio 2.3 đặt chúng trong thư mục src/main/jniLibs và thêm cấu hình sau vào tệp * .gradle của bạn:

android { 
    sourceSets { 
     main { 
      jniLibs.srcDirs = ['src/main/jniLibs'] 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'jniLibs', include: ['*.so']) 
} 
Các vấn đề liên quan