如何高效率开发Android一个APP?

学习Android有段时间,最近想开发一个APP来巩固下学到的知识,想做到高效率开发。有几个问题要请教大家:

  • 如何去架构?网络,图片模块要怎样去合理设计?

  • 测试要怎样做?

  • 发布到市场的流程是怎样呢?

阅读 5.3k
4 个回答

我猜想题主是想开发一款APP来练练手,但有些开源库,框架之类不是很熟悉。刚好前几天在知乎回答过类似的问题,这里再补充下

网络模块

事件总线

依赖注入

图片模块

数据库模块

响应式编程

日志输出

测试相关

  • bugtags
    新一代的、专为移动测试而生的缺陷发现及管理工具

  • testin
    为移动测试而生

  • Emmagee
    网易出品的,是监控指定被测应用在使用过程中占用机器的CPU、内存、流量资源的性能测试小工具。

  • awesome-android-testing
    A curated list of awesome android testing libraries.

崩溃统计平台


架构设计

这个肯定得了解下MVC,MVP,MVVM还有设计模式这些,这里有几个开源项目推荐下

philm

Movie collection and information app for Android.
Github地址:https://github.com/chrisbanes/philm

SimpleNews

基于Material Design和MVP的新闻客户端
Github地址:https://github.com/liuling07/SimpleNews

GankDaily

A application show technical information every working days, use MVP pattern.
Github地址:https://github.com/maoruibin/GankDaily

SimplifyReader

Github地址:https://github.com/SkillCollege/SimplifyReader

NBAPlus

Github地址:https://github.com/SilenceDut/NBAPlus

PhotoNoter

Github地址:https://github.com/yydcdut/PhotoNoter

Meizhi

Github地址:https://github.com/drakeet/Meizhi


其他

leakcanary

检查内存泄露
Github地址:https://github.com/square/leakcanary

DebugDrawer

Android Debug Drawer for faster development
Github地址:https://github.com/palaima/DebugDrawer

ViewServer

Local server for Android's HierarchyViewer
Github地址:https://github.com/romainguy/ViewServer

blockcanary

A transparent ui-block detection library for Android
Github地址:https://github.com/moduth/blockcanary


APP内测,分发


PS:开源框架虽然好用,但最好要了解框架存在的一些bug和坑,遇到问题可以给作者提issue,一般这些有名的框架,作者都会很积极的回答。

另外推荐下自己的Android-Dev-Favorites,里面收集了Android开发的干货。

啰哩啰嗦写了这么多,希望能帮到题主。

我想题主之所以想这些问题是因为题主没有明确的需求,不知道要做一个怎样的APP,题主可以列一下自己的需求或目标,要把APP做成怎么样,我想到时就明白要怎样去架构了。没有明确的需求或目标,想到哪写到哪,是谈不上架构的。鉴于题主想做高效率开发,抛开架构不谈,以下是一些建议。
1、使用人家的轮子,网络方面,可以使用android-async-http-client、okhttp、volley,图片处理方面,可以使用picasso、UIL、fresco,这些都是比较成熟的开源框架,可以提高开发效率;
2、测试就没有多少需要说的了,功能、压力,都是比较基本的测试了;
3、市场发布是远期目标了,一般要到应用市场注册开发者账户,提供开发者身份证明,等待身份审核,提交应用,发布应用。各个应用市场都有各自的流程,大同小异。

工欲善其事必先利其器,工具利用好很重要,一个好的开发工具事半功倍,所以我们不仅要提供开发效率还要提高测试效率,自动化远程测试就显得尤为重要

新手上路,请多包涵

题主快学习 Kotlin 吧,包括 MVP,RxJava,这都是近几年 Android 开发圈子最潮流的东西,当然对开发效率的提高也不只一点半点:
Kotlin Base Framework

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