2023-01-21 302
我最近开始使用NDK开发一些代码,并且我想到了使用NDK开发时可能出现的可移植性问题.
由于NDK使用本机代码,因此需要根据CPU架构进行编译.这是一个问题,因为无论设备具有什么CPU,用户都需要运行应用程序.
我注意到我可以修改文件” jni/application.mk”并使用:
app_abi:= armeabi armeabi-v7a x86
但是,我不知道从这一步开始该怎么办.该应用程序将包含每个CPU架构的所有编译代码,并在运行自身时自动选择正确的代码?
另外,如果还有另一个未知的CPU体系结构怎么办?
如果我尝试在Google TV上运行该应用程序会发生什么?
我发现的另一个解决方案是多APK支持.但是,我不确定我理解.这是否意味着您每次使用不同的配置创建相同的APK? ADT没有特殊的自动化工具来帮助您?
如果您完全不设置APP_ABI或使用
APP_ABI := all
在您的应用程序中.迄今为止,最新的R8D还将为armeabi armeabi-v7a x86构建mips.当将发布另一个架构时,您有望自动建立APK来支持它.
当您在Android设备上安装应用程序时,系统将自动选择匹配的ABI版本并从APK安装正确的共享库.
这种方法的一个缺点是,如果本机库很大,则您的”单片” APK文件可能会变得巨大.您可以使用Multi-apk方法使用户下载较小. 官方网站建议:您通常应该使用多个多个仅当您的APK太大(大于50MB)时,APK才能支持不同的设备配置.如果您选择此路线,则应仔细关注版本代码公会.
不幸的是,关于Google TV上的NDK支持没有值得信赖的预言,但是对于当前的不可用似乎没有技术理由.如果并且何时到达,您的 ndk-build 将自动照顾它.
更新 在这里是维护拆分APK的简单过程.顺便说一句,新的Android电视确实支持NDK.
对于最新版本(现在的R9),您必须在” JNI/application.mk”中指定
APP_ABI := all
或
APP_ABI := armeabi armeabi-v7a x86 mips
没有./ndk_build只会构建’armeabi’
以上所述是小编给大家介绍的如何使用NDK针对多个架构?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26333.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态