ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

三年老Android经验面经,深入剖析

2021-07-02 13:02:41  阅读:144  来源: 互联网

标签:Java Spring 面经 剖析 跨平台 开发 开发者 Android


## 一 、Java 后端 在我写过的 《Android程序员的Java后台学习建议》 中提到,因为 Java 的先天优势,Android 开发者在转岗选择时,转 Java 后端占据很大比例,因为 Java 后端岗位需求量较大,同时技术迁移成本也较低,比如现在 Java 开发中应用最广泛的 `Spring`全家桶: ![img](http://www.icode9.com/i/li/?n=2&i=images/20210702/1625201457501175.jpg) 作为 Android 开发者,如果你使用过或了解过 `Dagger`,那么理解和使用 `Spring`并不难。通过各类注解如 `@Contorller`、`@Service`、`@Configuration`等去标明类的用途,通过`@Autowired` 去注入使用的方式,相信会让你倍感亲切。 如果说 `Spring` 是类似 `Dagger` 的注入和管理实体的容器框架,那么 `SpringMVC` 就是基于 `Spring`功能之上添加的 Web 框架。 对于 Android 开发而言,MVC 肯定是不会陌生的,实际上后台开发人员通常就是写个 `Controller` 提供个 Model给你。而 `Hibernate` 和 `MyBatis` 都是持久层框架,属于能方便使用如 `MySql` 等数据库的 ORM 框架。 如果说 `Spring` 和 `SpringMVC` 是 Android 开发者较友好的选择,那么 `Spring Boot` 则是你的“绿色通道”。 `Spring Boot`又称之为全家桶,因为它集齐了各类常用的开发框架,同时降低了 Spring 开发的门槛,更是简化了各种配置过程,而且 Jetbrains大家庭支持它!所以现阶段而言,个人认为 `Spring`、`SpringMVC`、`SpringBoot` 是 Android 开发者学习入门 Java Web 的不错选择。 ![img](http://www.icode9.com/i/li/?n=2&i=images/20210702/1625201458330677.jpg) 当然,**作为 Android 开发者转后端,最大的问题就是开发思路和领域的变化**,你需要关注的不再是当个设备上的业务逻辑,更需要关注的是大数据、并发、性能优化、分布式等等,这些都是转岗的你需要从头开始的,这是无可避免的成本。 ## 二、大前端 大前端在我理解中,一般包括 **Web 前端、客户端、跨平台的集合**。对于 Android 开发而言,继续从事 UI 与用户交互逻辑也是一条谋生之道,但是受市场红利结束、开发成本等影响,拓展能力成为大前端开发也是趋势之一。 在我的 《我的移动开发春季历程》 说过:**随着各类移动跨平台的兴起,在 ReactNative、Weex、Flutter、 等框架的加持下**,Android开发的能力已不再局限于 Android 领域,而各大厂商近些年也针对跨平台的不足进行逐步完善。 但这并不意味着原生开发的“没落”!无论哪种跨平台的加持,最终都离不开你的原生系统能力。大潮过去后更多是淘汰“裸泳”,而如今的市场愈发趋向大前端,竞争之下我觉得移动开发的边界可以更广。 所以有 Android 平台存在就会有需求,而利用跨平台开发,能让我们的能力更快的覆盖到 iOS 平台,同时如 `ReactNative`、`Flutter`、`Weex` 等,能够让你逐步接触并熟悉 Web 前端的世界,之后如 `uni-app` 、`myvue` 、`Chameleon` 、`taro` 等框架还能丰富你的小程序能力,从而让你的业务能力走向新的巅峰。 ![img](http://www.icode9.com/i/li/?n=2&i=images/20210702/1625201458497028.jpg) ## 三、物联网 Android 平台和 iOS 平台最不同的就是它的开源和影响力,多年后的今天,Android 已经不仅仅代表着手机平台,在电视、机顶盒、楼宇安防、自动售卖、广告展牌、智能家电、车载等领域都已***并精进,就**像我 Android QQ 群内的小伙伴,现在还从事 App 开发的反而不多,但是在以上领域继续耕耘 Android 的反而很多。** 5G 时代下物联网领域很有可能具备新的机会,华为的鸿蒙智慧屏、无人驾驶的车载平板、其他各类利用 Android 实现的无线智能平台,这都是 Android 开发者可以耕耘的机会。 当然,光是学习或者“纸上谈兵”,最终只会徒生焦虑,所以‘学习最好的方法就是“动手”,开源项目是你最好的学习方法,自己动手练练,才是你“转岗”的最好尝试。 #### 总结 这次面试问的还是还是有难度的,要求当场写代码并且运行,也是很考察面试者写代码 因为Android知识体系比较庞大和复杂的,涉及到计算机知识领域的方方面面。**在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。** 附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。) ![](http://www.icode9.com/i/li/?n=2&i=images/20210702/1625201459109188.jpg) **里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…** **[如果需要可以戳这里自行领取](https://docs.qq.com/doc/DSkNLaERkbnFoS0ZF)**

标签:Java,Spring,面经,剖析,跨平台,开发,开发者,Android
来源: https://blog.51cto.com/u_15285980/2968861

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有