标题有点晃眼,本次分享是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

码农人生——从未学过Android如何开发Android App 案例讲解-第002期案例相关推荐

  1. 码农人生-如何快速使用从未学过的语言实现项目开发-第002期博文

    如果你遇到过需要使用从未学过的语言去实现业务需求,或者你想快速入门一门新的语言,这篇文章值得你阅读参考.本篇主要讲述类似场景的方法论和我自己的实践故事,大神可以绕着跑了. 1.那些应急上马又不得不上的 ...

  2. android agps,Android应用开发Android GPS ——AGPS源码分析及配置

    本文将带你了解Android应用开发Android GPS --AGPS源码分析及配置,希望本文对大家学Android有所帮助. " Android Framework GPS --AGPS ...

  3. android ble 设备扫描程序,Android应用开发Android 7.0 BLE scan 问题:程序无错但扫描不到BLE设备...

    本文将带你了解Android应用开发Android 7.0  BLE scan 问题:程序无错但扫描不到BLE设备,希望本文对大家学Android有所帮助. < 最近在做毕设,需要几周内从头学起 ...

  4. android studio socket 失败,Android应用开发Android Studio建立Socket连接失败解决方法

    本文将带你了解Android应用开发Android Studio建立Socket连接失败解决方法,希望本文对大家学Android有所帮助. < Android Studio建立Socket连接失 ...

  5. android落下动画,Android应用开发android 购物车小球掉落动画

    本文将带你了解Android应用开发android 购物车小球掉落动画,希望本文对大家学Android有所帮助. 先贴效果图 对自定义View小红球的绘制 public class BallView ...

  6. android baseactivity,Android应用开发Android通过BaseActivity获取到当前启动的Activity名称...

    本文将带你了解Android应用开发Android通过BaseActivity获取到当前启动的Activity名称,希望本文对大家学Android有所帮助. < 在BaseActivity的on ...

  7. android view 点击变暗,Android应用开发Android ImageView点击变暗效果

    本文将带你了解Android应用开发Android ImageView点击变暗效果,希望本文对大家学Android有所帮助. < 自定义ImageView: 在ImageView中setPres ...

  8. android 防止重复启动app,Android应用开发Android 防止启动页面(SplashActivity)被多次启动...

    本文将带你了解Android应用开发Android 防止启动页面(SplashActivity)被多次启动,希望本文对大家学Android有所帮助. 话不多说直接上代码: @Override prot ...

  9. android studio获取数字签名,Android应用开发Android Studio数字签名打包apk图文步骤教程...

    本文将带你了解Android应用开发Android Studio数字签名打包apk图文步骤教程,希望本文对大家学Android有所帮助. Android Studio数字签名打包release版apk ...

最新文章

  1. 计算机思维采用抽象和分解,凤凰机器人----什么是计算思维?凤凰机器人的编程课中是如何体现它的?...
  2. JS滚轮事件(mousewheel/DOMMouseScroll)了解
  3. LINUX 使用tcgetattr函数与tcsetattr函数控制终端五
  4. Android APK反编译就这么简单 详解(图文详解)
  5. 设计模式之单例设计模式(饿汉式)
  6. MYSQL常用函数以及分组操作
  7. C#基础-应用程序域
  8. 每天6亿人在看《延禧攻略》?大数据告诉你哪家视频网站VIP值得买(附代码)
  9. python getchar,Linux C编程学习:getchar()和getch()
  10. CIO启示:转向数字业务为传统IT带来颠覆性影响
  11. CSS 实现必填项前/后添加红色星号
  12. html如何实现页面懒加载,浏览器HTML自带懒加载技术
  13. 预测模型| 2. Nomogram文献抄读 (2): 如何建立和解读癌症预后列线图
  14. 卷积神经网络(CNN)与深度卷积神经网络(DCNN)
  15. ScreenToClient和ClientToScreen
  16. 9. Go复合类型-数组
  17. if or函数套用_5个IF函数操作,让你轻松掌握条件判断和嵌套运用
  18. 计算机科学与技术真的会掉头发吗,大学里容易“掉头发”的3个专业,为了防秃头,大家慎重报考!...
  19. dell电脑 驱动下载地址
  20. openCV5-Threshold and Mask

热门文章

  1. U3D-LookAt插值动画
  2. 罗森伯格成功布线中国海关博物馆
  3. logic demonstration process in the English debate system
  4. index.html example demonstration
  5. 【C++拾遗】 从内存布局看C++虚继承的实现原理
  6. mysql内存不断被占用,导致每隔一个多月就自动重启,修改数据库配置后,问题解决...
  7. 2.18-2.20 特殊权限和软硬链接
  8. 政府安全资讯精选 2017年第六期 车联网和移动安全可能成为未来监管重点
  9. 《精益软件度量——实践者的观察与思考》—第1章1.1节精益软件开发的度量体系...
  10. Eclipse启动之一:外壳程序(百度空间迁移)