如何更好地开发一个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 开发者峰会