文档章节

二、JNI开发环境搭建与调试

unic0rn
 unic0rn
发布于 2016/07/14 16:23
字数 509
阅读 93
收藏 0
jni
  1. 开发/编译环境的选择
  2. JNI代码调试

 

1.开发/编译环境的选择

        JNI技术在Java开发和Android开发中都有涉及,但是Android中的Java是google根据Android自身特性进行改造的,JNI编译环境与标准Java有所不同,Android中使用NDK进行JNI编译,而本文只介绍标准Java的JNI编译环境搭建与调试。

 

        JNI实际上是一段遵循Java本地调用接口的C或C++程序,所以JNI的编译也是用C/C++编译器。最终Java调用C/C++实际上是Java调用动态库实现的,windows下是dll,linux是so。

 

如果在Linux下,我们可以使用gcc完成JNI的编译。

如果在windows下,我们可以有以下几种选择:

  1. eclipse开发Java + VS 开发JNI(VS是windows下开发C/C++最好用的IDE)
  2. eclipse安装CDT同时开发Java和C/C++(安装CDT的eclipse开发C/C++比较鸡肋)

    

2.JNI代码调试

        在此只介绍在eclipse开发Java+VS开发JNI的环境下调试JNI代码

本文假设你已经有一个使用了JNI的Java工程,并且导入了eclipse且JNI代码也已经导入VS

 

1)在Java工程中将即将调用JNI的代码进行断点,以调试模式启动Java工程

2)在cmd中使用jps命令查看该Java工程进程的ID

3)在VS中对需要调试的JNI代码进行断点

4)在VS中打开菜单 调试->附加到进程 会打开附加窗口,根据进程ID找到Java进程,并点击附加

 

 

5)附加进程后,在eclipse中按F8继续运行,当程序执行到对应的JNI代码VS将会断点,你就可以在VS中继续调试JNI代码

加我QQ:981656164,共同学习交流,记得备注 —— OSC!  ~~ <( ̄3 ̄)> 

© 著作权归作者所有

共有 人打赏支持
上一篇: 三、JNI基本使用
下一篇: 一、JNI介绍
unic0rn
粉丝 8
博文 76
码字总数 36275
作品 1
泉州
项目经理
私信 提问
android NDK 在Ubuntu10.04开发环境的搭建

最近可能要用到调用jni,我对NDK和Jni了解非常的少,今天根据网络上的一些博客搭建了一下NDK的开发环境,但是继续往下编译jni这些就不会了,如果有哪位看到了,希望能帮帮忙 下面我将今天搭建...

雨焰
2013/03/19
0
0
欢迎进入阿钟的博客导航——快速查找所有博客

世上最遥远的距离,是我在if里你在else里,似乎一直相伴又永远分离;世界上最痴心的等待,是我当case你是switch,或许永远都选不上自己;世界上最真情的相依,是你在try我在catch。无论你发神...

a_zhon
2016/08/25
0
0
Android Studio之NDK环境搭建,so文件打包以及使用

本篇入门教程开发环境为mac + Android Studio + gradle 2.14.1,主要包含以下3块内容: NDK环境搭建 编写第一个JNI项目 打包出动态so文件,在其他项目中使用 一、NDK环境搭建 从Android Stu...

ljianbing
06/26
0
0
Eclipse替代ndk-gdb断点调试Android NDK程序

一 概述: Eclipse调试NDK程序的操作并不难,难的是环境的搭建。光是安装Eclipse就有不少问题,真是“大错不犯,小过不断”不胜期烦。在网上,已经有先行者记录下了Eclipse断点调试Android N...

胖老狼
2015/10/11
1K
0
搭建android环境报:Failed to load the JNI shared library

大家开发android App的时候,开发环境是怎么样的?是直接使用官网提供的已经集成好的ADT么?下载下来,解压即用。还是自己亲力亲为的去搭建? 我一直都是使用官网提供是傻瓜ADT来进行android...

RickeyZhu
2015/08/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《大漠烟尘》读书笔记及读后感文章3700字

《大漠烟尘》读书笔记及读后感文章3700字: 在这个浮躁的社会里,你有多久没有好好读完一本书了? 我们总觉得自己和别人不一样,所以当看到别人身上的问题时,很少有“反求诸己”,反思自己。...

原创小博客
27分钟前
1
0
大数据教程(9.5)用MR实现sql中的jion逻辑

上一篇博客讲解了使用jar -jar的方式来运行提交MR程序,以及通过修改YarnRunner的源码来实现MR的windows开发环境提交到集群的方式。本篇博主将分享sql中常见的join操作。 一、需求 订单数据表...

em_aaron
36分钟前
1
0
十万个为什么之什么是resultful规范

起源 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点...

尾生
41分钟前
1
0
Terraform配置文件(Terraform configuration)

Terraform配置文件 翻译自Terraform Configuration Terraform用文本文件来描述设备、设置变量。这些文件被称为Terraform配置文件,以.tf结尾。这一部分将讲述Terraform配置文件的加载与格式。...

buddie
今天
2
0
exportfs命令, vsftp搭建ftp服务

exportfs命令 当修改/etc/exports文件后,更改的内容是不会立即生效的。如果重启nfs服务,会导致客户端重启期间的请求是挂起等待的,可以把客户端的挂载umount进行卸载后,再重启nfs服务,但...

野雪球
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部