Android 远程调试 JNI 实现
2010-04-05 18:27:00 来源:WEB开发网goto bail;
}
result = JNI_VERSION_1_4;
bail:
return result;
}
2.2 修改Android 的Makefile(frameworks/base/core/jni/Android.mk), 通过Makefile 函数 BUILD_JAVA_LIBRARY 将TestInternalApi.cpp编译成.so.
include $(CLEAR_VARS)
ifeq ($(TARGET_ARCH), arm)
LOCAL_CFLAGS += -DPACKED="__attribute__ ((packed))"
else
LOCAL_CFLAGS += -DPACKED=""
endif
LOCAL_SRC_FILES:=
TestInternalApi.cpp
LOCAL_C_INCLUDES +=
$(JNI_H_INCLUDE)
LOCAL_SHARED_LIBRARIES :=
libandroid_runtime
libnativehelper
libcutils
libutils
libdvm
LOCAL_MODULE:= libitest_jni
include $(BUILD_SHARED_LIBRARY)
endif
3. 重新编译Android 并且 install, 生成JNI .so 和 jar 包
/system/lib/libitest_jni.so
/system/framework/com.me.test.jar
4. 为了在Eclipse 中编译和调试Android JNI, 需要安装 Android SDK 和ADT
如果使用Android 2.0.1/2.0.01 ,需要安装ADT-0.9.5.zip or up
4.1 安装 SDK 可以通过下面步骤
Set "Eclipse-->Window-->Prefrences-->Android-->SDK Location" to Android SDK path
4.2 安装 ADT 可以通过下面步骤
Set "Eclipse-->Help > Software Updates..-->Add Site dialog-->click Archive" to the downloaded ADT-0.9.5.zip
5. 需要注意的是,因为我们是要测试JNI的实现,也就是Step2 中的.so,因此我们要将JNI Interface, 也就是Step1中的TestNativeApi.java 再编译一份Host Eclipse 可用的jar包
Eclipse -> File->New->Project...->JAVA Project
添加 TestNativeApi.java 到 src/com/me/test/
将 SDK 中的 android.jar 加入工程 的 “build library path”
编译成工后生成jar包, Export->java->jar ->com.me.test.jar
6. 最后是建立Android JUnit 测试工程,通过在Host上调用Step5的jar包(JNI Interface), 最终通过ADB
更多精彩
赞助商链接