android开发源码分析--多个activity调用多个jni库的方法
来源:互联网 发布:.net 获取当前域名 编辑:程序博客网 时间:2024/05/24 03:21
From:http://blog.csdn.net/javacode001/article/details/29358223
android开发源码分析--多个activity调用多个jni库的方法
有时候,我们在开发android项目时会遇到需要调用多个native c/jni库文件,以下是本人曾经实现过的方法,如果有知道其他方法,还望不吝指教。
例如,在android工程里有两个activity,分别是activity1和activity2,(可以进入工程目录bin/classes路径下查看有哪些),在这两个activity里都有调用jni,步骤如下:1、 在activity1和activity2里分别声明native c
例如:activity1.java里
private native String StringFromActivity1Jni();
static
{
System.loadLibrary("activity1");
}
Activity2.java里
private native String StringFromActivity2Jni();
static
{
System.loadLibrary("activity2");
}
2、 生成 .h文件
用命令:javah -classpath bin/classes/ -jni com.myprj.uitest.activity1和javah -classpath bin/classes/ -jnicom.myprj.uitest.activity2 生成activity1和activity2里的头文件
需要特别注意的是红色部分,一定要存在。可以进入工程目录bin/classes路径下查看。如果不能在jni下生成,那就mv吧。
3、 编写Android.mk文件:
LOCAL_PATH := $(call my-dir) //只能有一个这个路径
include $(CLEAR_VARS)
LOCAL_MODULE := activity1
LOCAL_C_INCLUDES += $(LOCAL_PATH) \
$(LOCAL_PATH)/android
LOCAL_SRC_FILES := activity1.c
LOCAL_LDLIBS := -L$(LOCAL_PATH) -lm -lz -llog
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := activity2
LOCAL_C_INCLUDES += $(LOCAL_PATH) \
$(LOCAL_PATH)/android
LOCAL_SRC_FILES := activity2.c
LOCAL_LDLIBS := -L$(LOCAL_PATH) -lm -lz -llog
include $(BUILD_SHARED_LIBRARY)
需要注意的是:include $(BUILD_SHARED_LIBRARY)是生成动态库,也可以生成静态库include $(PREBUILT_STATIC_LIBRARY)
4、 编译:
ndk-build
- android开发源码分析--多个activity调用多个jni库的方法
- android开发源码分析--多个activity调用多个jni库的方法
- JNI中调用加载多个cpp文件的方法
- Android退出多个activity和单个activity的方法
- Android应用开发多个activity完全退出程序方法
- Android开发_如何退出已调用多个Activity的Application
- Android 多个 Activity 调用 跳转
- [Android][清水笔记]多个Activity跳转时其状态方法的调用顺序
- Android中一个Activity多个intent-filter的调用方法
- Android中一个Activity多个intent-filter的调用方法
- Android如何使用已调用多个Activity的Application
- JNI中调用多个第三方的静态库
- Android 打开多个Activity时,同时结束多个Activity的方法
- Android开发 之 多个Activity时的完美退出方法
- Android开发之关闭多个Activity
- android退出多个activity方法整理
- Android中退出多个Activity的方法
- Android中退出多个Activity的两个经典方法
- C语言全局变量那些事儿
- 大学那些事(7)
- 第23天 逐渐进入状态
- 【C#】多线程中的lock与token模式
- 毕业快一年了,从CSDN的博客开始记录一下工作的轨迹。
- android开发源码分析--多个activity调用多个jni库的方法
- IIS - this configuration section cannot be used at this path (configuration locking?)
- 黑马程序员_学生信息本地存储练习
- 【Hibernate步步为营】--hql查询小介
- 有一定规模的软件企业在开发ASP.NET中,主流框架是什么?
- JavaScript中实现统计Textarea的字数
- 一入python深似海--dict(字典)的一种实现
- 用自己的语言解释一段简单的汇编
- 黑马程序员-Java基础加强之泛型