我使用
Android NDK工具链编译了一个二进制文件,并尝试将其部署到设备上.使用JNI使用NDK构建的应用程序将通过本地代码执行此二进制文件.我希望避免生根器材.
该二进制文件将被多个应用程序使用,因此我想将它存储在共享位置,而不是每个应用程序一次.
我找不到适当的位置来部署这个二进制文件 – 这些是我试过的地方:
> / mnt / sdcard – 使用SDK中的getExternalStoragePublicDirectory(),然而SD卡被挂载为noexec,这意味着我无法运行它.
> / system / bin – 只读文件系统,所以不能复制.如果我在模拟器上重新安装/系统,可以使用adb push来推送文件:
mount -o rw,remount -t yaffs2 /dev/block/mtd3 /system
但是我想避免这种情况,因为该设备需要根植根.
> / data / local – 使用adb push,我可以把二进制到这个位置.但是,我似乎找不到一个方法来代码(使用Android SDK).内部存储机制指向/ data / data / package.
我编译了使用NDK工具链发送的arm-linux-androideabi-g调用此可执行文件的本机代码.这适用于/ system / bin和/ data / local中的二进制文件.
总而言之,我正在寻找Android文件系统中的一个位置,我可以从该文件系统从项目/ assets文件夹复制一个文件,哪个世界可执行的权限是可能的.