android64位机子兼容32位 so库文件,怎样在64位安卓系统中使用32位SO库

编程知识 更新时间:2023-04-17 19:46:25

满意答案

t585858

2017.01.25

采纳率:46%    等级:6

已帮助:307人

关键点:

JAVA编译不分32bit和64bit(APK,JAR)

可执行文件,默认编译64位

动态库和静态库,默认同时编译32bit和64bit版本

通过LOCAL_MULTILIB可以指定特定模块编译32bit或64bit或都编译

JAVA加载JNI库(so文件)的规则:

如果APP需要加载的所有so都是32bit,则使用32bit方式加载so库;如果APP需要加载的so库中只要有一个so是64bit的,则必须以64bit方式加载so库;不能同时加载32bit和64bit的so库。

实际工程中,我们通常会遇到下面这样的场景:

A. APK有源码,SO库有源码 - 应用及so库我们都能自己编译出来

B. APK有源码,SO库没有源码 - 我们开发的应用使用了第三方的so库,如ScanService

C. APK和SO库都没有源码 - 预置第三方的应用(应用中包括so库)

对于场景A:

只要我们编译默认对应的APP和SO库(32bit+64bit)即可。

此种场景最为普通,本文不做详细讲解。

对于场景B:

如果APK需要加载的库里面有64bit的,则需要全部的库都使用64bit。

如果APK调用的第三方so库中有32bit的,则:要么让第三方提供64bit版本的so库,要么强制使所以的so库都使用32bit版本。

对于场景C:

使用特定的预置规则即可。

00分享举报

更多推荐

android64位机子兼容32位 so库文件,怎样在64位安卓系统中使用32位SO库

本文发布于:2023-04-14 03:25:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/32fddfcf22c7e96d53a20973bcd06e6f.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:机子   文件   系统   位安卓

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 74536文章数
  • 14阅读数
  • 0评论数