Android 修改 Framework 的 Jni:
1. JNI 层
在 /Android/android-1.6_r2/frameworks/base/core/jni 路径下创建例子 android_mytest_hellojni.cpp 文件,
这个文件就是在 JNI 层实现接口。文件内容如下:( 可参考同一目录下的 android_debug_JNITest.cpp 文
件编写)
2. JNI 层:对编译的修改配置
2.1 修 改 /Android/android-1.6_r2/frameworks/base/core/jni 目 录 下 的 Android.mk 文 件 , 在
LOCAL_SRC_FILES:= \ 下面加上
android_mytest_hellojni.cpp \
2.2 修改/Android/android-1.6_r2/frameworks/base/core/jni 目录下的 AndroidRuntime.cpp 文件在 extern int
后面添加
extern int register_android_mytest_hellojni(JNIEnv* env);
然后在 static const RegJNIRec gRegJNI[] = {下面添加
REG_JNI(register_android_mytest_hellojni),
这样,JNI 层的修改就到此为止了。
3. Javaframework 层
在 /Android/android-1.6_r2/frameworks/base/core/java/android/ 新建文件目录 mytest ,在该目录下新建文
件 hellojni.java 声 明 接 口 。 内 容 如 下 : ( 可 以 参 考
android-1.6_r2/frameworks/base/core/java/android/debug 目录下的 JNITest.java 文件编写)
4 .下面我们要对我们做过更改的 libandroid_runtime.so 和 framework.jar 进行重新编译。
在源代码工程目录下输入 make libandroid_runtime 重新编译生成 libandroid_runtime.so
…
target thumb C++: libandroid_runtime <= frameworks/base/core/jni/android_mytest_hellojni.cpp
target thumb C++: libandroid_runtime <= frameworks/base/core/jni/AndroidRuntime.cpp
评论22
最新资源