进入公司许多的编程方法都与在学校不尽相同,在公司中由于进行开发不只是你一个人的事情,会有许多同事与你一同开发,也会有将你开发的东西给其他的公司人员直接使用。这其中就涉及到两个点sdk与api。在工作中接触sdk、api是不课避免的。举一个栗子当你完成一个app的一个部分,比如说是一块ui面板,这个时候其他公司的合作伙伴想要用你这块ui面板,但是因为是不同公司的,不能直接给代码给其他公司,这个时候就应该把你的这块代码即成个sdk直接给其他公司的合作伙伴使用。这不仅达到了合作的目的还保证了公司的利益。
那SDK又是什么?
SDK是一组工具,可用于开发针对特定平台的软件应用程序。
SDK包括了工具、库、文档和示例代码,可以帮助程序员开发应用程序。
大部分的SDK都可以从互联网上下载,而且许多SDK都是免费提供的,以鼓励程序员使用SDK,从而也推广了其支持的编程语言。
一些被广泛使用的SDK是Java SDK
(JDK),它包括了所有的Java的标准库、调试工具等等,这使得Java编写程序的过程变得更加容易。
SDK让软件开发者的生活变得很轻松,因为一整套软件包安装以后,对应的开发工作也就可以开始了。除非有特殊需求,一般不再需要安装程序库了。
API是什么?
API是一组接口,它允许软件程序之间进行交互通信。
它定义了一组程序之间相互通信所应遵循的规则。
API一般规定了两个程序之间的通讯模式、数据结构等,以便两个程序之间进行通信。
API提供的功能各不相同:
有的提供编程语言库功能的通用API,如Java API等。
也有提供特定功能的API,如Google地图API。
也有依赖语言的API,只能被特定的编程语言使用。
此外,还有一些独立于语言的API,可以与多种编程语言一起使用。
API的实现需要非常谨慎,只向外部公开所需的功能或数据,同时要保持应用程序的其他部分不被访问。
目前API的使用在互联网上已经变得非常流行。
在Web上,通过API向外部公开一些功能和数据是非常普遍的。
API和SDK的区别是什么?
API是一种接口,允许软件程序之间进行交互通信的接口,而SDK是一组工具,可以用来开发针对特定平台的软件应用程序。
最简单的SDK版本可以是一个API,其中包含一些与特定编程语言进行交互所需的文件。所以一个API可以看成是一个简单的SDK,只是忽略了调试支持等部分。
简单的了解了sdk与api是什么东西后,就要看如何在实际工作中去使用他们
封装SDK:
首先SDK是提供给别人调用的工具。所以常见的SDK都是以jar包,so库,aar包等方式导入APP项目中。然后提供一些公开的API供接入方调用。所以在Androidstudio中如果需要生成jar或者aar,就需要将module变成library。
1、jar包,如果仅仅是逻辑代码不包括资源文件 这时候可以将模块儿封装为Jar包,比较简单
2、aar包,如果需要将模块儿代码逻辑以及资源文件甚至是所依赖的模块儿全部封装起来,那么就封装为aar包
大致的思路如下:
- 打开Android studio 新建一个项目,类型指定为库
- 建立一个activity.在配置文件中声明一下.
- 导出该项目,导入为jar.
- 导入到你指定的另外一个项目中.
- 在配置文件中声明jar包中activity
- 这个时候就可也是使用这个库了
注意事项:
- 所有的内容都需要依赖这个acitivity.他是sdk上下文.
- Sdk的所有内容围绕着这个activity来写就行了
- 把这个activity当成一个普通类使用
- Sdk最大的问题就是它里面的所有内容都是没有生命周期的.
- 只有之前创建声明过的那个activity 有生命周期.原理大概是这样的
Android studio 创建sdk (jar和 aar) 的方法
(一)创建sdk (jar和 aar)
1.首先创建一个项目,项目名为“MyProject”
2.创建一个module(或称 android library), 名字为“mysdklibrary”
右键项目名,选择“new module”,
选择“Android Library ”,点击“next ”
填写module名,点击“Finish”.
3.在mysdklibrary中编写被外部调用的类/方法 printHello.java
printHello.java逻辑如下:
4.app调用mysdklibrary的逻辑:
5.文件配置
1)app下的build.gradle
在app下的build.gradle中 添加以下字段:
结果如图:
2)module下的build.gradle
在build.gradle中添加以下的字段:
结果如图:
6.生成jar包
点击android studio 右侧的“gradle”, 找到 MyProject > :mysdklibrary > other > makeJar,
双击 “makeJar” ,即可生成jar包,
生成jar过程图:
结果图:
其中TestSDK_V1.0.jar就是生成的jar包。
7.生成arr包
在运行app时自动生成,如图:
mysdklibrary-debug.arr和mysdklibrary-release.arr即为结果。
- jar和aar文件的区别
*.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。
*.aar:包含所有资源,class以及res资源文件全部包含
如果你只是一个简单的类库那么使用生成的.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用.aar文件。
(二)测试自己生成的SDK
1.新建一个项目:TestMyProject
2.复制TestSDK_V1.0.jar到lib,右键TestSDK_V1.0.jar,选择“add as library”
3.编写调用的代码
结果如图:
4.运行结果
链接:https://cloud.tencent.com/developer/news/624074
链接:https://www.cnblogs.com/bimingcong/p/14071440.html
链接:https://blog.youkuaiyun.com/learner_lps/article/details/77196414