Android SDK 开发应该注意哪些?,这些面试官常问的开发面试题你都掌握好了吗

在我们的开发过程中,也出现由于跨端之间的逻辑有差异导致客户在 Android 和 iOS 上体验不一致的问题,同时也会带来额外的支持工作。

所以对于涉及到多个端的需求设计,一定要进行详细的沟通和确认,防止出现接口命名和实现不一致的情况。

4. 尽量不依赖第三方库

随着开源的普及,GitHub 上有很多经典的开源项目供开发者使用。对于 App 开发者,会经常使用到开源项目,比如网络请求 OkHttp、图片加载 Glide 等等。但是在 SDK 的开发中,一般的原则是尽量避免使用开源项目库。主要有以下几点原因:

  • 原因是为了避免与调用方由于使用相同的库引起的冲突,增加调用方集成的工作量,降低集成方的体验。

  • 开源库的不断更新,所以 SDK 需要及时保持更新,会增加额外的维护的工作量。

  • 由于引入开源库,出现问题排查困难。

5. SDK 包尽量小

SDK 包一定要小而精。

小是指包的体积要尽可能的小。避免造成接入方的 App 增加很大,不然会引起接入方的不满,甚至下架。

精是指功能要专注。比如我们的 SDK 是用于埋点的,那里面设计提供很多常见的工具类显然是不合适的。

6. 兼容性

兼容性是每个开发者都会遇到的问题。在 SDK 开发中更要保证新版本对于旧版本的兼容。常见的兼容性问题分为两类。

新老接口兼容

一般出现接口兼容性的问题主要是由于最初需求考虑不完善,导致后面进行方案优化时引起接口的变更,使之前的接口成为历史的老大难问题,最终造成删除难度大。

新功能兼容性

这里的兼容性问题分为两个方面:接入新功能的 App 和未接入新功能的 App。举个例子,当初我们 SDK 适配 OAID 的方案时,由于需要使用 MSA 提供的集成包才能获取,但是在 SDK 中一般是不轻易集成一个第三方的库,所以在设计这个方案时,就需要让接入方自己集成库,SDK 中提供获取的代码逻辑。

最终在确定开发方案时,就需要考虑到一部分接入方使用了该功能,需要保证该功能正常读取。一部分接入方没有使用到该功能,要确保无异常出现。一般这种兼容性问题会决定开发方案的技术实现。

3.集成与维护


3.1 SDK 集成

集成方式要多样同时灵活方便。比如对于 Android 来说,我们提供通过maven、gradle 依赖引入等方式,也是推荐的集成方式。但是对于一些接入方由于网络的限制,无法直接依赖 maven,这里就需要提供 aar 包或源码来集成。

3.2 集成指南

对于 SDK 的集成和使用,以及版本更新内容和 API 接口介绍,一定要准备比较完善的用户接入指南。比如我们的 SDK 接入指南分为:

基本使用

常见问题

高级应用

插件配置

尽管根据经验来看,有些开发者没有看文档的习惯,但是一份完整的指导文档还是非常有必要,它可以节省很多集成的成本和时间。

同时文档要注意合理的规划设计,避免一份文档内容太多,造成阅读困难。对于使用性的部分,最好有示例代码进行展示。

3.3 完备的测试报告

在实际的接入过程中,有很多接入方需要提供相关的性能测试说明,这部分的内容需要及早准备。测试报告的工作可以研发和测试一起协助进行输出,最终方便后续的支持工作,降低维护成本。

4.开发经验


4.1 不做想太多需求

在最初开发 SDK 时,经常会由客户的一个简单需求扩展很多需求,导致最终增加了多个接口,尽管看似 SDK 非常灵活,但是多出来的接口增加了很多维护成本。

曾经我们做过一个开启 Fragment 名称采集的需求,客户提出的需求是通过文件配置,然后 SDK 进行读取。在实施的过程中就出现很多想太多。

  • 如果有别的客户不想通过配置文件,想使用接口怎么办?

  • 如果用户想删除配置文件中已配置项怎么办?

  • 如果客户想恢复忽略的配置怎么办?

这些想太多的需求,会增加很多额外的工作和交付成本,所以在 SDK 开发中一定要避免想太多的需求。

4.2 配置项不提倡提供读取方法

在 SDK 中经常会有很多初始化开关配置接口,这类接口一般是暴露 set 方法让用户去设置,常见在初始化一次性配置,所以这类配置项一般就不需要提供 get 方法,防止接口太多。

总结


目前就想到这么多内容,欢迎交流,后续有更好的想法积极补充。

往期回顾:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

感谢您的阅读,在文末给大家准备一个福利。本人从事Android开发已经有十余年,算是一名资深的移动开发架构师了吧。根据我的观察发现,对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

所以在此将我十年载,从萌新小白一步步成长为Android移动开发架构师的学习笔记,从Android四大组件到手写实现一个架构设计,我都有一一的对应笔记为你讲解。

当然我也为你们整理好了百度、阿里、腾讯、字节跳动等等互联网超级大厂的历年面试真题集锦。这也是我这些年来养成的习惯,一定要学会把好的东西,归纳整理,然后系统的消化吸收,这样才能极大的提高学习效率和成长进阶。碎片、零散化的东西,我觉得最没有价值的。就好比你给我一张扑克牌,我只会觉得它是一张废纸,但如果你给我一副扑克牌,它便有了它的价值。这和我们收集资料就要收集那些系统化的,是一个道理。

最后,赠与大家一句诗,共勉!

不驰于空想,不骛于虚声。不忘初心,方得始终。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

的,是一个道理。

[外链图片转存中…(img-RK75h0Ob-1712342328316)]

最后,赠与大家一句诗,共勉!

不驰于空想,不骛于虚声。不忘初心,方得始终。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 26
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值