Android SDK开发的那些事(1),已整理成文档

简介: Android SDK开发的那些事(1),已整理成文档

前言

最近公司项目需要开发一个音乐类的sdk,让第三方开发者来进行执行操作!作为第一次开发sdk,其实很多东西都不是很明白,只能遇到问题就Google吧,弄到现在总算一切都成功了,现在记录一下其中开发的步骤与问题!

方案选择

前期开发sdk一定要想好自己是出什么包,这里提供两种参考:

  • jar包
  • arr包

他们两者是有区别的,区别在于:

  1. 打包出来的位置不同

AS低版本

jar: /build/intermediates/bundles/debug(release)/classes.jar

AS高版本

jar: /build/intermediates/packaged-classes/release/classes.jar

aar: /build/outputs/aar/libraryname.aar

  1. jar 中只包含了class文件与清单文件,

aar中除了包含jar中的class文件还包含工程中使用的所有资源,class及res资源文件全部包含

  1. 使用方式不同

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已经非常成熟,我们一般选择他来作为网络请求!首先我们抛出问题

  1. 假如我们在sdk中的build.gradle中加入依赖,开发完毕后直接打包,这里会出现一个问题就是打出来的包里面并不包含第三方库,会出现类找不到的情况,这个时候需要第三方开发者自己来导入我们sdk中所需要的依赖,假如我们不提供文档,开发者们都不知道要导入哪些?
  2. 我们使用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’
}


相关文章
|
2天前
|
存储 Java 数据库连接
Android Java开发异步
【6月更文挑战第15天】
|
1天前
|
安全 Java Android开发
安卓开发中的新趋势:Kotlin与Jetpack的完美结合
【6月更文挑战第20天】在不断进化的移动应用开发领域,Android平台以其开放性和灵活性赢得了全球开发者的青睐。然而,随着技术的迭代,传统Java语言在Android开发中逐渐显露出局限性。Kotlin,一种现代的静态类型编程语言,以其简洁、安全和高效的特性成为了Android开发中的新宠。同时,Jetpack作为一套支持库、工具和指南,旨在帮助开发者更快地打造优秀的Android应用。本文将探讨Kotlin与Jetpack如何共同推动Android开发进入一个新的时代,以及这对开发者意味着什么。
|
1天前
|
Java 开发工具 Android开发
探索安卓与iOS开发的核心差异
【6月更文挑战第20天】在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据半壁江山。本文将深入探讨这两大操作系统在开发过程中的主要区别,包括编程语言、开发工具、用户界面设计哲学、系统架构以及市场分布等方面。通过对这些关键差异的分析,旨在为开发者提供一份实用的指南,帮助他们在面对项目决策时,能够更加明智地选择合适的平台,并针对特定平台优化他们的应用。
|
1天前
|
开发工具 Android开发 iOS开发
探索安卓与iOS开发的差异:从工具到用户体验
【6月更文挑战第20天】在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据半壁江山。本文将深入探讨这两个操作系统在开发环境、编程语言、用户界面设计以及性能优化等方面的关键差异。我们将通过比较分析,揭示各自平台的独特优势和面临的挑战,为开发者提供决策参考,并为最终用户提供更深层次的用户体验洞察。
|
3天前
|
Java Android开发 Swift
探索Android与iOS开发的差异:平台选择对项目成功的影响
【6月更文挑战第18天】在移动应用开发的广阔天地中,Android和iOS两大平台各据一方,它们在市场份额、用户群体及开发环境上各有千秋。本文将深入分析这两个操作系统的开发差异,探讨如何根据项目需求选择合适的平台,并讨论跨平台解决方案的可行性与挑战。我们将通过实际案例,揭示平台选择对项目成功的关键性影响,为开发者提供决策支持。
|
22小时前
|
jenkins 持续交付 开发工具
Android使用Jenkins打包自动维护sdk版本号
Android使用Jenkins打包自动维护sdk版本号
4 0
|
1天前
|
API 开发工具
抖音sdk,抖音开发api接口
抖音sdk,抖音开发api接口
|
1天前
|
Android开发
Android Gradle开发—脚本实现自动打包后复制一份APK文件,并修改APK名称,到指定目录作备份
Android Gradle开发—脚本实现自动打包后复制一份APK文件,并修改APK名称,到指定目录作备份
9 0
|
1天前
|
安全 Android开发 iOS开发
探索安卓与iOS开发的差异:平台特性与用户体验的对比分析
移动应用开发的两大阵营——安卓与iOS,各自拥有独特的开发环境、用户群体和市场定位。本文将深入探讨这两个操作系统在应用开发过程中的主要差异,包括编程语言、开发工具、用户界面设计、性能优化、安全性考量以及发布流程等方面。通过比较分析,旨在为开发者提供跨平台开发的见解和策略,以优化应用性能和提升用户体验。
6 0
|
2天前
|
Java Linux 开发工具
由" failed to run the android sdk manager"引起的一系列问题 android
由" failed to run the android sdk manager"引起的一系列问题 android