一、NDK
JDK : Java Development Kit(Java开发工具包)
SDK : Software Development Kit(软件开发工具包)
NDK :Native Development Kit (原生开发工具包,可以通过这个工具包用C / C++开发)
JNI :Java Native Interface (Java原生的接口)
使用NDK的优劣:
▶ 优点:1. 代码的保护。apk的Java层代码很容易被反编译,而C/C++库反汇难度较大;
2. 可以方便地使用现存的C/C++开源库;
3. 提高程序的执行效率;
4. 便于移植;
▶ 缺点:开发麻烦、调试不方便、难度相对较高
▶ 什么时候使用NDK?
NDK会增加代码的复杂性,所以使用的时候要慎重。一般在对CPU要求比较高的时候,会使用C语言编码,可以提高程序的执行效率。使用NDK大部分情况是需要将一些已有的C函数库移植到Android平台的所选择的快捷方法,而不是作为提高代码效率的手段
二、依赖
三种使用方法:
☛ Library dependency maven库依赖
☛ File dependency 文件依赖(jar、aar等)
☛ Module dependency 项目依赖(比如下载下来的一些项目)
1. 添加依赖的方法:
◆ 项目引用:首先导入项目文件,打开依赖设置(下图),选择Module dependency,选择项目文件即可。
compile project(':mylibrary')
◆ 通过创建library的项目引用:通过File——>New--->New Module--->Library创建一个library的module,创建后,依赖设置中选择Module dependency选项,在module的gradle文件的依赖中会多出下面一段代码;
◆ maven库的引用:点击上图中的第一个,直接搜索选择就可以;◆ aar的引用:首先导入aar文件,然后File——>New--->New Module--->Import AAR package--->选择aar文件,创建后,依赖设置中选择File dependency选项,选择文件。然后会看到出现一个和该文件名一样的文件夹(下图中文件名就是mylibrary-debug),settings.gradle中也会出现该文件名的module。
2. 部分引用方法列表:
1. compile file Tree(dir:‘xxx’,include:['*.jar',"*.xxx"]) 某个目录下所有符合扩展名的文件作为依赖(用于多个文件)
2. comoile 'com.xx.xx:projectName:version' 编译第三方库作为依赖
github上,某些比较好的项目会被作者作为一个aar上传到maven中,然后我们可以在github的说明文档中找到依赖的代码(就是上面这种格式),然后复制直接粘贴到依赖代码中,就可以直接使用了;
3. compile project(':LibraryModule') 配置另一个Module作为本Module的依赖,被依赖的Module必须被导入到当前工程中
4. compile files('xxx.jar') 配置某个jar包作为依赖(用于单个文件)