最近在调试 车辆识别demo,说实话,虽然最初接触jni的时候,是在eclipse工程中进行开发的,不过后面遇到的项目都是直接放到了android 源码中编译的,所以对于在eclipse中的ndk开发,其实记忆有点模糊了,包括 Android.mk的编写,都有点小区别吧。

这里简单记录下,权当简单回顾吧。

===========================================================================================

一、需要准备和安装 的东东

1>cygwin   cygwin还是蛮强大的,相当于是在window环境上,提供了个 unix操作的环境吧。后面在window上编译 so还得靠它;

2>android-ndk-*** ,这个的版本很多,也不清楚目前最新的版本是多少了,不过都没有太大的关系,我使用的 android-ndk-r8b,这个是提供了编译 so需要的工具,而且也提供了些 jni 的sample;

cygwin 的安装就有点坑了,如果是选择 从网络上下载安装,也不清楚是哪个网址能成功下载的,估计得翻墙才行;不过之前安装的时候,的确是选择 网络安装,也能成功安装,只是忘了选择哪个网址了,这次也试了很多了网点,不过不是网速太慢,就是中途有报错了。

所以后面选择的是本地安装了,还好之前安装过一次成功的,这次本地安装完后,直接把之前安装好的 bin目录,直接替换现在安装的bin目录,然后需要安装的一些东西就不会缺少了。

二、cygwin 的简单使用

1>简单映射下硬盘,方便后面的操作,如下图,后面直接 cd win_c,就是切换到 c盘啦

2>配置下 ndk路径,在 .bashrc 中添加 如图所示内容,相应的ndk路径根据自己自己实际情况而定,我这边是直接放在了 d盘

3>配好了环境,当然是需要 source 一下啦

4>完成了上面几步,我们就来看下有没有生效啦,ndk提供的demo就派上用场了,切换到 ndk 的samples目录,我这里测的是hello-jni,

切到hello_jni 目录下后,ndk-build 下。(我这里可能有点问题,虽然install 成功了,后面copy到libs/armeabi的时候出错了,不过这丝毫不影响我们后面实际项目的使用,只要install没报错就ok了)

三、编译 车辆识别项目 jni

前面的工作做好了,现在就可以来编编我们的项目了,切到项目工程 的jni目录下(一般jni相关的都放在了jni目录下,当然这个目录视自己实际情况而定),

然后很简单的ndk-build 下下,ok,需要的so 成功生成了,我们可以看到 这时会在工程的 libs/armerbi下生成了我们需要的so。

========= JNI 编程 最最简单步骤=====================================================================

本地时间 19:02,而且是周六,其实不想写了,不过又想想不能偷懒,所以还是接着简单写下下~

1>javah + native 类路径,生成相应的 .h文件

2>根据 .h 文件,新建对应的 .cpp文件,并实现相应的方法

3>javap -s + native类路径,查看java 方法签名。(个人觉得这个还是挺好用的,不过也只有在 我们的jni需要放到 android 源码中编译的时候,需要写 方法映射 的时候才用的上)

2017-1-11

=======================================================================================

前面说的是调通别人提供的demo,这在将demo的功能移值到实际项目中的时候,还是遇到了点问题。首先就是新建了native 类,重新 生成so的问题。

【遇到的问题】

1、javah +native 类名,提示找不到 类 Bitmap

找不到Bitmap,那就是android.jar 没找到,ok, -classpath 指定下android.jar路径


      这时报错 找不到“com.visdom.lprtest.LPR”了,

原来完整的用法应该是如下图所示,除了指定需要的jar,还需要指定当前路径,不过同样的写法在cmd中输入是可以的,在cygwin中就报错了,原因不详。

不过这样能生成 .h就可以了,不影响下一步的进行了。(这里得说明下,如果写的native方法,不需要import其他类的话,直接 javah + native类就可以生成 .h了)

下面再相对应的修改下 jni目录下的Android.mk 需要编译的文件,就可以在cygwin中切到该jni目录下,ndk-build了

好了,下面就可以看到在armeabi目录下生成我们需要的libLPRJNI.so了

--------------------

2、安装apk后,切到 data/data/包名/libs 目录下,发现没有 .so文件???

这个问题就得说下 adb push 和 adb install 的区别了,如果直接adb push 到安装目录的话,libs目录下是不会有so文件的,如果是 adb install的话,则是有的。

而我调试的,因为签名关系,只能采用 adb push的方式,这种情况下,需要加载的so就需要手动的push 到system/lib目录下了。

=============================================================================

欢迎关注我的个人微信公众号,公众号会记录自己开发的点滴,还有日常的生活,希望和更多的小伙伴一起交流~~

