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集成;
- Geekband011第十一周笔记分享
- Geek-Band--第十一周分享
- GeekBand第十一周笔记
- 第十一周Android学习笔记
- Geekband001第一周笔记分享
- Machine Learning第十一周笔记:photo OCR
- Geekband010第十周笔记分享
- Geekband014第十四周笔记分享
- 第十一周
- 第十一周
- 第十一周
- 第十一周
- 第十一周
- 第十一周
- 第十一周
- 第十一周
- 第十一周
- 第十一周
- 【离线Tarjan 模板】LCA tarjan 算法 练习: hdu 2586 + poj 1986
- 用UGUI简单实现Inventory案例
- activemq使用系列: spring与activemq的整合
- activemq使用系列: 使用JmsGatewaySupport构建出通用的消息收发代码
- 设计模式之策略模式Stragegy Pattern
- Geekband011第十一周笔记分享
- 使用activemq 和 quartz构建简易版企业调度中心
- LeetCode 340. Longest Substring with At Most K Distinct Characters
- android:clipToPadding和android:clipChildren的使用
- [leetcode] 282. Expression Add Operators 解题报告
- getline()这个函数
- 在MaterialDesign中--实现文字缩放并入Toolbar的一种方法
- Toolbar + DrawerLayout实现侧滑
- Tree Traverse