至于HTTP协议 , GET、POST等一些细节没有很好的回答 , 了解HTTPS的人也很少 。 然而 , 这些应该是Java面试中真正通用的问题 。 Android开发不仅仅是绑定一个视图 , 发送一个网络请求 , 绑定然后更新界面 。
Android的很多开发者 , 在能做出一个阅读或者商城应用的时候 , 只是停留在一种自我满足的状态 。 如果理解了这四个组成部分 , butterknife和改型可以有一个新的动作 。
但在我看来 , 前端开发比后端有很多困难 , 比如:
1 。 有许多异步操作和复杂的状态管理 。 如果你想在回调地狱里完整的管理视图和模型的状态 , 同时把类职责分配好 , 活动就不会展开 。 光是做好这一点 , 我觉得就已经很有价值了 。
很多MVP的人都效仿 , 至于为什么这么做 , 都是得过且过 。 况且设计模式不是万能的 , 不是说用了就一定好 , 而是要看适用的业务场景 。
2.你需要处理状态恢复 。 当一个复杂的业务流程增长时 , 需要考虑如何恢复被中断的流程 , 是应该交给后端维护 , 还是前端记录信息并作为事务提交 。
这是一门学问 。 我朋友的app被强制回退后无法恢复 , 或者上一单的信息留给下一单 。
3.更新应用程序时的版本管理和本地数据迁移涵盖了安装 。 以QQ音乐为例 , 如此庞大的曲库和歌单 , 在本地肯定会使用类似sqlite的轻量级数据库 。 当你在cover安装时 , 你可能需要更新表结构 。
如何管理跨版本db结构升级和异常处理是一个大学问 。 即使不使用sqlite级别 , 如何管理SharedPreference中的缓存数据也是需要考虑的问题 。
4.多版本系统的适配 。 不用说 , 大家都知道 。 这些问题即使在iOS开发中也会遇到 。
所以我觉得在面试Android开发岗位的时候考察JavaSE的基础知识并不过分 。 如果他问你EE , 你真的可以对他翻白眼 。
至于拿kt当挡箭牌 , Java基础不扎实 , kt只会出更多问题 , JVM是绕不过去的坎 。 知道kt里的同步标注是什么吗?
你知道inline和crossinline的区别吗?我用kt半年了 , 感觉都神经兮兮的 。 所有不确定效果需要稳定的地方都是旧的实用Java实现 。
但是kt协作真的很甜 , 在安卓上消除回调太舒服了 。 要的 。 一直都觉得 , 作为开发人员要一直保持着危机感 , 时刻眼光放远些 , 多学些东西 , 30岁才不会失业 , 俗话说技多不压身不是么 。
【中关村|如何看待 Android 面试却是 Java 面试官?】
- 创投圈|抖音小店无货源适合新手小白么?如何精细化运营?新手小白看来
- 松下|淘宝店铺信誉分等级如何提升?
- PHP|如何降低用户关注的非必要页面的权重传递?
- 量子纠缠存在于任何维度空间?人类如何逃出三维空间变成“神”?
- 显卡|如何组装旗舰游戏电脑?这里有你想要的答案
- 火星和地球交换位置会如何?火星会出现生命吗?答案没你想得简单
- 快手视频|视频号和抖音快手的差异化在哪里呢?你应该如何选择适合你的平台
- AirPods|如何进行微信活动运营才有效?
- 酷睿处理器|AMD Zen4如何接招?13代酷睿Z790主板偷跑:DDR4内存还在
- 蓝牙AOA定位那点事系列085:如何应对第一次合作软件开发合作伙伴的问题和需求
