专栏名称: 开发者全社区
分享和推送Java/Android方向的技术和文章,让你成为这方面的大牛,让你每天都成长一点。同时,我们也会邀请BAT的大牛分享原创!
目录
相关文章推荐
郭霖  ·  Android音视频基础能力之音频路由 ·  3 天前  
鸿洋  ·  系统Apk、普通Apk、core ... ·  2 天前  
鸿洋  ·  一波深入的Android 性能优化 ·  3 天前  
郭霖  ·  这可能是Android软键盘监听的最佳方案 ·  5 天前  
51好读  ›  专栏  ›  开发者全社区

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

开发者全社区  · 公众号  · android  · 2017-02-18 16:53

正文

相关阅读:

吊炸天!74款APP完整源码!

[干货]2017已来,最全面试总结——这些Android面试题你一定需要

Android 名企面试题及涉及知识点整理


来源:冯建 

http://www.jayfeng.com/2016/01/06/如何更好的开发一个Android应用/


面向开发者,开发主管,总监,CEO等。


经验之谈,比较杂乱,仅供参考。


项目定义


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


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. 细节决定成败


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

小结


两个字:落实!

看完本文有收获?请分享给更多人


欢迎关注我们,一起讨论技术,扫描和长按下方的二维码可快速关注我们。搜索微信公众号:JANiubility。

公众号:JANiubility