首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓会自动加载最适合该设备的.so文件吗?

安卓会自动加载最适合该设备的.so文件吗?
EN

Stack Overflow用户
提问于 2011-11-14 15:35:11
回答 1查看 576关注 0票数 0

我正在写一个需要一些JNI代码的应用程序。这段代码涉及浮点处理,所以我希望它尽可能快。因此,我希望支持ARM5和ARM7架构。在我的Application.mk中,它说:

代码语言:javascript
运行
复制
APP_ABI := all

..。构建过程编译ARM5、ARM7和x86的模块。我验证了所有.so文件最终都在.apk文件中。

现在的问题是:安卓会根据它运行的平台自动加载“最好的”.so文件吗?换句话说:它会在ARM5设备上加载ARM5模块,在ARM7设备上加载ARM7吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-07 23:00:28

是。

在ARMv5或ARMv6设备上,将在ARMv7设备上使用ARMv5二进制文件(APP_ABI = armeabi),系统将看到ARMv7二进制文件可用并将使用它(APP_ABI = armeabi-v7a)

在NDK文档中,我们可以阅读:

代码语言:javascript
运行
复制
III.2. Android Platform ABI support:
------------------------------------

The Android system knows at runtime which ABI(s) it supports. More
precisely, up to two build-specific system properties are used to
indicate:

- the 'primary' ABI for the device, corresponding to the machine
  code used in the system image itself.

- an optional 'secondary' ABI, corresponding to another ABI that
  is also supported by the system image.

For example, a typical ARMv5TE-based device would only define
the primary ABI as 'armeabi' and not define a secondary one.

On the other hand, a typical ARMv7-based device would define the
primary ABI to 'armeabi-v7a' and the secondary one to 'armeabi'
since it can run application native binaries generated for both
of them.

A typical x86-based device only defines a primary abi named 'x86'.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8118552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档