标题有点晃眼, 本次分享是 002 期博文的实践故事, 不会有任何代码, 也不会教别人 Android 如何开发, 类似博文已经有大批大批, 而且还会有陆陆续续的人写, 我写的文章, 主要是经验之谈, 希望总结出的一些方法论能够给你哪怕是一丢丢的启发, 我也是成就感爆棚.
这个项目大约是我 2016 年做过的第一个 Android 客户端, 对于 Android 客户端我个人不太喜欢开发, 在 2014 年那时候我有接触过类似项目, 但是没有去做.
业务场景是这样的, 当时公司做健康福利的方面的产品, 具体就是跟上游大厂谈他们的渠道, 然后打包服务卖给企业, 是 toB 的业务. PC 和 html5 开发很顺利, iOS 当时招聘了一个 (我主要更多的是架构, 管理工作),Android 客户端当时没有人员, 我们后端是 Net, 为了给公司节约成本, 我们决定让公司一小伙去转 Android 客户端编程.
入门全靠师傅带, 关键我们没有一个人会 Android 客户端编程, 我又跟员工夸下海口, 说夸语言编程其实很简单, 于是我就担任项目基本架构和初期版本的搭建, 也担任了师傅的角色. 因为之前顺利入坑了 iOS, 对于 Android 客户端我信心爆棚.
这里按照上一章节《码农人生 -- 如何快速使用从未学过的语言实现项目开发!》讲述的方法
1. 基本语法的了解
此步骤学习方法
1. 采用类比法, 就是与你熟悉的语言比较
2. 边看边练习
3, 定期总结出博客文章投放出来
由于 Java 的语法跟 C# 的语法很像, 感觉 C# 的设计是从 Java 那边来的灵感, 或者是一次升级, 对于 Java 的基本语法找了个简单的教程看了一遍, 记得当时是在谷歌搜索的教程. 花了半天时间做了些简单的事例, 实际上应用过程中还是有差异, 比如一开始总是把字符串的等号操作直接写成 ==, 而不是 equal, 就就是从 C# 转 Java 的 bug.
这个阶段前前后后大概 3 天的时间.
2. 对于目标业务需求的分析
主要是技术点和架构, 我们的客户端是以信息类为主的, 跟我上篇提到的《iOS 保险 TPA 客户端》的分析点基本是一致的, 如果信息管理系统可以叫做操作数据库的系统, 那么此类信息管理类客户端可以叫做操作接口 API 的应用. 除了一些基本的界面事件, 剩下的就是与服务器接口的操作交互.
此步骤学习方法
1. 分类 我分析的通常是信息管理类, 工控客户端等
2. 分层分析, 界面层, 后台代码事件, 服务层的业务逻辑
3. 功能分析, 写出主要由哪些功能组成, 有哪些关键技术
由于这次的软件规模要大于我上次的《iOS 保险 TPA 客户端》我简单列出本次客户端的技术要点
1).UI 事件操作, 跳转, 本地缓存, 嵌入 H5
2). 网络操作 post,get,JSON 的序列化与反序列化
3). 上传图片 (多图上传)
4). 集成支付宝, 微信支付, 其他支付方式需要考虑扩展性
5).LBS 定位, 地图的嵌入
6) 功能上需要做模块化, 就是可增加减少模块 (我的模块包括体检, 专家特许门诊, 海外医疗, 网上药店等等)
因为本次我的终点是对 Android 客户端实现基础的架构, 和具体的实现, 后面则交给同事去继续开发. 我的侧重点则在于架构.
这个阶段前前后后大概 2 周的时间, 实际上花多少时间取决于具体看业务项目的体量和你的经验.
3. 项目架构与关键技术
感谢这个时代, 那些具有严谨思维而又能够开源代码供学习者学习的人, 我第一步的计划就是从那些大的稳定的开源项目中把基础的架构扒出来. 当时我找到的是 OSChina, 因为之前开发 iOS 有接触过, 觉得 oschina 写的开源的还是可以的.
对于如何参考开源项目, 我的见解是如果是自己公司的项目, 开源项目则不要直接拿来用, 哪怕你一行一行代码复制, 你搬过来, 你自己知根知底. 如果是外单项目以赚钱为目的的, 那你就可以直接用.
此步骤学习方法
1. 分析哪种架构方式容易完成项目, 通常是三层架构
2. 找到类似开源项目或参考其他已有项目
3. 搭建脚手架项目, 实现关键技术
我主要参考了 oschina(https://www.oschina.net/app) 的地方, 具体源码在 ( https://gitee.com/oschina/android-app )
a. 程序目录架构 比如 ui 放 activity,bean 放实体类, adapter 放适配器等等.
b. 编写的主要风格, 比如命名风格, 规则等
c. 那些关键技术我直接 copy 代码到项目中来
这个阶段 2 周时间, 跟第二点是有部分时间是重叠的.
4. 项目编码阶段
完成上面的几个阶段, 实际上编码工作就简单了, 架构和基础的脚手架做的好的话, 剩下的就是敲代码, 解决细节问题.
这个项目实际上后面不是开发, 具体是同事继续开发, 我只是写了几个功能点, 然给他讲解如何写. 具体时间就贴出来.
5. 上线
Android 主要是碎片化测试, 兼容性测试, 我们当时通过网上在线测试服务实现不同机型测试. 测试完后就进行了上线, 总体反馈还是不错, 有些 bug, 后期陆陆续续修改了.
希望你喜欢上面的分析, 有什么问题可以直接留言交流谢谢.
所谓学以致用, 我曾经学过的, 那些没用过的技术基本忘光. 下一期我将整理下技术人在互联网变现的内容, 尽请期待.
完!
往期博文
01. 码农人生 - 作为码农的你如何挣钱 - 记 2018 年总结
02. 码农人生 -- 千里之行始于足下 -- 如何执行我的新年的计划 -- 第 001 期博文
03. 码农人生 - 如何快速使用从未学过的语言实现项目开发 - 第 002 期博文
来源: https://www.cnblogs.com/fishpro/p/10237255.html