我正在使用一些C ++功能(通过NDK)构建Android应用程序。这些功能不是强制性的(我有一个较慢的回退解决方案,不使用NDK)。为了保持apk轻量级,我想为ARM构建我的ndk lib,并将其我的后备解决方案用于其他平台。
有可能吗?如果是这样,怎么样?默认情况下,如果我仅为ARM提供lib,则运行x86(例如)设备的用户将无法安装该应用程序。
答案 0 :(得分:1)
我曾对类似情况感到好奇,并通过在其他cpu架构中放置以正确的.so格式重命名的空文件并在加载库捕获异常时处理它。
try{
System.loadLibrary("some_library");
} catch (Throwable e){
//switch to fallback mode
}
调用本机方法时,您可能还需要捕获异常。
我不确定0 kB文件是否有效。但小文件> 0KB有效。至少通过删除所有代码来构建不同的.so文件应该生成非常小的.so文件,这肯定会起作用。