如何使用GoGoestEST测试在Android上调用java的C++代码?
我正在研究一个相当复杂的C++库,我计划使用GooGestEt对Android NDK进行正确的测试。p>到目前为止,我遵循google测试示例,并按照如下方式构建项目:
安卓。mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := foo
LOCAL_SRC_FILES := foo.cpp
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := foo_unittest
LOCAL_SRC_FILES := foo_unittest.cpp
LOCAL_SHARED_LIBRARIES := foo
LOCAL_STATIC_LIBRARIES := googletest_main
include $(BUILD_EXECUTABLE)
$(call import-module,third_party/googletest)
我使用脚本文件构建并调用测试:
adb push libs/armeabi/libfoo.so //data/local/tmp/
adb push libs/armeabi/libgnustl_shared.so //data/local/tmp/
adb push libs/armeabi/foo_unittest //data/local/tmp/
adb shell chmod 775 //data/local/tmp/foo_unittest
adb shell "LD_LIBRARY_PATH=//data/local/tmp //data/local/tmp/foo_unittest"
<>这是很好的,任何纯C++代码都没有很多引用,但是很多代码实际上依赖于java /jnI调用。我如何运行一个完整的APK文件,它不仅用C++代码,还包括java和资源?p>
# 1 楼答案
在测试程序中,您将有一个main()函数,该函数如下所示:
这允许您像调用任何其他程序一样调用测试程序:只需在shell中键入可执行文件的名称
更多有关: