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

news/2025/1/15 15:38:31/

在这里插入图片描述

经典回答

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

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

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

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

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

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

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

陷性的需求:

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

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

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

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


http://www.ppmy.cn/news/6375.html

相关文章

Redis集群之AKF架构原理

当我们搭建集群之前,先要想明白需要解决哪些问题,搞清楚这个之前先回想一下单节点、单实例、单机有哪些问题? 单点故障:只有一台Redis的话,如果出现故障,那么整个服务都不可用缓存容量:单台Red…

还在手动发早安吗?教你用java实现每日给女友微信发送早安

摘要:教你如何用java实现每日给女友微信发送早安等微信信息。本文分享自华为云社区《java实现每日给女友微信发送早安等微信信息》,作者:穆雄雄 。 前言 据说这个功能最近在抖音上很火,我没有抖音,没有看到。 但是我…

【OpenFeign】【源码+图解】【五】创建FeignClient接口的代理(上)

【OpenFeign】【源码图解】【四】FeignClient实例工具类ReflectiveFeign 目录6. 创建FeignClient接口的代理6.1 收集方法的元数据6.1.1 方法上基础信息6.1.2 方法所在类的注解信息6.1.3 方法上的注解信息6.1.3.1 uri6.1.3.2 produces6.1.3.3 consumes6.1.3.4 headersRequestMap…

第10章_索引优化与查询优化

第10章_索引优化与查询优化 都有哪些维度可以进行数据库调优?简言之: 索引失效、没有充分利用到索引——索引建立关联查询太多JOIN (设计缺陷或不得已的需求)——SQL优化服务器调优及各个参数设置(缓冲、线程数等)———调整my.cnf。数据过多――分库分表 关于数据库调优的…

华为OD机试真题 C++ 实现【优雅子数组】【2022.11 Q4 新题】

目录 题目 思路 考点 Code 题目 题目描述 如果一个数组中出现次数最多的元素出现大于等于K次,被称为K -优雅数组,k也可以被称为优雅阈值。例如,数组1,2,3,1、2,3,1,它是一个3-优雅数组,因为元素1出现次数大于等于3次,数组1,2,3,1,2就不是一个3-优雅数组,因为其…

最优传输及其在公平中的应用

最佳运输起源于经济学,是作为一种如何最好地分配资源的工具而开发的。最佳运输理论本身的起源可以追溯到 1781 年,当时 Gaspard Monge 研究了最有效的土方运输方式,以便为拿破仑的军队建造防御工事。概括地说,最佳运输是一个问题&…

RabbitMQ——延迟队列

目录 一、延迟队列的应用场景 1. 场景:"订单下单成功后,15分钟未支付自动取消" ① 传统处理超时订单 ② RabbitMQ延时队列方案 二、延迟队列中的消息投递和消息消费 1.TTL 和 DLX ① TTL ② DLX和死信队列 ③ 延迟队列 ④ 开发步骤 …

贪心法算法

目录 一 算法简介 1)算法案例引入 2)算法思想 3)算法概念 4) 算法求解的问题的特征 5)算法应用 二 算法常见问题 1)活动安排问题(区间调度问题) 今年暑假不AC 2&#xff…