当前位置: 首页 > news >正文

android 调用jni 的简单步骤

1.交叉编译   在Linux下的文件主要是.elf等格式 在window下执行的文件为.EXE  JNI就是联系两者 谷歌提供了一个工具-NDK

2.步骤:  1. 在java中定义方法 public native String sayHello();
               2. 在工程中创建jni 文件夹,并创建hello.c 文件 在其中编写C代码;
               3.  先声明 #include<stdio.h>  
                    #include<stdlib.h>
                    #include<jni.h>//jobject jobj 谁调用了这个方法 就这指的是谁  当前是MainActivity.this 
                    jstring Java_com_andson_jnihellodemo_MainActivity_sayHello( JNIEnv* env,jobject jobj ){}
               4. 创建并编写Android.mk (创建关联文件) (标明 C文件和库文件)文件在ADT文件中
               5. 在工程文件下运行 cmd ndk -build(编译)
               6. 在Java 中调用方法前 加载动态链接库 System.loadLibrary(" andson ");
注意的点:
3.只要修改C代码 都需要重新编译;
4.Java的方法中如果有下划线  在C代码中需要加  1 ;还可以使用javah 的方法生成头文件
5.支持什么运行系统 是看是否在编译的时候再Application.mk 文件中是否选择了相关系统
6. android tool 的 add native surpport 改文件成C   
 

转载于:https://www.cnblogs.com/xiaoleleblog/p/4809697.html

相关文章:

  • 做图表统计你需要掌握SQL Server 行转列和列转行
  • Centos7安装Xmind
  • svn的终端使用
  • [KMP求最小循环节][HDU1358][Period]
  • Ajax与json在前后端中的细节解惑
  • SQL Server相关书籍
  • 华为第七届无线编码大赛总结(转)
  • deepinmind(转)
  • NSAttributedString
  • aes加密iOS 实现
  • iOS视频录制,裁剪(输出指定大小)
  • KMP,深入讲解next数组的求解(转载)
  • 初步swift语言学习笔记9(OC与Swift杂)
  • Mysql事务处理
  • UVA 11769 All Souls Night 的三维凸包要求的表面面积
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • MySQL主从复制读写分离及奇怪的问题
  • passportjs 源码分析
  • python大佬养成计划----difflib模块
  • vue中实现单选
  • 关于extract.autodesk.io的一些说明
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端性能优化——回流与重绘
  • 实习面试笔记
  • 微信小程序:实现悬浮返回和分享按钮
  • 项目管理碎碎念系列之一:干系人管理
  • 小而合理的前端理论:rscss和rsjs
  • 一文看透浏览器架构
  • 运行时添加log4j2的appender
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​520就是要宠粉,你的心头书我买单
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​ubuntu下安装kvm虚拟机
  • "无招胜有招"nbsp;史上最全的互…
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #微信小程序:微信小程序常见的配置传值
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (07)Hive——窗口函数详解
  • (52)只出现一次的数字III
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (二)丶RabbitMQ的六大核心
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (三)模仿学习-Action数据的模仿
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET 常见的偏门问题
  • .netcore 获取appsettings
  • .NET性能优化(文摘)
  • .NET与 java通用的3DES加密解密方法
  • .Net语言中的StringBuilder:入门到精通
  • .stream().map与.stream().flatMap的使用
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具