NDK开发_cwin配置+编程简单步骤相关推荐

  1. golang开发环境配置以及简单使用

    golang开发环境配置以及简单使用 编译golang程序 go build命令的使用 http://c.biancheng.net/view/120.html 使用go build, 将main.g ...

  2. android ndk怎样加载o文件_JNI初探之NDK 开发环境配置

    安装 CMake.LLDB与NDK 开发工具包 CMake 简介 CMake 是一款比make更强大的编译自动配置工具,它可以根据不同平台.不同的编译器,并通过CMakeLists.txt文件中简单的 ...

  3. NDK开发环境配置(一)

    1.什么是JNI java native interferace java本地开发接口 相当于桥梁的作用,一种协议 通过jni就可以让java调用c语言或者c++语言代码,并且可以让c代表调用java ...

  4. 相继上一篇,thingsboard的二次开发环境配置和简单的logo替换

    一.二次开发环境配置 1.idea安装及辅助插件下载 官方推荐使用的开发工具是IntelliJ IDEA,简称idea 就是这个东西,这里先介绍一下idea(以下简介从度娘复制): IDEA 全称 I ...

  5. 模块化开发seajs 配置和简单调用

    模块化开发工具 seajs seajs 提供了简单.极致的模块化开发体验 seajs官网 :http://seajs.org 下面是seajs的小实例 b.js文件调用 a.js文件中的属性方法 se ...

  6. Andorid Studio NDK 开发 - Hello World

    原址 介绍了在Android Studio中配置NDK的开发环境:Android Studio NDK开发-环境配置,NDK开发环境配置完成之后,就要写一下著名的Hello World程序了. 在开始 ...

  7. NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)

    原文地址:http://blog.csdn.net/cuiyufeng2/article/details/64125594 前言 之前,每次需要边写C++代码的时候,我的内心都是拒绝的.  1. 它没 ...

  8. Android Studio2.2 CMAKE高效NDK开发

    转自:http://www.it165.net/pro/html/201611/76734.html 前言 之前,每次需要边写C++代码的时候,我的内心都是拒绝的. 1. 它没有代码提示!!!这意味着 ...

  9. 【飞秋】Android开发——NDK开发入门

    注:本文并非原创,参考了几位前辈的文章,本文只是稍作整理. 参考1:Eclipse配置NDK_R4开发环境(集成Cygwin .CDT) 分别介绍了在window和linux下配置eclipse自动化 ...

最新文章

  1. 计算机服务修复,修复服务注册缺失或已损坏错误在win10中的方法
  2. C#生成CHM文件(应用篇)之代码库编辑器(5)【总结、程序、源代码】
  3. 九十、Python的GUI系列 | QtDesigner进行界面设计
  4. 字符串的构造方法和直接创建
  5. 【转】SharePoint Content Database简介
  6. 技术要求→物理安全→防盗窃和防破坏
  7. 【缓存】缓存,这么用才真正达到缓存的效果
  8. [JavaScript] Cookie,localStorage,sessionStorage概述
  9. 主机测评软件_海外主机测评丨SugarHosts 美国虚拟主机测评
  10. 机器学习、数据挖掘、计算机视觉等领域经典书籍推荐
  11. java课程设计简易记事本
  12. 274-MySQL(查看源码的工具sourceinsight)
  13. 单片机数码管万年历c语言,基于51单片机和数码管的万年历程序
  14. android+微博点赞动画,模仿微博点赞动画
  15. 15-P-PCA从概率角度思考PCA主成分分析
  16. java-net-php-python-springboot羽毛球场地管理系统演示录像计算机毕业设计程序
  17. Hard samples mining
  18. 【游戏客户端】制作节奏大师Like音游(全)
  19. Java笔试 系列一
  20. 爬壁机器人外文文献_仿生爬壁机器人的研究现状

热门文章

  1. 2019年华北五省计算机应用大赛官网,【喜讯】我校学子在2019年华北五省(市、自治区)及港澳台大学生计算机应用大赛中获佳绩-天津城建大学...
  2. Jackson丨艾美捷荧光免疫印迹法用于定量和多重检测
  3. 【人工智能】人工智能与人类智能的关系
  4. sonix uvc驱动的加入 RT5350支持H264
  5. 直拨,回拨,半直拨三种业务基本模式是怎样的业务流程,有何区别
  6. 怎么画单极交流放大电路波形图_全差分放大器(1)——共模的意义
  7. 陶晶驰串口屏学习2之全局变量
  8. 今天分享几个牛逼的网站,不知道你用过没?
  9. Windows10关闭端口
  10. 性能测试解读:Kyligence vs Spark SQL