首页 > 编程知识 正文

指定ndk版本编译,Android应用程序结构

时间:2023-05-04 00:58:57 阅读:147921 作者:4181

在使用NDK编译过程中发现对于不同的CPU体系结构,部分支持编译调试,部分不支持调试,记录时不要忘记

Application.mk文件包含预定义的命令参数APP_ABI。 这是一个显示编译和调试的CPU体系结构。

目前,安卓系统支持7种CPU架构: ARMv5、ARMv7、2010和更高版本、x86、2011和更高版本、MIPS、2012和更高版本、ARMv8、MIPS64、x86_64和2014和更高版本

CPU体系结构

ABI

ARMv5

armeabi

第32名,从2010年开始

ARMv7

armeabi-v7a

第32名,从2010年开始

x86

x86

第32名,从2011年开始

MIPS

mips

第32名,从2012年开始

ARMv8

arm64-v8a

64位,从2014年开始

MIPS64

mips64

64位,从2014年开始

x86_64

x86_64

64位,从2014年开始

需要NDK_r10或更高版本的支持才能正确生成arm64-v8a、mips64和x86_64文件。 将APP_ABI的内容放置在Application.mk文件中。 例如,指示特定的CPU体系结构

1APP_ABI :=arm64-v8a

或者直接生成所有版本

1app_ABI:=全部

注:根据NDK的版本,APP_ABI :=all只能生成当前版本支持的ABI资料档案库文件。 如果需要生成最新版本,则需要更新相应的NDK版本。

明确说明或支持的CPU体系结构

1APP_ABI :=armeabi、armeabi-v7a、x86、mips、arm64-v8a、mips64和x86_64

推荐这个方法

注意:由于当前版本支持的问题,使用Eclipse NDK Windows集成方法开发的、对应的编译生成对应于CPU体系结构的so文件是没有问题的。 但是,调试并不总是可用的。启动NDK调试模式时,将显示一条消息,指示无法识别相应的ABI。

注意:

) 1、当前模拟器只有没有x86_64的arm64-v8a

) 2、在实机中测试armv8-a时,希望首先通过ADB外壳、cat /proc/cpuinfo确认实机是否支持armv8-a;

) 3、arm32和arm64的某些配置参数不能共存。 例如,-msoft-float仅在arm32位上受支持,而在arm64位上不受支持。

乱码三千点滴积累,欢迎访问乱码三千技术博客网站

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。