NDK入门(一)
来源:互联网 发布:mac压缩软件 编辑:程序博客网 时间:2024/05/17 04:15
为什么需要ndk开发,个人理解有两点:一,安全,java程序容易通过反编译获取源码。二,效率,C++效率肯定比java高。
如何使用
前期准备工作
一,可用的android studio。
二,android-ndk-r14b-windows-x86_64 【下载地址】。解压后放到sdk根目录中,文件夹命名为ndk-bundle,为啥要这么做,启动AS的时候会检查它并直接添加到ndk.dir中,减少我们的配置工作,后面会有体现。
三,配置环境变量path,把解压好的路径添加到环境变量path中。
到此准备工作完毕!
创建项目demo
关联android studio和ndk
关联一,在建立的工程中的local.properties中添加如下配置ndk.dir=D\:\\Android\\sdk\\ndk-bundle。如果ndk目录是存放在SDK中,并命名为ndk-bundle,这个配置会自动为添加上。
关联二,在gradle.properties中配置android.useDeprecatedNdk=true 。这个主要是解决ndk提示版本低不能自动编译jni
关联工作完成,接下来代码相关
在包里面创建NDKJNI.java文件并创建一个本地方法 getNDKString()
通过javah命令获取到本地头文件
执行javah命令后你会在包下面看到 .h文件
【project查看项目模式】在mian 下面创建jni文件夹,把 .h文件转移到该文件夹里面,同时创建同名的 .c文件。
目前ndk相关代码全部写完
在该项目下的build.gradle配置生成的so名称和支持的cpu类型
生成so文件
在项目的工具类中选择Build->Rebuild Project,进行重新编译工程,然后AS会为我们生成so文件,so文件所在目录为:\app\build\intermediates\ndk\debug\lib下
ndk现在已经开发完成.
下面是如何使用ndk
加载so库
加载的so库名称必须与build.gradle中配置的moduleName 名称一致,否则将找不到库。
最终使用
到此结束。
- NDK入门(一)
- NDK开发入门(一)
- Android NDK入门(一) -- HelloWorld
- Android NDK开发(一)入门篇
- Android NDK开发入门(一)
- Android NDK开发(一) 入门
- Android-NDK入门案例及基础问题解决(一)
- Android NDK 入门开发例子(一)
- NDK 开发(一:基本流程入门了解)
- NDK使用指南(一)
- NDK基本知识(一)
- NDK学习(一)
- NDK入门(Android Studio)
- Android studio中NDK开发(一):CMakeLists.txt编写入门
- NDK入门
- NDK入门
- NDK 入门
- NDK入门
- EOSPlatform7.6补丁列表
- CentOS 7.0安装MariaDB
- Angular环境搭建
- 深入浅出Java 重定向和请求转发的区别
- NOIP2011 Day2
- NDK入门(一)
- 移动端1px像素边框
- pyspark -ML Pipelines
- es6 箭头函数学习笔记
- Tomcat JDBCPool的使用
- linux-查看当前登录的用户
- Matlab 定义函数
- [FAQ04300]如何预置APK (KK及以前)
- 15.Java集合类