写点什么

Android 面试你必须要知道的那些知识,重难点整理

发布于: 2021 年 04 月 03 日

导语

本文的目的很简单,一句话:用最少的时间,最高效率,让你清楚:想要做 Android 开发,你需要学什么?你该在哪学?


本文的特点在于将繁琐的知识化为系列专题的形式展现给读者,当你能跟随博主构建的体系化学习知识点时,恭喜你,你已经干掉了 BAT、字节、网易等大厂的几乎 80%以上的 Android 开发人员。这种无所不知的痛快感,是不是感觉你已成为别人眼中的大神了?


接下来给大家介绍一份体系化的学习资料,是由我和我的伙伴们历经 4 个多月,整理编写而成的,进阶资料一共 8 份,涵盖了 Android 进阶高级工程师(年薪 60w+)所有学习知识!

移动跨平台技术演进

1. 引言


移动互联网发展十余年,伴随着 Android、iOS 等智能手机的不断普及,移动端已逐步取代 PC 端,成为兵家必争之地。正所谓“得移动端者得天下”,移动端已成为互联网领域最大的流量分发入口,一大批互联网公司正是在这大趋势下崛起。


2. 为什么需要跨平台技术


伴随着移动互联网的高速发展,公司间竞争越来越激烈,如何将好想法快速落地、快速试错,成为备受关注的问题。提升研发效率、缩短研发周期,保障产品快速试错并能快速迭代新功能,让新产品新功能以最快的速度同时抵达 Android、iOS 等多端用户。


众所周知,Android 应用采用 Java 或 Kotlin 编写,iOS 应用采用 Objective-C 或 Swift 编写,Web 端采用 HTML /CSS/JavaScript 编写。当需要开发支持多端的应用,每一端都需要独立研发、测试,一直到上线,以及后续的维护工作,工作量成倍增涨,势必延长研发周期。


为了解决多端独立开发的问题,跨平台技术便应运而生,各大互联网公司为此都投入大量人力,于是出现了各种跨平台技术框架,面对移动领域的跨平台技术方案的层出不穷,又该如何做技术选型呢?


3. 移动端技术选型


作为移动端的跨端技术方案,所关注无外乎以下这 4 个方面:研发效率、动态性、多端一致性、性能体验。



  1. 研发效率:最大化代码复用,减少多端差异的适配工作量,降低开发成本,专注业务开发,实现“write once,run everywhere”的终极目标。效率提升是贯穿整个业务的生命周期线,即便业务上线后,可持续降低后续的维护成本,加快新 feature 的迭代速度,这是一个持续的效率收益。当然,这里不得不说,任何一门新技术在开发启动学习阶段会有一些成本,但上手后的收益是长期的。

  2. 动态化:突破渠道的更新频率,可快速迭代新功能,这一点不仅是跨平台技术的诉求,也是 Native 技术必备的杀手锏,这也是评估跨端技术的一个重要考核点。

  3. 多端一致性:好产品在多端 UI 设计上,往往是整体风格统一,所以业务方采用原生各自独立开发完成后,还需额外花不少时间来修改 UI 以保证多端一致性;可见,各端独立实现开发方式,带来的效率滞后,不仅仅是 Android 和 iOS 各开发一份代码的工作量,还有双端 UI 的一致性对齐的工作。

  4. 性能体验:一般地,跨端技术方案拥有以上多重优势,但在性能方面比原生流畅更差些。牺牲部分体验换来效率提升,这一点也是情理之中,试想一下,跨平台技术方案同时兼得这 4 点,那么原生技术恐怕已退出历史舞台,早已是跨平台技术的天下,所以往往跨平台技术的性能优劣便成为核心指标。


4. 跨平台技术划分


对研发效率和体验的不断追逐,移动端的跨平台技术方框架层出不穷,然则天下武功众多,万变不离其宗,从其核心本质来划分,可大致分为以下三大类:



  1. Web 技术:主要依赖于 WebView 的技术,功能支持受限,性能体验很差,比如 PhoneGap、Cordova、小程序。

  2. 原生渲染:使用 JavaScript 作为编程语言,通过中间层转化为原生控件来渲染 UI 界面,比如 React Native、Weex。

  3. 自渲染技术:自行实现一套渲染框架,可通过调用 skia 等方式完成自渲染,而不依赖于原生控件,比如 Flutter、Unity。

最后

在这里我和身边一些朋友特意整理了一份快速进阶为 Android 高级工程师的系统且全面的学习资料。涵盖了 Android 初级——Android 高级架构师进阶必备的一些学习技能。


附上:我们之前因为秋招收集的二十套一二线互联网公司 Android 面试真题(含 BAT、小米、华为、美团、滴滴)和我自己整理 Android 复习笔记(包含 Android 基础知识点、Android 扩展知识点、Android 源码解析、设计模式汇总、Gradle 知识点、常见算法题汇总。)



本文在开源项目:【腾讯文档 】中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

用户头像

VX公众号:编程进阶路 2020.11.28 加入

还未添加个人简介

评论

发布
暂无评论
Android面试你必须要知道的那些知识,重难点整理