• 保存到桌面  加入收藏  设为首页
88必发官方唯一网站

开发常用工具和第三方库汇总

时间:2017-11-08 17:02:46  作者:admin  来源:工具盒  浏览:70  评论:0
内容摘要:  我听到很多人想要实现第一个库,我们难道不能用Async任务或原生的东西来做吗?Google觉得,如果市面上已经有一个解决方案了,他们就不想建立一个一模一样的竞品。他们在多个地方多次表达过这个想法。但是你应该知道,你还有一些别的选择。  库最有价值的地方在于可逆:你将库添加到你...

  我听到很多人想要实现第一个库, 我们难道不能用 Async 任务或原生的东西来做吗? Google 觉得,如果市面上已经有一个解决方案了,他们就不想建立一个一模一样的竞品。他们在多个地方多次表达过这个想法。但是你应该知道,你还有一些别的选择。

  库最有价值的地方在于 可逆 :你将库添加到你的应用程序中,之后也可以将其删除(没有任何开销)。随时都能拿出来。不是所有的东西都可以这样,但如果它可以的话,请把它做成一个库,而不是和你的应用终生绑在一起。

  一个更好的方法是在把你的库封装起来。如果你自己的类调用了库的方法,那么这样做就有着许多的好处,可以让使用者调用你自己的 API。例如,在某些情况下如果库返回异常,你想在 API 里截获它。你只用修改一个文件。有一个封装器让你的库更易用些。

  如果你正在做一个库,你的团队里面的某些人可能已经开始使用它了,他们知道该如何调用你的库,而不用你的封装。这个检查样式会在编译的时候抛出异常,或者在应用中当他们为连接类使用 import 语句时,提示他们“不要使用连接类,使用封装的 API”。你还会指出不要在这个特定文件上这样做。如果你不这样做,封装器用处就不大,因为人们最终会绕过它。

  另外, 对第三方库做单元测试 也是一个好主意。你需要这些测试,如果你正在使用 Joda-Time 这样的库,你可以使用单元测试来了解它奇怪的边界情况。你甚至可以通过单元测试来了解它的工作原理。你可能会发现,如果你不用 add day 方法而是给今天加一的话,你可能会出现二月三十日的情况。

  在 Android 的世界中,我们必须考虑 函数数量(64,000) 。( 我在说第三方函数库的函数数量,它们会被精简掉 )。有一个网站[函数数量](),你可以上传你的库,Gradle 导入语句,然后它会告诉你这个库有多少个方法(这是件很棒的事情,特别是当你想使用该库的时候)。使用 ProGuard,许多库将会变得很小。这个方法使你只会包含库中被引用的部分,但是在使用库之前是很难预测你将要使用的内容的。有些时候你可以这样做,“我知道我只使用库的这个方法”,看看它有多小。

  Dex函数计数 会在你的 gradle 里,你也可以在你自己的编译系统上这么做,你应用程序中函数的总个数。 Apk-method-count 是一个很棒的工具。你可以拖动你的 APK,看看它有多少个方法(63,905 个方法,我喜欢生活在 64,000 的边缘)。在 MultiDex 出现之前,你添加的每个方法仍将减慢那些旧设备的启动时间。虽然你的船已经航行,不受 MultiDexing 的,十万种方法和十二万种方法之间还是有差别的。更少的方法总是有好处的。 Instagram 就是以 从库 中提取所需的东西而不是使用完整的库而闻名的。这是一个很好的实践,如果你有精力这样做的话。

  除此之外,我还关注 流行的成熟库 。每个月(特别是如果你订阅了 Reddit Android 开发者),你将会听到最新,最酷的库。库越成熟,就会越受欢迎。与现有的项目一起工作,兼容性问题就越少。无论何时遇到问题,stackoverflow 那里都会有答案。


相关评论