

SDK 开发最佳实践之一:为你的 SDK 增加 No-Op 版本
source link: https://kvh.io/cn/sdk-noop.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

SDK 开发最佳实践之一:为你的 SDK 增加 No-Op 版本
笔者在开发和维护 Bugtags SDK 的一年多时间里面,趟过了不少坑,走了不少弯路,也积累了不少经验。这个 SDK 开发最佳实践系列,就是分享经验教训,帮助读者打造一款跟 Bugtags 这样快速成长的 SDK。
SDK 的使用场景
站在用户的角度来看,引入一个 SDK 可能会带来几方面的问题: - 包增大 - 可能不稳定 - 安全性问题
对于一些 SDK,产品形态是允许在测试阶段开启,上线移除的,例如性能调试工具,测试工具等。
区分版本方案
最简单的,就是手动注释代码,应用中如果只使用了这个 SDK 的一个 API,那还好,如果用到了多个,分布在不同的文件中, 这事儿就麻烦了。很不优雅。
最优雅的方案
思考一下这个需求
- 应用分为 debug/release 版本
- 无痛切换,最好能够实现自动化
大部分的编译系统,例如 Gradle/Maven 都可以区分版本,引入不同的包。利用这个特性,我们可以实现一个 No-Op SDK。
这个 SDK 具有如下特点:
- 具有正式 SDK 的所有可以被外部引用的类
- 具有正式 SDK 的所有对外 API
- 足够的精简
- 提示正在使用 No-Op SDK
最后的结果
以 bugtags 为例:
1
2
debugCompile 'com.bugtags.library:bugtags-lib:2.0.0'
releaseCompile 'com.bugtags.library:bugtags-noop:2.0.0'
以 leakcanary 为例:
1
2
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
如果你是一个 SDK 的使用者,即便官方没有提供 No-Op 版本,你完全可以自己写一个。
No related post.
Recommend
-
98
-
69
为你的哔哩哔哩 PC 首页增加「猜你喜欢」模块 - 为你的哔哩哔哩 PC 首页增加「猜你喜欢」模块 - NEXT
-
65
Swish - 为你的 Mac 增加更多的的手势操作,适合触控板重度使用者 - NEXT
-
22
1. 前言 最近在折腾微信支付,证书还是比较烦人的,所以有必要分享一些经验,减少你在开发微信支付时的踩坑。目前微信支付的...
-
6
为你心中的最佳IT图书投票,为好书点赞!为你心中的最佳IT图书投票,为好书点赞! 活动介绍: 为了更好的促进大家学习,为用户推荐出更加优质的图书内容。CSDN携手13家出版社联合举办2020年『最佳IT图书』评选活动...
-
10
外媒点评OPPO Find X3 Pro:年度最佳屏幕之一 2021-03-29 14:47:58 [ 中关村在线 原创 ] 作者:Young | 责编:张菁楠
-
8
投诉量5年增加14倍,3千亿医美市场的冰与火,谁为你的“美丽”埋单? 专栏 野马财经 · 2022-03-16 01:54:11 阅 1.3w 医美,...
-
5
最近准备对项目生成 Change Log,然而发现提交格式不统一根本没法处理;so 后来大家约定式遵循 GitFlow,并使用 Angular 社区规范的提交格式,同时扩展了一些前缀如 hotfix 等;但是时间长了发现还是有些提交为了 “方便” 不遵循 Angular 社区规范的...
-
7
在 Android 12 中,Google 通过 Material You 为 Android 引入了一套基于壁纸取色的动态主题系统。我们只需更换一张喜欢的壁纸,系统界面和第三方应用便会根据选定的壁纸换上色彩风格一致的主题,不仅让用户的个性化定制需求进一步得到了满足,也让 Android 系统有了...
-
7
1080p 遊戲的最佳選擇之一,ASUS Dual GeForce RTX 4060 OC 8GB 顯示卡實測
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK