android ndk r10d.rar,[Android] 环境配置之Android Studio开发NDK
========================================================
作者:qiujuer
网站:www.qiujuer.net
开源库:Genius-Android
========================================================
NDK 开发哪家强?XX XX 找 Blue Fly.
说到 NDK 开发,其实是为了有些时候为了项目需求需要调用底层的一些 C/C++的一些东西;另外就是为了效率更加高些。
但是很多时候能不用就不用;这个是啥原因?个人感觉有些时候是觉得麻烦,首先要配置 NDK 还要 下载 Cygwin ,配置 Cygwin ,然后需要编译生成,哎太麻烦了。如果你说使用Eclipse,的确这样在编译上是能简单很多,但是前期也是需要配置一大堆;哎,配置错了还伤不起。
现在谷歌主力推动 Android Studio这个是个不错的工具,至少现在来看在 Eclipse 上能做到的 这边都有,这边有的Eclipse上不一定有。
下面来说说 在 Android Studio中怎么进行 NDK 的开发。
准备工作
Android Studio 环境搭建
NDK 环境搭建
都是可执行文件,下载后点击即可解压到当前文件夹;当然你可以使用命令行来进行跨文件夹解压的。
建立一个项目 NDKDemo:
建立对应的类,在 MathKit 中我们实现计算 INT 值的平方数。
public class MathKit {
public static native int square(int num);
static {
System.loadLibrary("JniDemo");
}
} StringKit 这个就是充数用的:
public class StringKit {
public static native void setNull(String str);
static {
System.loadLibrary("JniDemo");
}
}
准备 .h 文件
进入Java目录;CMD 进入该目录进行 javah 操作:
这个想必大家并不陌生吧,该文件就是 java 类对应的 头文件,当然如果你比较厉害的话可以不用这样生成,自己敲代码完成也行;反正我是不行。
如下,建立文件夹:
拷贝之前的文件进去:
分别实现:
net_qiujuer_ndkdemo_jni_MathKit.cpp
#include
JNIEXPORT jint JNICALL Java_net_qiujuer_ndkdemo_jni_MathKit_square
(JNIEnv *env, jclass cls, jint num)
{
return num*num;
}
net_qiujuer_ndkdemo_jni_StringKit.cpp
#include
JNIEXPORT void JNICALL Java_net_qiujuer_ndkdemo_jni_StringKit_setNull
(JNIEnv *env, jclass obj, jstring str)
{
}
设置项目
设置根目录中的:local.properties
该设置不是必须,如果你设置了环境变量则可不用设置;如果没有但是又没有设置将会出现:
设置 APP 项目build.gradle
该设置是为了设置生成的Jni名称为:JniDemo。
主文件调用:
现在点击运行:
可以看见是非常简单的;这个调用可以说是我操作过最简单的了;甚至于生成 .H 文件都可以编辑 .sh 文件来进行批处理(这个后面有时间再说).
更多
在平时的那些操作中我们不可避免的要建立:
Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := genius
LOCAL_SRC_FILES := net_qiujuer_imageblurring_jni_ImageBlur.cpp
LOCAL_LDLIBS := -lm -llog -ljnigraphics
include $(BUILD_SHARED_LIBRARY)
Application.mk
APP_ABI:= all
APP_PLATFORM:= android-19
APP_OPTIM:= release
而这里这两个文件都没有建立,那么是怎么决定的呢?
我们可以在 ndk 的 modelName 上按住 Ctrl 进行点击将会出现这个界面:
这些就是全部能够设置的参数。分别对应:
ndk{
moduleName "JniDemo" // 设置生成的文件名
cFlags "-DANDROID_NDK -D_RELEASE" //这个对应的是生成模式
ldLibs "m", "log", "jnigraphics" //这个对应 LOCAL_LDLIBS 但是需要去掉前面的 “l”
abiFilters "all" //这个是对应的 APP_ABI
stl "stlport_shared" //这个对应的是 APP_STL
}
好了,就这些祝大家成功。项目打包上传。
本次项目点击这里下载。
========================================================
作者:qiujuer
网站:www.qiujuer.net
开源库:Genius-Android
========================================================
android ndk r10d.rar,[Android] 环境配置之Android Studio开发NDK相关推荐
- Android环境配置(Eclipse全开发环境下载)
Android环境配置 前期准备 Android环境的Eclipse: 网站链接:https://www.runoob.com/w3cnote/android-tutorial-eclipse-adt ...
- Linux开发环境配置--正点原子阿尔法开发板
Linux开发环境配置–正点原子阿尔法开发板 文章目录 Linux开发环境配置--正点原子阿尔法开发板 1.网络环境设置 1.1添加网络适配器 1.2虚拟网络编辑器设置 1.3Ubuntu和Windo ...
- [Android] 环境配置之Android Studio开发NDK
2019独角兽企业重金招聘Python工程师标准>>> ======================================================== 作者:qiu ...
- Unity5.6+ 导出Android 应用程序apk的环境配置及导出过程
首先下载并安装安卓SDK和java的JDK 安卓sdk下载: http://www.android-studio.org/ 也可以在这下载: 链接:http://pan.baidu.com/s/1bp ...
- 安卓逆向_15( 二 ) --- Android Studio 3.6.3 JNI 环境配置 和 so 生成开发 demo
From:Android Studio 3.0 JNI 的实现:https://blog.csdn.net/ziyoutiankoong/article/details/79696279 Androi ...
- windows下JDK环境配置与Android SDK环境配置
一.JDK环境配置 1.配置 变量名:JAVA_HOME 变量值:jdk安装的绝对路径. 变量名:Path(在系统变量中找到并选中Path点击下面的编辑按钮,不要删除原本变量值中的任何一个字母,在这个 ...
- Android + Appium 自动化测试完整的环境配置及代码详解
环境的的搭建 参考大神博客:https://www.cnblogs.com/fnng/p/4540731.html 该博客有一套详细的入门教程,奈何时间有点久远有些东西不能用了,但是参考价值还是有滴. ...
- Unity 2021.1.15 ARCore环境配置与样例开发
前言 首先这个文档是基于Unity2018及以上的,由于实习需要做AR相关的内容,但是AR Core之前的教程大多是基于SDK的,而这一功能已不在Unity更高版本中支持,同时楼主又是个Unity小白 ...
- C#对UG二次开发环境配置、调试和开发教程
一.UG的宏录制 1.选择宏录制的语言C# 1.1 打开NX新建一个模型 1.2 打开文件->首选项->用户界面,设置录制语言为C# 1.3 打开开发人员,点录制即可进行录制 1.4 将录 ...
- win10下从源码运行Cura——环境配置(二次开发准备工作)
win10下从源码运行Cura(二次开发准备工作) win10下从源码运行Cura 配置过程(踩坑指南) win10下从源码运行Cura 本人小白一只,近来需要了解Cura,故自己摸爬滚打学习.网上对 ...
最新文章
- 阿里巴巴副总裁司罗:达摩院如何搭建NLP技术体系?
- Base64编码和解码
- Android系统分区理解及分区目录细解
- 反射中 BindingFlags标识
- 计算机联锁与全电子执行单元,计算机联锁全电子执行单元.doc
- http://4526621.blog.51cto.com/4516621/1343369
- java调用outlook
- 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变...
- c# ComboBox禁用鼠标滚轮
- 微信小程序如何去掉button边框
- 使用 ExtJS 实现 ASP.NET MVC 2 客户端验证
- 税控服务器组件接口v2.1.1.1,税控开票服务器组件接口规范标准版V1.9(2016.04.04).pdf...
- 去哪里学习行业知识?
- 统一资源定位符URL和统一资源标识符URI
- poj3537 Crosses ans Crosses
- jupyter notebook更改默认浏览器
- 《现代操作系统》阅读笔记
- 如何去爱一个人[转]
- linux 命令 root用户把某个文件权限给到普通用户
- 出炉!2021 编程语言排行榜~
热门文章
- Atitit 网关协议cgi wsgi fcgi fastcgi 目录 1.1. CGI(common gateway unterface)	1 1.2. 2.1 WSGI:	1 1.3. 2.3
- Atitit.一个cms有多少少扩展点,多少api wordpress cms有多少api。。扩展点
- Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java
- paip.提升安全性-------用户口令密码的检测与生成
- PAIP.DB4O与SQL配合使用在海量数据下.txt
- python: 大规模数据集的读存技巧
- 独家|对决金融云:备案将至,谁得先手
- 经纬徐传陞:越是市场低迷之时,越要把握自己的节奏 | 远见2018
- 当第一资本、高盛、摩根士丹利等巨头纷纷启用CDO时,您想到了什么?
- Julia : Formatting库的 fmt Base.@sprintf