Geekband011第十一周笔记分享

来源:互联网 发布:淘宝的增高精油有用吗 编辑:程序博客网 时间:2024/04/30 13:15

NDK简介

JDK: java开发工具包
SDK:软件开发工具包;
NDK:Native Development Kit 源生(C/C++)开发工具包即用C/C++去开发;
JNI:Java Native Interface java源生接口。
NDK是android平台支持C/C++开发。

一种是使用已经编译好的.so动态库
一种是使用C/C++源代码开发:
(1)下载NDK、配置;
(2)Gradle配置;
(3)方法调用;
(4)生成so文件。

NDK产生的背景

  Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于 Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布 时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台 上,“Java+C”的编程方式是一直都可以实现的。

  不过,Google也表示,使用原生SDK编程相比Dalvik虚拟机也有一些劣势,Android SDK文档里,找不到任何JNI方面的帮助。即使第三方应用开发者使用JNI完成了自己的C动态链接库(so)开发,但是so如何和应用程序一起打包成apk并发布?这里面也存在技术障碍。比如程序更加复杂,兼容性难以保障,无法访问Framework API,Debug难度更大等。开发者需要自行斟酌使用。

  于是NDK就应运而生了。NDK全称是Native Development Kit。NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式。NDK将是Android平台支持C开发的开端。

NDK优点

代码的保护。由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
可以方便地使用现存的开源库。大部分现存的开源库都是用C/C++代码编写的。
提高程序的执行效率。将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
便于移植。用C/C++写得库可以方便在其他的嵌入式平台上再次使用。

Gradle

1、Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。

Gradle只是提供了构建项目的一个框架,真正起作用的是Plugin。
它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。
当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。
2、重要性 — 使用Gradle构建这些任务

codeing只是软件开发中的一个部分;
编译源代码;
运行单元测试和集成测试;
执行静态代码分析、生成分析报告;
创建发布版本;
部署到目标环境;
部署传递过程;
执行冒烟测试和自动功能测试。

Gradle优点

更容易重用资源和代码;
可以更容易创建不同的版本的程序,多个类型的apk包;
更容易配置,扩展;
更好的IDE集成;

0 0
原创粉丝点击