文档章节

ndk的学习(1)

y
 yanglingui
发布于 2017/02/07 15:36
字数 856
阅读 74
收藏 0
ndk

    1.什么是ndk?

首先 我们要知道它的英文名字 Native Development Kit  (本地开发工具包) ,那它又是干甚的呢?

能够帮助我们快速开发c/c++的动态库,并能自动将 .so文件和java应用打包成apk

(背会这个恭喜你,你了解了她了)

    2.jni

谈到ndk就必须说jni ,ndk就是工具但是光有工具是不行的 我们得知道这个工具怎么使用 也就官方的话叫做规范 

jni就是一种规范,我不是重洋内外,但是我还是得说会说几句鸟语给中国人的感觉就是牛逼,jni的英文全名就是 Java Native InterfaceJava本地化接口

作用: Java调用C/C++的一套编码规范 他和ndk的关系就是ndk要基于他 点到为止 说出这句话的人 面试的人估计不敢再深问了 他怕自己也兜不住

    3.为什么要使用ndk呢

那么多人老板为什么要使用呢?你得知道自己的价值,

1>硬件和性能  :java代码是不可能直接调用硬件的 就和玩手动挡和自动挡的效果一样

2>安全性 : 代码的保护,由于apkjava层代码很容易被反编译,而C/C++库反汇难度较大

3>便于移植 :写了c和c++ 可以在android 和 ios 中都可以用 只要底层代码是c的

4>c和c++ 有很多的开源库 c是代码的爷爷啊多少人的汗水的凝结

    4.环境的搭建

       我这是windows的as的安装  对不起我没有mac的  as最好用2.2的 太低我也不会 仁王高出走

    1>下载ndk包

                                   http://http://pan.baidu.com/s/1jImIOyM

    2>安装 支持so库的开发环境

            

第一步:新建一个Android工程
				第二步:在AndroidStudio中配置NDK路径
				第三步:编译生成.class文件	
				第四步:定义本地方法
				第五步:生成jni目录以及对应的.h头文件
					两种方式(通过工具生成、通过命令生成)
					cd app/src/main/java
					javah -d ../jni com.example.lixinyu.myapplication2.MainActivity
				第六步:配置build.gradle文件
					注:类似于Eclipse中的.mk文件
				第七步:配置local.properties文件
					注:指定NDK目录(一般情况下工具自动配置)
				第八步:配置gradle.properties文件
					android.useDeprecatedNdk=true
					注:支持低版本,否则编译不通过
				第九步:定义实现文件(.c或者.cpp文件)
				第十步:测试

 

ndk路径的配置

 生成.class 文件   通过as的命令动态生成头文件(xx.c)

    

 

生成jni目录

配置buid.gradle

配置ndk 支持低版本

android.useDeprecatedNdk=true

  实现头文件

    1>创建c代码

    2>将下面的代码直接拷贝到ylg中

 

© 著作权归作者所有

y
粉丝 1
博文 135
码字总数 18801
作品 0
海淀
私信 提问
NDK学习笔记(一)

以Windows环境为例,以下工具在使用NDK开发Android应用程序时都会要用到: Java Development Kit on Windows Apache Ant on Windows Android SDK on Windows Cywin on Windows Android NDK ......

LeoXu
2016/01/01
79
0
please define NDK_ROOT

刚开始学习cocos2d-x,第一步必须是把环境变量配置好。关于sdk ndk的下载都挺简单,就不加整理了。依据网上找的一些资料,进行如下配置 1.设置环境变量, 即在终端窗口编辑 sudo vi ~/.bas...

萌神明明
2014/03/30
753
0
闲来无事,塔建了一下android ndk和简单的编译并安装运行apk

一、Android Ndk 下载地址 http://developer.android.com/tools/sdk/ndk/index.html#Installing 二、环境变量配质 1、创建环境变量名 ‘ANDROID_NDK’,变量名的值'D:androidandroid-ndk-r9'......

军歌
2013/08/28
426
0
NDK环境搭建和编译第一个程序

看了网上很多文档,学习很多前人的经验,也遇到很多问题,整理分享一下。 环境搭建:(windos XP操作系统) 1.到Cygwin的官方网站下载Cygwin的安装程序,地址是: http://www.cygwin.com/setup...

kelivin
2012/11/24
1K
1
FFMPEG for android 编译

标签(空格分隔): FFMPEG 最近在研究Android视频播放功能,网上有很多关于视频播放解码的库,但是作为程序员的我,还是希望能从源头出发,学习FFMPGE自然是势在必行了。 网上有关FFMPGE学习...

Sivin
2016/12/15
388
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
42分钟前
3
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
4
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
4
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部