Android应用开发流程总结

根据平时项目(不同类型的项目有不同的处理方式)开发情况总结,纯属经验之谈,仅供参考。

一、目的

流程的目的在于顺利完成项目。
项目的完成情况跟客户需求有关,或难或易,开发者能做的就是深入挖掘需求,细化工作量,开发前弄清细节,总比写完代码后反复返工好。
一个正常的项目应是逐步实现产品定义的功能,除此之外,还需要不断的优化架构,重构代码,提高产品质量,把好的产品辐射到好的测试,好的架构,好的实现,好的性能等等。

二、解决方案

一定要以自己的实际经验来总结和评估解决方案,并通过比较选择一个更好的解决方案。不能人云亦云,也不能满足于自己现有的成果。以下为我所运用各模块的解决方案:

2.1. 基本库选择

  • 搭架子 – 目前大多以Tab + Fragment为主
  • 异步加载图片 – UIL
  • 网络请求 – Retrofit+OkHttp+Rxjava、Volley
  • Json – Gson
  • 缓存机制 – robospice
  • 事件通信 – event bus
  • 内存检测 – leakcanary
  • 其他各种UI和功能类库

2.2. 服务

  • 测试平台 – Fir.im 蒲公英
  • 统计服务 – 友盟
  • 应用升级 – 百度
  • 推送服务 – 极光
  • 支付服务 – 支付宝、微信
  • 分享 – share sdk
  • 第三方登录 – 各大开放平台sdk
  • 网络调试 – Wireshark、tcpdump

2.3. 工程(不是商业盈利应用,比较少用)

  • 多渠道打包 – gradle flavor
  • 持续集成 – jenkins
  • APK安全 – Proguard, AndResGuard等

开发过程中要经常通过会议或面谈的形式,回顾和分析遗留问题,安排接下的计划,有效把握开发节奏,防止“放羊”的滋生。

三、持续优化

把一个项目做到可以满足需求的基本运行,对于开发者开说,只是第一阶段的成功:实现功能。

接下来你要面临的问题,很有可能会是一大波新的变化需求,性能低下,稳定性、兼容性等等,这就需要:持续的优化。

持续的优化,不仅能解决很多问题,而且能保证代码有效健壮的发展,这对开发者来说,尤为重要,谁都喜欢写更好的代码,都不喜欢改那些乱到掉渣的代码。

做项目评估的时候,考虑一下基本优化的工作量;迭代版本的时候,留一定的持续优化的工作量。

四、提高困难应对能力

项目经常碰问题点,分析原因其实很少是被技术问题卡住而是粗心大意,认为功能做完项目就好了,说明什么?只能说没经验,考虑的不全。
我们可以从多个方面着手拓展技术视野、提高动手能力、优化放错机制等等:

  • 关注社区动向:官方资讯,github, 技术博客(国内外,如CSDN、Stack Overflow),视频(51CTO、腾讯IT、慕课网、极客学院等);
  • 勤于实践:把别人的一些好的经验或者效果,动手实现,转化为自己的经验,甚至进一步升华成更好的成果;
  • 多参与项目:珍惜参加项目的机会,多参与,用行动改进,不做旁观者;
  • 善假于物:多学习一些工具git,linux,python,tcpdump等等,小工具,大用处;
  • 细节决定成败:成也细节,败也细节。会区分同类的不同点,能从小的地方改进,遇到困难沉着应付一个一个的攻克细节;
  • 落实:搭建一个自已的技术平台,书写自已的心得,经常回顾总结自已。

作为了一个码农,必须多阅读代码(特别是经典框架和架构),勇敢去研究不懂的代码,少做重复造轮子的事情。