zoukankan      html  css  js  c++  java
  • 使用Android Studio进行NDK开发

    Step1:创建native方法

    很easy,仅仅须要给定义好的方法加上native关键词就可以
    这里写图片描写叙述
    注意:由于该方法的详细实现是在c++中详细实现的。所以相似于接口方法不须要加{}。

    Step2:生成class文件(多数情况可忽略)

    大多数情况下class文件是已经生成的。可是在刚进行改动或者代码中出现错误时,有可能会影响到class文件的生成,这时仅仅须要又一次生成一下就能够了。步骤为菜单条Build==>Make Project(若存在错误。修正后又一次尝试本操作就可以)
    这里写图片描写叙述

    Step3:生成.h文件

    点击View->Tool Windows->Terminal,将命令行窗体打开,相当于windows下的cmd窗体。
    这里写图片描写叙述
    cd app/src/main/java
    将路径切换到app/src/main/java
    javah -d ../jni collector.com.indoorun.orientionsensorcollector.JNI
    将包括native方法的类编译连接到.h文件
    这里写图片描写叙述
    此时项目中已经生成了jni目录和.h文件(其余文件是后来加入的。请先无视)
    这里写图片描写叙述

    Step4:实现c/c++文件

    将上一步生成的.h文件复制一份,后缀名改成.cpp(个人喜欢c++,用c的话.c就可以),去除头尾和凝视部分。将方法详细实现,这一步骤须要一定的c/c++基础。
    这里写图片描写叙述

    Step5:配置gradle文件

    改动相应module的build.gradle文件(配置ndk)
    这里写图片描写叙述

    改动local.properties文件(值得ndk路径,没有的话自己去下载个)
    这里写图片描写叙述

    改动gradle.properties文件(开启ndk编译权限)
    这里写图片描写叙述

    Step6:生成.so文件

    这里写图片描写叙述
    执行完毕后的结果:
    这里写图片描写叙述

    Step7:使用jni

    在java代码中使用载入so库(建议写在Application中或者在jni类中用static代码块)
    System.loadLibrary(“InertialJNI”);//你生成so文件时取的名字。
    然后在你须要用到的地方当成一般java方法一样调用就可以了。

    (确保使用前已经load)
    以上~一切搞定~直接run就好了~

  • 相关阅读:
    交叉编译报错 ld: unrecognized option '-Wl,-O1'
    QT WebEngineView显示不了中文
    MySQL连不上,重装时需要输入current password,最后一步失败
    Ubuntu 16.04关闭图形界面
    windows下查看文件的MD5,SHA1,SHA256
    MAC地址到IPV6 Local Link地址的转换
    systemctl stop某个服务时,保留服务开启的子程序
    WEB服务-Nginx之9-四层负载均衡
    WEB服务-Nginx之8-七层负载均衡
    WEB服务-Nginx之7-反向代理
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7382246.html
Copyright © 2011-2022 走看看