前言
最近公司项目需要开发一个音乐类的sdk,让第三方开发者来进行执行操作!作为第一次开发sdk,其实很多东西都不是很明白,只能遇到问题就Google吧,弄到现在总算一切都成功了,现在记录一下其中开发的步骤与问题!
方案选择
前期开发sdk一定要想好自己是出什么包,这里提供两种参考:
-
jar包
-
arr包
他们两者是有区别的,区别在于:
- 打包出来的位置不同
AS低版本
jar: /build/intermediates/bundles/debug(release)/classes.jar
AS高版本
jar: /build/intermediates/packaged-classes/release/classes.jar
aar: /build/outputs/aar/libraryname.aar
- jar 中只包含了class文件与清单文件,
aar中除了包含jar中的class文件还包含工程中使用的所有资源,class及res资源文件全部包含
- 使用方式不同
jar使用:
1.将打包出来的jar文件加入到libs中
2.在module的build.gradle中加入代码,例如:
implementation files(‘src/lib/demo.jar’)
arr使用 (这里只讲解单层arr依赖):
1.将打包出来的arr文件加入到libs中
2.在module的build.gradle中与android{}平级下加入
repositories {
flatDir {
dirs ‘libs’
}
}
3.在module的build.gradle中的dependencies里加入
implementation(name: ‘demo’, ext: ‘aar’)//注意这里加入的名字没有后缀名
4.同步后可以在External Libraries中查看新加入的包
开发SDK中三方库咋处理?
首先建议开发sdk尽量少使用第三方库,使用时问题很多!但是特定情况下需要必须使用咋办?例如用到网络请求等等第三方库,例如现在的okhttp已经非常成熟,我们一般选择他来作为网络请求!首先我们抛出问题
-
假如我们在sdk中的build.gradle中加入依赖,开发完毕后直接打包,这里会出现一个问题就是打出来的包里面并不包含第三方库,会出现类找不到的情况,这个时候需要第三方开发者自己来导入我们sdk中所需要的依赖,假如我们不提供文档,开发者们都不知道要导入哪些?
-
我们使用arr打包方式,将我们用到的第三方库下载下来放进libs里面然后打包,这样可以打出来的包可以把第三方库打包进去使用!但是这样又会出现一个问题就是第三方开发者经常会遇到包冲突现象!
针对上面的问题提供以下几种思路:
- 提供开发文档在文档注明需要哪些第三方,把android常用的第三方库让开发者自己导入,例如okhttp,因为这些常用,所以开发者觉得这些都不是事,不用这个sdk我都会导入这些三方库
- 把不常用的库自己封装到sdk中,因为不常用很少有开发者会用产生版本冲突现象,例如dagger2等等!
- 使用maven仓库,用bintray进行版本管理
怎样将注解类的三方库封装进SDK?
这里其实我想到的是一个很笨的方法,但是确实是能解决问题的方法,如果读者有更好的方法,欢迎交流!
以dagger2为例,怎样将他封装进sdk?
步骤1
大家都知道使用dagger会用到如下东西:
apply plugin: ‘kotlin-kapt’
dependencies{
implementation ‘com.google.dagger🗡version’
kapt ‘com.google.dagger:dagger-compiler:versio’
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
最后:学习总结——Android框架体系架构知识脑图(纯手绘xmind文档)
学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。
下方即为我手绘的Android框架体系架构知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的Android框架体系架构知识脑图原件(包括上方的面试解析xmind文档)
除此之外,前文所提及的Alibaba珍藏版 Android框架体系架构 手写文档以及一本 《大话数据结构》 书籍等等相关的学习笔记文档,也皆可分享给认可的朋友!
——感谢大家伙的认可支持,Free Download请注意:点赞+点赞+点赞!!!
原件(包括上方的面试解析xmind文档)
[外链图片转存中…(img-uy1G5G9P-1711291525801)]
除此之外,前文所提及的Alibaba珍藏版 Android框架体系架构 手写文档以及一本 《大话数据结构》 书籍等等相关的学习笔记文档,也皆可分享给认可的朋友!
——感谢大家伙的认可支持,Free Download请注意:点赞+点赞+点赞!!!
自行下载领取链接:【Git】