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

这个阶段前前后后大概天的时间。

2.对于目标业务需求的分析


主要是技术点和架构,我们的客户端是以信息类为主的,跟我上篇提到的《Ios保险TPA客户端》的分析点基本是一致的,如果信息管理系统可以叫做操作数据库的系统,那么此类信息管理类客户端可以叫做操作接口API的应用。除了一些基本的界面事件,剩下的就是与服务器接口的操作交互。

此步骤学习方法
1.分类 我分析的通常是信息管理类、工控客户端等
2.分层分析,界面层、后台代码事件、服务层的业务逻辑
3.功能分析,写出主要由哪些功能组成,有哪些关键技术

由于这次的软件规模要大于我上次的《Ios保险TPA客户端》我简单列出本次客户端的技术要点

1).UI事件操作、跳转、本地缓存、嵌入H5

2).网络操作post、get,Json的序列化与反序列化

3).上传图片(多图上传)

4).集成支付宝、微信支付、其他支付方式需要考虑扩展性

5).LBS定位、地图的嵌入

6)功能上需要做模块化,就是可增加减少模块(我的模块包括体检、专家特许门诊、海外医疗、网上药店等等)

因为本次我的终点是对android客户端实现基础的架构,和具体的实现,后面则交给同事去继续开发。我的侧重点则在于架构。

周的时间,实际上花多少时间取决于具体看业务项目的体量和你的经验。

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代码到项目中来

周时间,跟第二点是有部分时间是重叠的。

4.项目编码阶段


完成上面的几个阶段,实际上编码工作就简单了,架构和基础的脚手架做的好的话,剩下的就是敲代码、解决细节问题。

这个项目实际上后面不是开发,具体是同事继续开发,我只是写了几个功能点,然给他讲解如何写。具体时间就贴出来。

5.上线


android主要是碎片化测试,兼容性测试,我们当时通过网上在线测试服务实现不同机型测试。测试完后就进行了上线,总体反馈还是不错,有些bug,后期陆陆续续修改了。

希望你喜欢上面的分析,有什么问题可以直接留言交流谢谢。

所谓学以致用,我曾经学过的,那些没用过的技术基本忘光。下一期我将整理下技术人在互联网变现的内容,尽请期待。

完!

往期博文


01.码农人生-作为码农的你如何挣钱-记2018年总结

02.码农人生--千里之行始于足下--如何执行我的新年的计划--第001期博文

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

码农人生——从未学过Android如何开发Android App 案例讲解-第002期案例的更多相关文章

  1. android studio 开发android app 真机调试

    大家都知道开发android app 的时候可以有2种调试方式, 一种是Android Virtual Device(虚拟模拟器) ,另一种就是真机调试. 这里要说的是真机调试的一些安装步骤: 1. ...

  2. Android Studio开发Android应用如何签名

    1.使用jdk自带的工具生成keystore 使用cmd命令行进入到jdk的bin目录(比如:C:\Program Files\Java\jdk1.7.0_01\bin) 运行如下命令: C:\Pro ...

  3. 用Android Studio 开发Android应用

    目前AndroidStudio已经到了1.2版本了,我用了下,觉得还蛮好的,有些自动生成的资源,它会自动帮你管理.下面开始列一下,我的开发环境搭配.在开始前,你得有个VPN,可者代理.嗯.不然你下不了 ...

  4. Android BLE开发——Android手机与BLE终端通信初识

    蓝牙BLE官方Demo下载地址:   http://download.csdn.net/detail/lqw770737185/8116019参考博客地址:    http://www.eoeandr ...

  5. Android多媒体开发-- android中OpenMax的实现整体框架

    1.android中用openmax来干啥? android中的AwesomePlayer就 是用openmax来做(code)编解码,其实在openmax接口设计中,他不光能用来当编解码.通过他的组 ...

  6. Android Studio开发Android问题集【持续更新】

    问题一:emulator:ERROR:This AVD's configuration is missing a kernel file!! 答:打开Android SDK Manager,查看相应的 ...

  7. [Hybrid App]--Android混合开发,Android、Js的交互

    AndroidJs通信 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !imp ...

  8. Android NDK开发 Android Studio使用新的Gradle构建工具配置NDK环境(一)

    本文主要讲述了如何如何在Android Studio使用新的Gradle构建工具配置NDK环境,现在把相关的步骤整理出来分享给Android程序员兄弟们,希望给他们在配置NDK环境时带来帮助. 从An ...

  9. 吴裕雄--天生自然Android开发学习:1.2.2 使用Android Studio开发Android APP

    1.下载Android Studio 官网下载:Android Studio for Window ... :http://developer.android.com/sdk/installing/s ...

随机推荐

  1. 小技巧,把Markdown文本发布到微信公众号文章

    估计很多人都是这样,平常工作在github,等到有成果要发布,又要写微信公众号. github用Markdown,微信公众号,至少截止今天,还是沿用富文本的方式.不是说富文本不好,但每次精心撰写的内容 ...

  2. 带着新人学springboot的应用10(springboot+定时任务+发邮件)

    接上一节,环境一样,这次来说另外两个任务,一个是定时任务,一个是发邮件. 1.定时任务 定时任务可以设置精确到秒的准确时间去自动执行方法. 我要一个程序每一秒钟说一句:java小新人最帅 于是,我就写 ...

  3. 【深度学习与TensorFlow 2.0】卷积神经网络(CNN)

    注:在很长一段时间,MNIST数据集都是机器学习界很多分类算法的benchmark.初学深度学习,在这个数据集上训练一个有效的卷积神经网络就相当于学习编程的时候打印出一行“Hello World!”. ...

  4. [二十]JavaIO之StringReader 与 StringWriter

    功能简介 还记得前面说过的CharArrayReader 和 CharArrayWriter吗? CharArray 是数据源 CharArrayReader 是读,  从一个CharArray 中读 ...

  5. JDK动态代理深入理解分析并手写简易JDK动态代理(上)

    原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2019-01-03/27.html 作者:夜月归途 出处:http://www.guitu ...

  6. Flask入门第三天

    一.数据库操作 1,orm orm(object-Relation Mapping),对象-关系映射,主要实现模型对象到关系数据库数据的映射. 优点: - 只需要面向对象编程, 不需要面向数据库编写代 ...

  7. 用C#写的一个OA类的APP, ios、Android都能跑,有源代码

    这是一个用C#写的OA类APP,功能包含请假.报销.部门管理.签到.IM.文件上传等功能 话不多说,先看视频 视频地址:http://v.youku.com/v_show/id_XMzUwMjQ1Mz ...

  8. 杭电ACM2003--求绝对值

    求绝对值 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  9. 简述ADO.NET(一)

    ADO.NET 宏观定义 传统ADO主要针对紧密连接的客户端/服务器端系统,而 ADO.NET考虑到了断开连接式应用并且引进了 Dateset 它代表任意数量的关联表,其中每个表都包含了行和列的集合的 ...

  10. Android开发过程中的坑及解决方法收录(六)

    1. file.listFiles 空指针异常 最近在弄个小项目,类似一个文件管理器,需要获得手机存储里的目录之后显示,但是运行过程中出现错误,搜索了资料,得出了以下的解决办法 问题产生的原因: an ...