Android Studio JNI 初体验
来源:互联网 发布:酒吧烟花在淘宝怎么买 编辑:程序博客网 时间:2024/06/02 07:20
环境准备
- ndk 环境设置
我选择了lldb ndk 然后next 直接就行了 - java 要正确设置
概念
- ndk是个啥?
ndk: Native Development Kit
NDK允许开发人员使用本地代码语言(例如C和C++)实现应用的部分功能。这样以代码重用的形式能够给某类应用提供方便,而且在某些情况下能提高运行速度…巴拉巴拉一堆
call c
- 新建工程 myNDK
一路点击,最后完成。
* 创建一个弹窗
在MainActive增加代码
Button btn = (Button)findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new AlertDialog.Builder(MainActivity.this) .setTitle("标题") .setMessage("内容") .setPositiveButton("确定", null) .show(); } });
- 增加JNIdemo.java,内容如下:
public class JNIdemo{ static { System.loadLibrary("JNIdemo"); //这里的"JNIdemo"要和build.gradle里面设置的名字,必须一致,其实这里用的是后来生成的so的名字,两者一致就好 } public static native String callc();}
- 目录结构如下
- 完成后,执行Build->reBuild Project 会生成class文件,目录结构如下
到classes/debug/文件夹下,Shift+鼠标右键,选择“此处打开命令窗口”输入javah命令,生成.h文件
javah -jni com.example.demo.myndk.JNIdemo
生成.h文件
在src/main下建立文件夹jni,把这个.h文件拷贝进去,并建立.c文件(注意,这里不是cpp文件)
代码如下
#include "com_example_demo_myndk_jnidemo.h"JNIEXPORT jstring JNICALL Java_com_example_demo_myndk_JNIdemo_callc (JNIEnv *env, jclass obj){ return (*env)->NewStringUTF(env,"this is Android call C "); }
在grade.properties文件增加
android.useDeprecatedNdk=true
在app下的build.gradle的defaultConfig节点增加
ndk { moduleName "JNIdemo" //生成的so名字 abiFilters "armeabi", "armeabi-v7a", "x86" }
在MainActive里调用代码如下
...import static com.example.demo.myndk.JNIdemo.callc;... btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String s = callc(); new AlertDialog.Builder(MainActivity.this).setTitle(s).setMessage("内容") .setPositiveButton("确定", null).show(); } });
Build->Rebuild Project看看是否报错
结语
本次是第一次使用java,第一次开发android.由于工作需要,不足之处还请谅解
阅读全文
0 0
- Android Studio JNI 初体验
- Android Studio JNI体验
- Android Studio中jni初体验
- 【Android归纳】Android Studio NDK JNI 初体验
- Android Studio之NDK,JNI开发初体验
- Android JNI初体验
- Android Studio初体验
- Android Studio 初体验
- Android Studio 初体验
- Android Studio 初体验
- Android Studio 初体验
- android studio初体验
- android studio 初体验
- android Studio初体验
- Android Studio初体验
- Android Studio 1.0 初体验
- Android Studio Git初体验
- Android Studio初体验(1)
- android Studio 加快编译速度(2017-06-21版)
- 传统的操作数据库的主要步骤
- kali2.0 metasploit安装xssf模块
- SFML 与 VS2015 的安装配置
- DBN
- Android Studio JNI 初体验
- was访问ip 直接跳转至应用地址
- 深度学习caffe的代码怎么读?
- 2017-06-20 Gbase8t Create Table
- 安装版jetty-9.4.6启动服务后,不能找到部署项目中WEB-INF下的资源文件
- SpringMVC参数注入方式
- 把ELF文件加载到内存后进行重新搬移,并且执行
- 缓存本地数据
- soapui测试WS身份认证