如何在android中使用cordova在后台打包和执行二进制文件



试图在后台运行一个带有cordova的可执行.so文件。我有一个";lib";包含文件夹"的文件夹;arm64-v8a"ameabi-v7a";以及";x86_64";这三个文件夹包含用于匹配的架构(arm等(的可执行.so文件

如何将它们打包到cordova应用程序中?我可以简单地把";lib";目录中的";www";cordova应用程序的目录?然后构建它,然后将它复制到一个我可以在android中执行它的地方?什么是这样的地方/文件夹?我该怎么做?那么,我该如何在后台运行它,并在cordova应用程序完全关闭时停止它?

将文件放在www文件夹中不会有任何作用,您应该将文件放置在本地项目中的适当文件夹中,但这在Cordova应用程序中并不推荐,您应该创建一个复制和使用文件的插件。

插件应该有一个plugin.xml文件,可以将.so文件复制到本机项目中,类似于:

<platform name="android">
<source-file src="libs/arm64-v8a/yourlibrary.so" target-dir="src/main/jniLibs/arm64-v8a/" />
<source-file src="libs/armeabi-v7a/yourlibrary.so" target-dir="src/main/jniLibs/armeabi-v7a/" />
<source-file src="libs/x86_64/yourlibrary.so" target-dir="src/main/jniLibs/x86_64/" />
</platform>

Cordova只是一个WebView。你能用它做的事情范围相当有限。从不稳定的后台执行到您无法直接访问本机代码。

你可以做的是创建一个单独的Cordova插件,在android上执行它。在npm级别上,在模块内部,您可以确保二进制文件被复制并计划在本机级别上执行。

您甚至不需要编写Cordova桥,因为onPauseonResume可以完全本地处理。Cordova层甚至不需要知道它。

  • 插件开发指南:https://cordova.apache.org/docs/en/10.x/guide/hybrid/plugins/
  • 看看其他插件是如何处理复制本机二进制文件的:https://www.npmjs.com/package/cordova-plugin-scanbot-sdk

最新更新