Android调用jni全过程
个人记录下调用jni全过程,省的自己忘记了。哎。
有些需要准备的地方,ndk环境,ndk源码一份,cygwin要装好,配好profile。java要配好环境变量。

1.首先新建一个工程,建个类对调用native的方法进行声明。

package com.stay.jni;

public class CallNative {
    public CallNative() {
    }

static {//导入的lib名去掉前面的lib
        System.loadLibrary("skytech");
    }

public native byte[] readCmd(String path);

public native int writeCmd(byte[] cmd, String path);
}

2.build下项目,打开cmd,cd到该工程bin目录下,
D:\>cd D:\android\rayn\TestJni\bin

D:\android\rayn\TestJni\bin>javah -jni com.stay.jni.CallNative

然后在bin目录下会出现一个.h文件这是声明的头文件

3.我们要的是里面声明的方法,把我们要写的c文件改成相同的方法名就可以了。(我做了一件非常挫的事,把实现写到.h文件里了,一直拿.h文件去编译。。= =)

4.在工程里建个jni目录,将改好的c文件和mk文件(随便copy一个,改下路径和lib名就好啦)copy进去

5.将整个工程拷贝到ndk的samples目录里(D:\android-ndk-r5\samples)

6.打开cygwin、配好环境。打开cygwin.bat。进行编译。万事ok。这样就可以成功调用jni了。

Android调用jni全过程相关推荐

  1. Android调用JNI的实现方法

    目录 概述 调用JNI接口的方法 后记 概述 Android调用JNI库大致包括两种情况: 提供Java接口和so库: 这种类型的调用比较简单,要做的只是把so库放到APK或者Android系统中,之 ...

  2. android 调用JNI SO动态库

    总结一下: android调用 android 调用JNI 分为静态调用与动态调用(不论动态还是静态前提都是NDK环境已经配置好的前提下)文章底部附上DEMO 一.静态主要就是将c(.c)或者c++( ...

  3. Android调用JNI本地方法跟踪目标代码

    正如Android调用JNI本地方法经过有点改变章所说跟踪代码是可行的,但是跟踪某些代码会出现anr,点击取消,还是不好运,有提高办法吗?回答是有(gdb还没试过,本文只讨论ida). 下面是我使用  ...

  4. 关于 Delphi跨平台开发Android调用 JNI JAR java 的说明和注意事项

    2Pascal-新时代的Pascal-关于 调用 JNI JAR java 的说明和注意事项,调用第 靠写不下了 - Powered by Discuz! 关于 调用 JNI JAR 的说明和注意事项 ...

  5. 【我的Android进阶之旅】Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法

    一.错误描述 今天使用第三方的so库时候,调用JNI方法时出现了错误.报错如下所示: 11-01 16:39:20.979 4669-4669/com.netease.xtc.cloudmusic E ...

  6. Android 调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for

    主要原因就是包名不一致,自己在编译libmupdf.so 文件时Mupdf android项目中jni/mupdf.c文件里面的包名是 项目中是com.artifex.mupdf 这是最简单的解释方法 ...

  7. 手把手教你通过Eclipse工程配置调用JNI完全攻略

    本文地址:http://www.cnblogs.com/wavky/p/JNI.html 当你找到并鬼使神差地打开这个博文的时候,我敢肯定你已经知道什么是JNI,基本概念就不粘贴了. 百度出来的JNI ...

  8. Android通过JNI调用驱动程序(完全解析实例)

    要达到的目的:android系统中,用JAVA写界面程序,调用jni中间库提供的接口,去操作某个驱动节点,实现read,writer ioctl等操作!这对底层驱动开发人员是很重要的一个调试通道,也是 ...

  9. Android JNI简单实例(android 调用C/C++代码)

    转载自 xiechengfa 最终编辑 xiechengfa Android JNI简单实例关键字: android.jni Android的jni实例 android 的应用程序(Dalvik VM ...

  10. Android之jni调用java函数总结

    1.先看之前jni的如何实现动态注册 先看我之间的例子 http://blog.csdn.net/u011068702/article/details/71375920 Android之JNI动态注册 ...

最新文章

  1. Python爬虫入门并不难,就看你如何选择?
  2. Android ViewPager多页面滑动切换以及动画效果---换view
  3. 人工智能工程师学习路线及具备的5项基本技能
  4. 爱回收:十年磨一剑,出鞘亮锋芒
  5. 从0到1,了解NLP中的文本相似度 1
  6. numpy矩阵运算和常用函数
  7. pytorch FC_regression
  8. python中的range与xrange
  9. junit4同一时候測试多个測试类
  10. jquery中的trigger和triggerHandler区别
  11. 华三交换机配置access命令_H3C交换机配置命令大全讲解
  12. matlab画散点图
  13. Linux命令+shell脚本大全:文件系统的检查与修复
  14. 【每天学点管理学】目标管理工具——SMART法则
  15. R语言实战Topsis综合评价法
  16. 最成熟的网格化系统及支撑平台
  17. SECS/GEM EAP 设备自动化功能原理和设计方案
  18. 硬盘对拷/硬盘克隆/硬盘数据迁移工具
  19. Python实现决策树算法和朴素贝叶算法,并根据天气数据集预测是否出游
  20. GPS天线走线类型及注意事项

热门文章

  1. 缓存中间件技术选型Memcached、MongoDB、Redis
  2. java中多线程常见面试题
  3. 计算机网络工程毕业论文范文大全,网络工程专业毕业设计论文范文
  4. mappedBy的作用
  5. Facebook全新数字货币Libra引发关注 数字货币国际化逐渐发展
  6. 麦克纳姆轮全向移动原理(运动速度方向分析)
  7. 数据结构C语言双向循环链表,数据结构和算法(双向链表和双向循环链表)
  8. 电脑版微信防撤回插件
  9. 龙芯2k1000-pmon(5)- pmon无法修改环境变量的问题
  10. PMP课程笔记:第7章 项目成本管理