我们都知道如果将所有的功能都写成 Library,那么我们在编写应用程序的时候就可以快速便捷的写出想要的功能,因为这些已经事先都实现过了,这样在写代码的时候就可以迅速的将 Library 依赖到我们的项目里。

然而在通常的情况下现实和期望的总是相差很大,在使用 Library 的过程中可能会出现各种各样的问题,这时候我们第一个要问的问题就是,这样的功能应该是一个Library 吗?相信大家在团队开发的时候都会遇到类似的问题。

下面有一些建议能够帮助我们来决定什么样的功能能写成一个 Library ,什么样的不能。

有没有另一个地方使用相同的功能?

首先,相同的功能有没有在另一个地方使用过,不管我们谈论在UI界面,还是通过实用工具来帮助你完成某些任务时,在将这些功能从代码里抽出 Library 的时候都要考虑一下相同的功能是否在其他的地方使用过,这个很重要。

如果其他地方没有使用过相同的功能,也别担心,为了解决问题可以针对该问题编写出一个解决方案,因为很有可能在以后会有类似的功能需要实现,这样就可以将这一个功能做成一个 Library 了,这样做也可以提升我们对代码的熟练程度。

有没有其他的 Library 已经实现了?

第二,我们要看看是否已经有开源的 Library 已经实现了我们需要的功能,是否确保我们不是在重塑别人已经造好的轮子,如果我们恰巧碰到了一个质量也不错也能解决我们问题的 Library,这不是一个节约自己时间的很好的机会吗?

如果你遇到了一个类似的开源 Library 但是并不能很好的解决问题,也可以和作者进行联系看看对方为什么没有实现,或者是其他的原因,这样我们就可以 fork 这个项目,并把我们的需求功能增加上,这样我们就对这个开源项目做了自己的贡献了。

功能是否真正一致?

很多时候在开发新特性的时候,我们感觉上在很多的地方都使用到了这样的工能,但其实仔细看的话,在不同的地方使用可能会有一些细节上的不同,这时候我们就要考虑这些细节问题,不能仅在大体功能上一样就抽取出一个 Library ,这样的问题不应该被忽视,不然就相当于起步的时候就走弯路了。

所以我们在将在使用库文件或者将要创造自己的库文件时,一定要问一问自己,是够这样的功能做成 Library 之后真正的帮我们节省了时间。

OneAPM Mobile Insight 以真实用户体验为度量标准进行 Crash 分析,监控网络请求及网络错误,提升用户留存。访问 OneAPM 官方网站感受更多应用性能优化体验,想技术文章,请访问 OneAPM 官方技术博客。
本文转自 OneAPM 官方博客

安卓开发中,什么样的功能适合抽取成 Library?相关推荐

  1. 安卓开发中非常炫的效果集合

    安卓开发中非常炫的效果集合 这几天开发的时候,想做一些好看而且酷炫的特效,于是又开始从网上收集各种特效资源.下面给大家一些我喜欢的把,附代码,喜欢的看源代码,然后加到自己项目去把!! 一个开源项目网站 ...

  2. 安卓开发中的USB转串口通讯

    安卓开发中的USB转串口通讯 本文使用GitHub上开源的"hoho.android.usbserial"USB串口库.该库基于"Android USB Host API ...

  3. 豁然开朗篇:安卓开发中关于线程那些事(下篇)

    彻底搞懂线程这一块,看这一篇就够了 前言 本系列详细讲解并发的知识,从基础到底层,让大家彻底搞懂线程和锁的原理,当然里面会涉及到一些内存结构的知识,所以如果为了更好地阅读效果,也可以先去看以下这两篇: ...

  4. 火山安卓开发支付宝自动转账功能

    火山安卓开发支付宝自动转账功能 首先你们需要准备火山安卓的无障碍和Root开发框架 点击下载无障碍和Root开发框架 下载完成后,需要更改里面的Root模拟点击坐标的位置 更改位置后,点击编译(注意: ...

  5. 豁然开朗篇:安卓开发中关于虚拟机那些事

    彻底搞懂虚拟机这一块,看这一篇就够了 前言 作为豁然开朗篇的最终篇,本文要讲解的是虚拟机这块,因为在之前讲解内存与线程的时候,一直都会牵涉到虚拟机和指令集这块,所以,为了让大家再豁然开朗多一次,本文会 ...

  6. 安卓开发中的占位符在布局XML中使用

    安卓开发中的占位符在布局XML中使用 刚开始学Android,实现用户注册登录功能EditText使用占位符. == 普通的英文半角空格   ==   ==   == no-break space ( ...

  7. 安卓开发中,release安装包安装后,打开app后再按home键,再次点击程序图标app再次重新启动的解决办法

    安卓开发中,release安装包安装后,打开app后再按home键,再次点击程序图标app再次重新启动的解决办法 在开发中我们一般都是直接AS上的安装(Run)按钮,直接安装到真机或模拟器上进行测试, ...

  8. Android安卓开发中图片缩放讲解

    安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们 ...

  9. Android Studio安卓开发中使用json来作为网络数据传输格式

    如果你是在安卓开发中并且使用android studio,要使用json来作为数据传输的格式,那么下面是我的一些经验. 一开始我在android studio中导入那6个包,那6个包找了非常久,因为放 ...

  10. php gridview,PHP编程:yii2-GridView在开发中常用的功能及技巧总结

    <PHP编程:yii2-GridView在开发中常用的功能及技巧总结>要点: 本文介绍了PHP编程:yii2-GridView在开发中常用的功能及技巧总结,希望对您有用.如果有疑问,可以联 ...

最新文章

  1. 【C 语言】内存管理 ( 动态内存分配 | 栈 | 堆 | 静态存储区 | 内存布局 | 野指针 )
  2. 火狐已阻止载入混合活动内容“http://www.XXX/index.php?app=serviceac=authts=isauthurl=...
  3. 二、LInux系统安装Java
  4. android native crash的处理机制
  5. SAP Cloud for Customer的inscreen_dataflow处理方式
  6. C++学习之路 | PTA(甲级)—— 1064 Complete Binary Search Tree (30分)(带注释)(精简)
  7. 小视频app开发过程中关于转码问题的经验总结
  8. AES-GCM加密算法
  9. nancy中的本地化
  10. Cognos 优化-大数据量的报表
  11. c语言节点的作用,C语言试题
  12. 空气质量等级c语言编程,关于SDS011模块(空气中pm2.5及pm10)单片机c程序实现(链接附源码)...
  13. Rockchip官方开发板的Android固件下载地址汇总
  14. 一款产品经理很好用的产品原型Axure配合软件CoDesign ,可多人协作,可加密分享,可评论,可访客预览。
  15. saas-export项目-系统日志管理-系统日志AOP配置
  16. 18个公认的 世界顶级UI开源框架汇总
  17. 2022年艺术品和古董投资策略研究报告
  18. 基于Pxa270和Qt图形界面技术的人脸识别与密码电子锁的门禁系统
  19. 从零开始学python的第16天
  20. 我身边的中国教育之怪现象 (【小李木耳】2011年7月29日)

热门文章

  1. PL/SQL Developer 8注册码
  2. PyMining-开源中文文本数据挖掘平台 Ver 0.1发布
  3. 学习python: 2.x 和 3.x的区别
  4. java的socket编程---telnet客户端的实现
  5. Toontrack Superior Drummer for Mac(鼓音乐制作工具)
  6. Mac小知识——MAC电脑如何查看IP
  7. Android中保存网络图片到SD卡
  8. 设计模式入门-单例模式
  9. Linux的学习之路grep命令
  10. /usr/bin/ld: cannot find -lstdc++ -lz问题