如何更好地开发一个Android应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更好地开发一个Android应用相关的知识,希望对你有一定的参考价值。

作为一名android开发工程师(http://www.maiziedu.com/course/android-px/,脑海中经常在想一个问题,如何更好地开发一个android应用?这个问题不仅是android开发工程师,比如总监、CEO等等都在想这样一个问题。面向开发者,开发主管,总监,CEO等。更好地开发一个android应用主要做到三个大点,就足矣。

项目定义

不同类型的项目当以不同的处理方式。

1. 项目型

该类型项目,重点在于完成项目,取决于客户需求,或难或易,开发者能做的就是深入挖掘需求,细化工作量,以表明服务态度,避免返工。

2. 产品型

该类型项目,重点在于开发一个好的产品,逐步实现产品定义的功能,除此之外,还需要不断的优化架构,重构代码,提高产品质量,把好的产品辐射到好的测试,好的架构,好的实现,好的性能等等。

下文将将基于产品型项目展开。

迭代开发

相对于大阶段布局,小步伐的迭代式开发更具灵活性,更能应付项目的变化因素。

1. 每日会议

通过每日会议的形式,回顾和分析昨天遗留问题,安排今天的计划,有效把握开发节奏,防止懒惰情绪的滋生。

2. 定义大版本和小版本

把核心重要的大更新,定义为大版本。把不核心或者辅助的更新,定义未小版本。
开发大版本的时候,舍弃一些不是必需的更新,放到后面的小版本上。
开发小版本的时候,完善之前大版本没完成的,同时优化代码,甚至添加一些小改动,增加一些小功能。

技术能力

除了上述宏观的把控,提高自身能力也格外重要。

1. 更好的解决方案

一定要以自己的实际经验来总结和评估解决方案,并通过比较选择一个更好的解决方案。
不能人云亦云,也不能满足于自己现有的成果,求真务实才能更进一步。
这里列举几个方面我所了解的解决方案:

1.1. 基本

· 搭架子 – 1. 目前以多Tab + Fragment为主,已成型; 2. 项目结构

· 异步加载图片 – UIL,Glide

· 网络请求 – robospice + google http client

· Json – jackson2

· 缓存机制 – robospice

· 自动更新 – lesscode

· 事件通信 – event bus, otto

· 数据库 – litepal

· 内存检测 – leakcanary

· 其他各种UI和功能类库

 

1.2. 服务

· 统计服务 – 友盟、百度

· 云存储服务 – 七牛

· 推送服务 – 极光,个推,小米

· 支付服务 – 支付宝、微信、银联、连连支付、现在支付、充话费、语音支付等

· 分享 – share sdk

· 第三方登录 – 各大开放平台sdk

1.3. 工程

· 多渠道打包 – gradle flavor

· 持续集成 – jenkins

· APK瘦身 – Proguard, AndResGuard, webp等

2. 持续优化的重要性

把一个项目做到可以满足需求的基本运行,对于开发者开说,说明你成功了,但是只是第一阶段的成功:实现。
接下来你要面临的问题,很有可能会是一大波新的变化需求,代码混乱,性能低下,错误异常率下不来等等,这就需要:优化,并且是持续的优化。
持续的优化,不仅能解决很多问题,而且能保证代码有效健壮的发展,这对开发者来说,尤为重要,谁都喜欢写更好的代码,都不喜欢改那些乱到掉渣的代码。
做项目评估的时候,考虑一下基本优化的工作量;迭代版本的时候,留一定的持续优化的工作量。

3. 困难挫折警示

经常碰到困难,经常被技术问题卡住,经常粗心大意 … …
说明什么?
要么太没经验,要么能力不足。
我们可以从多个方面着手拓展技术视野、提高动手能力、优化放错机制等等:

1. 关注社区动向
官方资讯,github, 技术博客(国内外),视频(慕课网、极客学院等)… …

2. 勤于实践
把别人的一些好的经验或者效果,动手实现,转化为自己的经验,甚至进一步升华成更好的成果。

3. 多参与项目
珍惜参加项目的机会,多参与,用行动改进,不做旁观者。

4. 善假于物
多学习一些工具git,linux,python,tcpdump等等,用的比较多的,最好能吃透一点(比如git),小工具,大用处。

5. 细节决定成败
成也细节,败也细节。会区分同类的不同点,能从小的地方改进,遇到困难沉着应付一个一个的攻克细节…

小结

两个字:落实!

 

 

以上是关于如何更好地开发一个Android应用的主要内容,如果未能解决你的问题,请参考以下文章

软件工程的实践项目课程的自我目标

软件工程的实践项目课程的自我目标

更好地适配大屏幕设备 | 2021 Android 开发者峰会

我如何更好地在 woocommerce rest api 中按类别对产品进行分组?

如何更好地处理 GPS 位置和 android

php开发小程序用啥框架