Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 其中';我的应用程序中的本机可执行文件是什么?_Android_Eclipse_Android Ndk_Java Native Interface_Native Executable - Fatal编程技术网

Android 其中';我的应用程序中的本机可执行文件是什么?

Android 其中';我的应用程序中的本机可执行文件是什么?,android,eclipse,android-ndk,java-native-interface,native-executable,Android,Eclipse,Android Ndk,Java Native Interface,Native Executable,我有一个应用程序项目,其中包含一个jni本机代码(example.c)和以下makefile: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := example LOCAL_SRC_FILES := example.c LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog include $(BUILD_EXECUTABLE) 所以我把它构建成一个可执行文件,

我有一个应用程序项目,其中包含一个jni本机代码(example.c)和以下makefile:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := example
LOCAL_SRC_FILES := example.c
LOCAL_LDLIBS    := -L$(SYSROOT)/usr/lib -llog 

include $(BUILD_EXECUTABLE)
所以我把它构建成一个可执行文件,一切正常。 可执行文件是否与应用程序“打包”在一起? 如果是,我如何获得它在内存中的路径或位置,以便从java代码中运行它

PS:我没有将本机代码构建为共享库,因为我希望使用shell命令以root用户身份运行主函数,如下所示:

chmod 777 /path/exe
/path/exe

创建一个目录:
/jni
和另一个目录
/libs
。现在将
example.c
Android.mk
放在
/jni
目录中。现在
cd
/jni
目录,键入命令
ndk build
。如果makefile正确且源文件中没有错误,则会在
/libs
目录下创建另一个名为
/armeabi
的新目录。在这个目录中,您的可执行文件将存在

要执行此可执行文件,android设备必须是根设备,或者您可以使用SDK提供的android emulator

此外,您需要将此可执行文件放入android设备的
/data/local/
位置(因为即使您的设备是根设备,您也没有其他位置的执行权限)

可以使用以下命令执行此操作:

adb push example /data/local/
现在进入
adb shell
模式,并将cd刻录到
/data/local/

更改文件权限:
chmod示例777

现在,您可以将shell文件放在同一个位置,也可以从此目录访问SD卡和其他文件夹

希望这对你有帮助。如果一切顺利,别忘了接受答案