1.NDK的介绍
1.1 什么是NDK?Native Development Kit(本地开发工具包)
通俗一点:NDK中提供了一系列的工具,帮助我们快速开发C/C++的动态库,并能自动将so 和java 应用一起打包成apk
说白了就是Java代码调用C/C++代码
1.2 什么是JNI?Java Native Interface(Java本地化接口)
Java调用C/C++的一套编码规范
NDK基于JNI
1.3 为什么使用NDK?
第一点:安全(代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大)
第二点:硬件和性能(图像处理)
第三点:便于移植
第四点:借助了第三方C/C++优秀开源库
2.环境搭建:第一个NDK程序
2.1搭建的环境,IDE
本文只介绍Android Studio在Window环境下的搭建,这个时候相信很多小伙伴问为什么不介绍Eclipse的搭建,为什么不接受苹果环境的搭建,这里我只想说两个原因第一Eclipse现在谷歌已经停止对ADT维护,第二本人穷用不起苹果;另外如果大家想知道苹果环境中NDK环境,使用Eclipse开发如何搭建DNK环境的可以留言,我会发个大家视频进行教学。
2.2环境的搭建
环境的搭建主要包括以下几个步骤
第一步:新建一个Android工程
第二步:在AndroidStudio中配置NDK路径
注解:在AS中配置NDK非常简单 File->Project Structure->SDK Location->在Android NDK location这个栏目中下载NDK即可
第三步:编译生成.class文件
注解:Build->Rebuild Project
第四步:定义本地方法
注解:在用使用NDK方法的Activity中定义方法,例如在MainActivity中定义 public native String getText();方法
第五步:生成jni目录以及对应的.h头文件
两种方式(通过工具生成、通过命令生成)
cd app/src/main/java
javah -d ../jni 报名.MainActivity
第六步:配置build.gradle文件
注:类似于Eclipse中的.mk文件
defaultConfig {
ndk{
moduleName "Dream"//定义NDk类库名称
}
}
第七步:配置local.properties文件
注:指定NDK目录(一般情况下工具自动配置)ndk.dir=E\:\\Android\\sdk\\ndk-bundle
第八步:配置gradle.properties文件
android.useDeprecatedNdk=true
注:支持低版本,否则编译不通过
第九步:定义实现文件(.c或者.cpp文件)
注解:Build-Build->Rebuild Project ->clearn Project
第十步:测试
1.1 什么是NDK?Native Development Kit(本地开发工具包)
通俗一点:NDK中提供了一系列的工具,帮助我们快速开发C/C++的动态库,并能自动将so 和java 应用一起打包成apk
说白了就是Java代码调用C/C++代码
1.2 什么是JNI?Java Native Interface(Java本地化接口)
Java调用C/C++的一套编码规范
NDK基于JNI
1.3 为什么使用NDK?
第一点:安全(代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大)
第二点:硬件和性能(图像处理)
第三点:便于移植
第四点:借助了第三方C/C++优秀开源库
2.环境搭建:第一个NDK程序
2.1搭建的环境,IDE
本文只介绍Android Studio在Window环境下的搭建,这个时候相信很多小伙伴问为什么不介绍Eclipse的搭建,为什么不接受苹果环境的搭建,这里我只想说两个原因第一Eclipse现在谷歌已经停止对ADT维护,第二本人穷用不起苹果;另外如果大家想知道苹果环境中NDK环境,使用Eclipse开发如何搭建DNK环境的可以留言,我会发个大家视频进行教学。
2.2环境的搭建
环境的搭建主要包括以下几个步骤
第一步:新建一个Android工程
第二步:在AndroidStudio中配置NDK路径
注解:在AS中配置NDK非常简单 File->Project Structure->SDK Location->在Android NDK location这个栏目中下载NDK即可
第三步:编译生成.class文件
注解:Build->Rebuild Project
第四步:定义本地方法
注解:在用使用NDK方法的Activity中定义方法,例如在MainActivity中定义 public native String getText();方法
第五步:生成jni目录以及对应的.h头文件
两种方式(通过工具生成、通过命令生成)
cd app/src/main/java
javah -d ../jni 报名.MainActivity
第六步:配置build.gradle文件
注:类似于Eclipse中的.mk文件
defaultConfig {
ndk{
moduleName "Dream"//定义NDk类库名称
}
}
第七步:配置local.properties文件
注:指定NDK目录(一般情况下工具自动配置)ndk.dir=E\:\\Android\\sdk\\ndk-bundle
第八步:配置gradle.properties文件
android.useDeprecatedNdk=true
注:支持低版本,否则编译不通过
第九步:定义实现文件(.c或者.cpp文件)
注解:Build-Build->Rebuild Project ->clearn Project
第十步:测试