• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android--JNI简单的实例解析

Android--JNI简单的实例解析

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了安徽相法彩图实例解析,围棋打入实例解析,心电图实例解析,c语言实例解析精粹,plc工程应用实例解析等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android--JNI简单的实例解析


最近项目迭代了几个版本,目前比较轻松,虽然项目闲了,但是人不能太闲,否则就废了。千里之行始于足下、量变引起质变、学而不思则罔.......好了好了好了.....编不下去了,让我们直入正题吧,还是再说一句吧,欢迎大家交流学习,共同进步,欢迎扔搬砖,就算是你扔我也不接大笑

一、新建一个Android项目,和以前自己建项目是一模一样滴

二、创建一个JNICall.java类:

\

创建一个本地方法,这个方法作为我们调用C/C++程序的接口,另外我们通过static的方式,静态的去加载.so文件。

三、添加本地支持

选中项目,右键---->Android Tools---->Add Native Support,如图:

\

这时会弹出一个Add Android Native Support对话框,此时我们输入我们的要加载的so文件的名称就ok啦:

\

此时项目会多出一个,jni文件夹,里面包含了一个my_jni.cpp和Android.mk文件,如图:

\

其中my_jni.cpp文件中只有一行代码,引入了jni库:

\

下面我们来看看Android.mk文件:

\

这个自动生成MakeFile文件中有多个属性:

 

LOCAL_PATH是C/C++代码所在目录,也就是我们的jni目录。

 

include$(CLEAR_VARS)代表清除之前的依赖类库

LOCAL_MODULE是要编译的库的名称,就是我们在Add Android Native Support对话框中输入的名称。编译器会自动在前面加上lib,在后面加上.so。

LOCAL_SRC_FILES是要编译的C/C++文件。

include$(BUILD_SHARED_LIBRARY)代表编译出来的是动态库,其中include $(BUILD_STATIC_LIBRARY),编译出的是静态库 。

四、编译JNI,下面我们需要生成.h的头文件:

找到Android项目中的bin文件夹,找到classes文件夹,eclipse为我们自动生成的字节码文件都在这个文件夹下面,首先在命令行中使用cd命令切换到该目录下,然

后使用javah命令,生成我们想要得到的.h头文件:

\

这个头文件生成的名字,我们是可以修改的,只要合法就可以,让我们来看一下生成的.h文件:

\

五、编写生成本地库的cpp文件:

\

这里我们需要引入头文件,关键的是我们来看一下方法名的格式:

Java_com_example_jnidemo_JNICall_myJni

Java:固定的写法,必须如此

com_example_jnidemo:为包含native方法的包名

JNICall:为包含native方法的类名

myJni:为native方法名

这几个方法名我们一定要对应起来,否则会出现错误:java.lang.UnsatisfiedLinkError: Native method not found

六、生成.so文件(这一步不是必须的,因为我们可以在运行的时候,eclipse可以自动会和项目一块编译生成.so文件,当然了我们也可以自己单独编译,下面介绍一下单独编译的过程)

首先通过命令cd进入到项目所在的目录,然后通过ndk-build命令生成.so文件:

\

说明so文件生成了,刷新一下项目,然后我们来看一下目录的变化:

\

七:调用native方法:

\

八、运行项目,效果如图:

\

 

目前为止,一个简单的JNI程序已经完成了

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android--JNI简单的实例解析

相关文章

  • 2017-05-26Android MeasuerSpce的由来及使用
  • 2017-05-26手动获取判断处理权限,获取判断权限
  • 2017-05-26Android系统的五种数据存储形式(二),android数据存储
  • 2017-05-26客户端和服务端如何使用Token和Session,tokensession
  • 2017-05-26再谈Android AsyncTask的优缺点,androidasynctask
  • 2017-05-26Android实现一个自定义相机的界面
  • 2017-05-26Android Studio安装,androidstudio安装
  • 2017-07-23hellocharts-android-Android图表开源库的使用(一)
  • 2017-05-26Android ShareSDK快速实现分享功能,androidsharesdk
  • 2017-05-26EditText 关于控件的一些技巧

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 张高兴的 Xamarin.Android 学习笔记:(四)常用控件,android常用控件
    • android动画详解四 创建动画浅析
    • AES 加密算法,对用户的敏感信息加密处理,aes加密算法
    • android studio 使用checkstyle全攻略
    • Android Doze模式源码分析,androiddoze
    • Android便携式热点的开启状态检测和SSID的获取,android热点ssid
    • Android之上下文context,androidcontext
    • 硅谷社交8--联系人列表页面,硅谷社交8--联系人
    • include的用法例子,以及include+merge的用法例子,includemerge
    • Activity之概览屏幕(Overview Screen),activityoverview

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有