c++的执行效率比较高,性能需求的时候可以使用c++编写,然后打包成为so文件,在Android里面调用。

以下是具体的过程。

1.创建一个Android项目,并声明所需要的native方法

2.创建jni文件夹,并在文件夹里面创建Android.mk文件和.c文件,c文件里面的函数文件名要对应于包名。

 

Android.mk文件

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)#编译生成的文件的类库叫什么名字LOCAL_MODULE    := jni-test#要编译的c文件LOCAL_SRC_FILES := date_hb_com_jninative_MainActivity.cinclude $(BUILD_SHARED_LIBRARY)

date_hb_com_jninative_MainActivity.c文件

#include #include #include /* Header for class date_hb_com_jninative_MainActivity */#ifndef _Included_date_hb_com_jninative_MainActivity#define _Included_date_hb_com_jninative_MainActivity#ifdef __cplusplusextern "C" {#endif/* * Class:     date_hb_com_jninative_MainActivity * Method:    get * Signature: ()Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_date_hb_com_jninative_MainActivity_get  (JNIEnv * env, jobject obj){     return (*env)->NewStringUTF(env,"Hello JNI!");  }/* * Class:     date_hb_com_jninative_MainActivity * Method:    set * Signature: (Ljava/lang/String;)V */JNIEXPORT void JNICALL Java_date_hb_com_jninative_MainActivity_set  (JNIEnv * env, jobject obj, jstring str){    (*env)->NewStringUTF(env,"Hello JNI!");  }#ifdef __cplusplus}#endif#endif

3.在jni的父目录下执行ndk-build.cmd指令,编译c文件

4.此时系统自动生成libs文件夹,下面有so文件

5.可以在main目录下新建一个jniLibs目录,将so文件拷入,jniLibs是系统默认的so文件目录

也可以另外指定目录,如将so文件拷入系统libs当中,则需要在build.gradle文件当中加入
   
sourceSets{    main{        jniLibs.srcDirs = ['libs']    }}
 

更多相关文章

  1. 【Android】用Android(安卓)Studio创建第一个应用的初始化设置
  2. Android:apk文件结构及打包技巧
  3. Android(安卓)java.io.IOException异常情况整理
  4. Android(安卓)SDK Manager无法安装Android(安卓)SDK的解决方法
  5. 什么是aidl?Android(安卓)AIDL详解
  6. android初次学习(android studio安装及注意事项 1.5版本)
  7. Android的WebView简单使用实例(附Demo)
  8. Android(安卓)数据存储和文件使用案例分析
  9. android 使用AsyncTask实现异步下载文件

随机推荐

  1. Android(安卓)窗帘(Curtain Menu)效果五
  2. Android(安卓)studio 进度条
  3. Android中View的绘制流程
  4. Android(安卓)XML解析
  5. Android事件分发机制详解
  6. Objective C - 与Android交互时高低位转
  7. 疯狂Android讲义
  8. 配置eclipse的android开发环境
  9. android 学习示例
  10. Android(安卓)判断SD卡是否存在及容量查