NDK学习笔记<二> 使用javah生成头文件
来源:互联网 发布:竞彩足球奖金优化 编辑:程序博客网 时间:2024/05/23 02:02
上篇文章中,我们C文件代码中的函数名是手动书写的,这次我们来尝试使用javah生成我们需要的函数名
一、我们新建一个普通的安卓项目,这里我取名为ndk_02,添加MainActivity
package com.shi.androidstudy.ndk;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Toast;public class MainActivity extends AppCompatActivity { String str; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View view){ Toast.makeText(this, useJavah(), Toast.LENGTH_SHORT).show(); } public native String useJavah(); static { // 导入动态库 System.loadLibrary("javah"); }}
二、打开当前包名的根目录,按住shift键,点击鼠标右键,打开命令行,
输入javah com.shi.androidstudy.ndk.MainActivity,
会在当前目录下面生成一个com_shi_androidstudy_ndk_MainActivity.h的文件
三、在当前项目中添加jni文件夹,在文件夹下面添加javah.c文件,并
把com_shi_androidstudy_ndk01_MainActivity.h文件中的函数名称复制粘贴进去
#include <jni.h>JNIEXPORT jstring JNICALL Java_com_shi_androidstudy_ndk_MainActivity_useJavah (JNIEnv * env, jobject obj){ char* pc = "use javah make .h文件"; jstring str = (**env).NewStringUTF(env, pc); return str; }
继续在jin文件中添加Android.mk
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := javahLOCAL_SRC_FILES := javah.cinclude $(BUILD_SHARED_LIBRARY)
继续在jin文件中添加Application.mk
APP_ABI := all
四、继续在jni文件夹中打开命令行窗口,ndk-build 生成.so文件,修改gradle文件(不修改项目无法找到库文件)
,然后成功运行项目
五、更加方便的使用javah
本文主要实现了如何对一个包含native方法的对象生成.h文件,以方便我们使用其中的函数名,上面我们是通过命令行来
生成.h文件,下面我们再介绍一种更加简单的方法,把javah添加的AndroidStudio的Tool中,我们直接右键就能生成
我们想要的.h文件
- 在设置界面,找到External Tools,如下图,然后点击右边方框的“+”。
继续设置相应的参数
Program: $JDKPath$\bin\javah.exeParameters: -classpath . -jni -d $ModuleFileDir$/src/main/jni $FileClass$Working directory: $ModuleFileDir$\src\main\Java
使用我们添加的Tool,成功生成.h文件
项目地址
1 0
- NDK学习笔记<二> 使用javah生成头文件
- android ndk使用Javah命令生成JNI头文件
- Android NDK学习(3)使用Javah命令生成JNI头文件
- NDK开发Javah生成Jni 头文件
- eclipse上android ndk 配置及使用javah生成jni 的 .h的头文件
- javah 使用(Javah生成JNI头文件)
- javah 使用(Javah生成JNI头文件)
- javah 使用(Javah生成JNI头文件)
- 使用Javah命令生成JNI头文件
- javah生成jni头文件命令使用
- 使用javah命令生成jni头文件
- 使用javah生成jni头文件
- 使用Javah命令生成头文件
- Javah生成JNI头文件
- javah生成jni头文件
- javah生成jni头文件
- Javah生成JNI头文件
- Javah生成JNI头文件
- Timer和spring的Quartz两种定时器的区别。
- 中小型企业管理软件功能特点有哪些?
- 476. Number Complement
- GreenVPN使用
- 论快速原型设计的重要性
- NDK学习笔记<二> 使用javah生成头文件
- IDEA jar
- 移动端适配
- jquery load方法把一个页面载入到主页面的一个div中替换iframe
- thrift brew安装0.9.0
- 欢迎使用CSDN-markdown编辑器
- BZOJ 1770 [Usaco2009 Nov] lights 燈
- Shape的简单使用
- Chrome模拟手机浏览器(iOS/Android)的三种方法,亲测无误!