Android -- 每日一问:如何设计一个照片上传 app ?

Posted Kevin-Dev

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android -- 每日一问:如何设计一个照片上传 app ?相关的知识,希望对你有一定的参考价值。

经典回答

把自己放在一个面试官的角度,自己先实现一次这个 App ,然后自己总结一下你在这次实现中需要哪些能力、需要注意哪些事项。最后,再回过头来看,如果你是面试官,你希望面试者怎么回答才算是符合你的标准的?

实现案例
说一下我的思路。先把需求整理一下,“如何设计一个照片上传的 App”,虽然题目只有简单的一句话,但我们要将它细化一下来看。

即然能上传,那就一定能浏览对吧,不然不太好确定上传成功以否(弹出上传成功的提示,而没有跳到浏览的界面,显然是不太友好且也不符合用户的习惯)。

即然能浏览,那就要有一个列表或网格(如Gallery)的样式进行,那么需要一些滑动之类的动画效果。那么为了配得起这些效果,界面的UI设计就不能太糟糕吧?

即然有列表了,那么就得有专门查看一张图片详情的界面。

我们把这些主要的需求罗列一下:

  • 可以浏览用户已经上传到服务器的图片;
  • 可以查看某张图片的详情;
  • 选择和编辑要上传的图片;(从本地或者摄像头获取图片)
  • 工作线程上传一张图片到服务器;

陷性的需求:

  • 框架的设计:UI和逻辑的分层设计,错误处理机制 (这点其实很重要)
  • 性能要求:列表要滑动顺畅,不会出现OOM
  • 应对需求变代的可扩展性:是否需要加入用户登录和注册?每张图片是否可以点赞或者添加评论?是否要加上保存和收藏图片功能?

相关的模块和涉及的技术点:

  • Retrofit做网络请求和解析(Gson);
  • Http文件上传的协义;
  • 图片浏览的性能优化或者遇到的问题:如图片库的加载和ListView的展示配合,RecyclerView瀑布流展示页面跳动等问题;
  • 框架的设计:UI和逻辑的分离问题;
  • 无网或网络异常时的处理;

你的朋友是不是也在准备面试呢?你可以把今天的题目分享给好友,或许你可以帮到他。

以上是关于Android -- 每日一问:如何设计一个照片上传 app ?的主要内容,如果未能解决你的问题,请参考以下文章

Android -- 每日一问:Activity的启动模式(launchMode)有哪些,有什么区别?

Android -- 每日一问:如何检测内存泄露,如何进行内存优化?

Android -- 每日一问:如何检测内存泄露,如何进行内存优化?

Android -- 每日一问:如何理解 Android 应用的进程?

Android -- 每日一问:如何理解 Android 中的 Context,它有什么用?

Android -- 每日一问:两个 Fragment 之间如何进行通信 ?