安卓开发中,什么样的功能适合抽取成 Library?
我们都知道如果将所有的功能都写成 Library,那么我们在编写应用程序的时候就可以快速便捷的写出想要的功能,因为这些已经事先都实现过了,这样在写代码的时候就可以迅速的将 Library 依赖到我们的项目里。
然而在通常的情况下现实和期望的总是相差很大,在使用 Library 的过程中可能会出现各种各样的问题,这时候我们第一个要问的问题就是,这样的功能应该是一个Library 吗?相信大家在团队开发的时候都会遇到类似的问题。
下面有一些建议能够帮助我们来决定什么样的功能能写成一个 Library ,什么样的不能。
有没有另一个地方使用相同的功能?
首先,相同的功能有没有在另一个地方使用过,不管我们谈论在UI界面,还是通过实用工具来帮助你完成某些任务时,在将这些功能从代码里抽出 Library 的时候都要考虑一下相同的功能是否在其他的地方使用过,这个很重要。
如果其他地方没有使用过相同的功能,也别担心,为了解决问题可以针对该问题编写出一个解决方案,因为很有可能在以后会有类似的功能需要实现,这样就可以将这一个功能做成一个 Library 了,这样做也可以提升我们对代码的熟练程度。
有没有其他的 Library 已经实现了?
第二,我们要看看是否已经有开源的 Library 已经实现了我们需要的功能,是否确保我们不是在重塑别人已经造好的轮子,如果我们恰巧碰到了一个质量也不错也能解决我们问题的 Library,这不是一个节约自己时间的很好的机会吗?
如果你遇到了一个类似的开源 Library 但是并不能很好的解决问题,也可以和作者进行联系看看对方为什么没有实现,或者是其他的原因,这样我们就可以 fork 这个项目,并把我们的需求功能增加上,这样我们就对这个开源项目做了自己的贡献了。
功能是否真正一致?
很多时候在开发新特性的时候,我们感觉上在很多的地方都使用到了这样的工能,但其实仔细看的话,在不同的地方使用可能会有一些细节上的不同,这时候我们就要考虑这些细节问题,不能仅在大体功能上一样就抽取出一个 Library ,这样的问题不应该被忽视,不然就相当于起步的时候就走弯路了。
所以我们在将在使用库文件或者将要创造自己的库文件时,一定要问一问自己,是够这样的功能做成 Library 之后真正的帮我们节省了时间。
OneAPM Mobile Insight以真实用户体验为度量标准进行 Crash 分析,监控网络请求及网络错误,提升用户留存。访问 OneAPM 官方网站感受更多应用性能优化体验,想阅读更多技术文章,请访问 OneAPM 官方技术博客。
本文转自 OneAPM 官方博客
安卓开发中,什么样的功能适合抽取成 Library?的更多相关文章
- Android安卓开发中图片缩放讲解
安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们 ...
- 安卓开发中使用Genymotion模拟器
在安卓开发中,运行和调试自己所写的安卓程序需要用到模拟器 在一般情况下 是直接在这创建一个模拟器,但是这种自带的模拟器运行效率不佳,而且启动时间漫长 所以,我们可以换一款安卓模拟器 Genymotio ...
- EBS OAF开发中怎样实现功能页签(Global Tab)
EBS OAF开发中怎样实现功能页签(Global Tab) (版权声明.本人原创或者翻译的文章如需转载.如转载用于个人学习,请注明出处.否则请与本人联系,违者必究) 功能页签的实现不须要不论什么编码 ...
- 【Android】安卓开发中的布局与事件
[Android]安卓开发中的布局与事件 1.Android Studio下载配置 非常简单的百度然后点击下载安装就好了.注意的是,本来我是打算使用评价还不错的Genymotion这个软件来充当虚拟机 ...
- 深入理解iOS开发中的BitCode功能
前言 做iOS开发的朋友们都知道,目前最新的Xcode7,新建项目默认就打开了bitcode设置.而且大部分开发者都被这个突如其来的bitcode功能给坑过导致项目编译失败,而这些因为bitcode而 ...
- 安卓开发中Spinner控件的使用
在安卓手机应用开发中,Spinner对象常用方法有以下五种. 用法 1 :以资源方式,静态展示 Spinner 选项 用法 2 :以代码方式,动态展示 Spinner 选项 用法 3 :同时显示图片和 ...
- iOS开发中WiFi相关功能总结
http://www.cocoachina.com/ios/20160715/17022.html 投稿文章,作者:Haley_Wong(简书) 查漏补缺集是自己曾经做过相关的功能,但是重做相关功能或 ...
- 非常不错的android应用开发详解在安卓开发中
我们在苹果开发中,总会看到XCode,Interface Builder,Object-c这如此入耳入随的单词,但往往多数人在认为XCODE看着简单,InterfaceBuilder好似操作, 而Ob ...
- 安卓开发中strings.xml的使用
为了使用方便也是为了代码规范化,我们都将文字信息放在res-values-strings.xml中, 因为开发中需要用到将文字的换行,百度了一下,可以将文字段信息直接在strings.xml文件中换行 ...
随机推荐
- hdoj1325 Is It A Tree?
Is It A Tree?题目链接 题意: 多组测试数据, 每组数据有多个数对, 表示一条有向边(即第一个数是第二个数的父节点), 以 0,0 为一组测试数据结束标志.当输入-1,-1时测试结束. 从 ...
- MVC小系列(十八)【给checkbox和radiobutton添加集合的重载】
mvc对DropDownListFor的重载很多,但对checkbox和radiobutton没有对集合的重载 所以该讲主要针对集合的扩展: #region 复选框扩展 /// <summary ...
- Linq 的IQueryable和IEnumerable方式
IEnumerable方式: public IEnumerable<WebManageUsers> GetWebManageUsers(ISpecification<WebManag ...
- c语言学习之基础知识点介绍(十六):文件操作
一.文件的分类 1.文本文件:打开之后能看得懂的文件 2.二进制文件:打开之后看不懂,类似乱码之类的文件(视频,音频打开之后,能看.听,是应为电脑中装有播放器,播放器中含有解码器). 二.操作文件的步 ...
- temporary
private void OnAttendeeConnected(object pObjAttendee) { IRDPSRAPIAttendee pAttendee = pObjAttendee a ...
- android中实现“再按一次退出”功能
首先,定义两次点击退出按钮的时间间隔:private static final long INTERNAL_TIME=2000; 然后,定义一个当前时间的变量:private long exitTim ...
- EF中使用语句 或存储过程 查询(转)
EF中使用语句 或存储过程 查询 1.无参数查询 var model = db.Database.SqlQuery("select* from UserInfoes ").ToLi ...
- Visual C++ 打印编程技术-编程基础
背景: windows产生前,操作系统(如DOS等)都不提供支持图像处理的打印机驱动程序,使得程序员为打印出图像,不得不针对使用的打印机 自己编写设备驱动程序,导致了大量的.不必要的重复开发. 随着w ...
- oracle11g不能导出空表
Oracle11g的数据库迁移,习惯性的用了exp/imp,然后在新的数据库发现,空表根本没有exp出来,然后查资料,发现了如下信息: ORACLE 11G在用EXPORT导出时,空表不能导出. 11 ...
- 初尝 Perl
本文将阐述以下几方面内容: 1.什么是Perl 2.Perl有什么用 3.Windows 下的Perl环境搭建 4.Perl 版Hello World 5.Perl 语法梗概 6.一些参考资料 什么是 ...