如何引入 SDK

December 12, 2023
测试
测试
测试
测试
2 分钟阅读
手把手第三篇:如何引入 SDK
手把手第三篇:如何引入 SDK

在上期文章中,FinClip的工程师和我们以手把手的形式教学完成了自己如何编写一个 iOS 与 Android 的第三方 SDK,但在实际的研发工作中,纯靠自己手写 SDK 毕竟是少数情况,在常见的大多数时候,还是需要引入第三方 SDK。

在 iOS 环境下引入 SDK

1. 新建工程,命名为 ADemo(如果你又一次忘记了怎么新建工程,点击这里回顾

2.  将我们在第二篇文章中创建好的动态库,拖进工程

将选中的文件夹拖入工程即可

3. 修改相应配置

既然引入了第三方 SDK,那就需要在这里建立关联与依赖

4. 在 ViewController 补充测试代码,并运行

如果运营成功,你会看到“吃骨头”的提示

在 Android 环境下开发 SDK

与 iOS 工程不一样,在 Android 环境中引入第三方 SDK,我们会通过 Gradle 来进行管理。

Gradle 是 Android 构建的主要组成部分, 依赖也是由 Gradle 管理,可以点击这里查看其官方文档。与 iOS 应用不一样,通过 Gradle 引入的 SDK 既可以存在于本地系统中,也可以存在于远程的代码库之中。不论存在于哪里,SDK 所声明的所有传递依赖都会被自动集成在项目之中。

1. Android Studio 导入外部 SDK 的三种方式

在 Android Studio 中,一共有以下 3 种方式导入外部 SDK ,让我们一起看看。

  • Library Dependency:需联网下载;
  • Jar/aar Dependency:添加本地 jar 包,添加前要先将 jar 包放到项目的 libs 目录下;
  • Module Dependency:添加本地带有源码的库工程,添加前要先将 module 导入项目;

第一种方式:Library Dependency(远程依赖)

首先点击 File Structure 查看文件结构

再切换至 Dependencies 中,就能看到对应的第三方 SDK 了

如果我们直接点击上图中的加号,就可以在这里通过“远程依赖”的方式引入 SDK

第二种方式:Jar/aar Dependency(本地依赖)

我们如果直接把第三方库拖入工程,就是通过“本地文件”的方式引入 SDK

在引入 aar 之后,还需要在本地配置目录

 sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

再添加依赖关系

implementation(name: 'GPush-release', ext: 'aar')

第三种方式:Module Dependency(源码依赖)

在这里,我们尝试以 这个 CircleImageView 例子 引入该库

首先我们需要先将代码库 clone 到本地

cd ~/downloads/
git clone https://github.com/hdodenhof/CircleImageView.git 

然后我们点击这里的 Import Module 进行引入

再选中 clone 在本地的代码库

别慌,如果说 import module 无法识别无法导入,那就只能手动导入了

第一步,拷贝源码到我们的工程

cp -r ~/Downloads/CircleImageView/circleimageview .    

第二步,在 setting.gradle 这个文件添加这一行内容

include ':circleimageview'

这样 Android Studio 就能识别到我们导入的项目了!

于是我们再次回到 Android Studio 中,添加工程依赖

分别点击 Project Structure - Modules - Declared Dependencies 到最后的加号

在这里选中 circleImageView

最终点击 OK 和 Apply ,就能成功的引入这个第三方依赖库了。


本期教程依然基于 mac 电脑进行实现,如果你的电脑是 Windows 或者其他操作系统,还需要进行一些其他的灵活配置。

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多