Android-技术的下半场,一位Android大牛的BAT面试心得与经验总结

  1. 省流专题 上面谈到了图片的压缩,其实节省流量是一个永恒的话题,它不仅能改善用户体验,也能帮助减少用户流量开销,节省公司成本。因此,本专题会谈一谈如何监控Android流量;有哪些常用的Diff及压缩算法,比如Tinker里自研的Diff算法 vs Google提出的google-diff vs BsDiff等;如何选用数据通信格式如json、ProtoBuf;FastJson、Jackson各自的优势等等。

  2. 网络专题 大多数业务同学对网络的认识就是OkHttp+Json解析,实际上,网络这一块还存在非常多值得研究的技术点。一个优质的App,除了在网络良好的环境下运行,更重要的是,必须在弱网、网络劫持、网络慢等复杂环境下也要良好运行,而且还得快,这也就涉及到DNS加速、网络结果缓存等。 之前大厂都在提“页面秒开”的概念,页面打开速度很大程度取决于当下的网络环境,也对于用户体验和留存有非常大的影响。这个专题我们谈谈网络相关的技术点。

  3. 监控与日志专题 对于监控和日志,多数人的印象是集成一个第三方SDK,如Fabric、Bugly等。业务同学或许对日志了解不是特别多,但实际上日志是至关重要的,尤其是在排查复杂问题时。 本专题我们谈一下如何做到日志不丢失,如何后台上报且不影响App运行,最有意思的一点:如何利用长连接等技术,实时拉取任意用户的本地详细日志

  4. 安全专题 安全专题就离多数比较远了,这里我们讲解一些常见的和业务相关的安全话题,具体后续补充。

  5. 高可用专题 后续补充

  6. GC专题 后续补充

专题计划技术点列表

1. 动态化专题

  • 如何让JavaScript与App交互
  • 如何实现“即点即用”之小程序、快应用
  • H5容器之多进程架构
  • 动态化编程之Lua
  • …等
    2. 图片专题
  • 图片压缩之WebP与腾讯SharpP的实现机制
  • 图片内存优化之Glide和Fresco原理篇
  • png jpg等常用图片格式的内存、解压速度分析
  • …等
    3. 省流专题
  • Android流量监控
  • 文件压缩 zip 7z gzip等
  • 增量更新之diff算法,案例:Tinker自研diff/patch算法
  • 图片缓存技术
  • WebView缓存优化
  • 数据传输协议对比之ProfoBuf、FastJson、Jackson
  • …等
    4. 网络专题
  • 可靠长连接的意义
  • HTTPDNS DNS劫持
  • 网络嗅探
  • Http2/Https/QUIC协议对比
  • CDN 削峰填谷
  • 如何做全局网络限流,保证业务流量高优先级
  • …等
    5. 监控与日志专题
  • mmap日志落地方式,开源项目Loganxlog等分析
  • 通过长连接动态拉取日志
  • 如果长连接断开、通过短连接兜底拉取日志
  • 日志上报,本地分片存储及后台上报策略
  • …等
    6. 安全专题
  • 移动端的加密算法之对称与非对称,防篡改
  • 常规编码方式一览 md5 base64
  • …等

下半场

下半场我们的战场在哪里?

####NDK
音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以Android NDK技术已经是我们必备技能了。要学习好NDK,其中的关于C/C++,jni,Linux基础都是需要学习的,除此之外,音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发必备技能,而且OpenCV/OpenGl/ 这些又是图像处理必备知识。NDK模块开发.png

区块链

2018年初,投资大亨徐小平的一张聊天截屏撼动了整个互联网圈,可谓一石激起千层浪。一时间,连卖菜大妈都在讨论区块链,各类打着区块链的牌子圈钱割韭菜的公司、创业团队如雨后春笋,直到李笑来的一段录音流出,感觉大家都被这场“革命”的资本家当傻逼使了,着实为这把大火浇了一盆水。说区块链会比曾经的互联网革命还要猛烈,我觉得有点喧宾夺主了,区块链只是互联网这个土壤上长出来的一根藤,只会在有限领域发挥很好的作用。技术上看,区块链不是什么新技术,是密码学、分布式、p2p等技术结合经济学在特定领域的应用。如果你本身在密码学、安全领域或分布式开发领域有经验,转区块链开发又有何难?换个赛道开车而已。不过据我所知的 Android 客户端开发,95% 是没有机会也没自主去从事或深入研究过这方面的技术,所以基本认定区块链不是 Android 开发的下半场,转岗搞区块链优势不大。

小程序

RN、Weex、小程序出来的时候,我都有研究过,并且能轻易上手,作为一名 Android 原生开发的我都能轻易上手,更不用说那些前端工程师了,而且现在各家小程序的上层开发技术在我看来都是快消品,五年、十年后他们还在么?当然如果我们能抽象一下各家小程序背后的技术本质,例如深入研究 JS 执行引擎原理、浏览器内核等,那你又管他五年后XX小程序还是WW小程序呢?肯定离不开这些技术本质,这一点很多前端小伙伴一定比我们终端小伙伴玩的溜。微信小程序开发.png

人工智能

人工智能并不是什么新概念了,可以说自计算机诞生就有人思考人工智能的问题了,不过人工智能的概念是在 1956 年夏天、美国达特茅斯学院的一次研讨会上首次提出的,那次会议聚集了麦卡锡、香农等业界泰斗,被认为是人工智能的诞生标志,史称达特茅斯会议。此后,每隔一段时间,人工智能就发展到一个新的阶段,例如 1963 年计算机与人类的首次象棋大战、1996 年深蓝计算机战胜国际象棋大师、1997 年比尔盖茨的智能化豪宅建成,推进智能家居的概念诞生、近些年 Google 的 AlphaGo、无人无人车等,语音、图像识别等技术已经进入多个领域的应用。2018 年,移动互联网各个方面应用领域进入红海,各大巨头都在寻找新的赛场,人工智能成了“兵家必争之地”,BAT 等互联网巨头都纷纷成了 AI 实验室…

如何在下半场走得更远

无论是上半场还是下半场,我们只是换了个现场而已,在我们一生所学的本领中,有些换了个战场就不能用了,有些还能继续使用。

说到这个, 我想起了有个前辈说的一个概念:知识衰竭周期,这里我拓展为技能衰竭周期。我们一身中所学习的技能,有的很快就过时,称之为衰竭,有的技能十年、百年都不过时,这里有个最鲜明对比: 研究心血管的医生和 fash 程序员,医生完全不用担心人体心血管结构会变化而自己的技能经验会淘汰,而十年前比较火的 flash 开发技术如今快面临淘汰了,所以说学医的普片越老越吃香,而我们程序员不得不不断学习。既然要学习,我们也考虑下成本和收益,多花些心思在衰竭周期较长的知识、技能上。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

从上到下衰竭周期越长,从下到上变化越多同时短期内的需求越多。长远来看,越是底层的东西越值得我们去研究,底层的搞明白了,上层变化再多都能很快上手,以不变应万变。以上图片是我个人 YY 的,一定不全面,但能表达一个意思:技术服务业务, 越是上层的技术越受制于业务,业务千变万化,上层的技术形态也就千变万化。

学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!
最后,祝愿即将跳槽和已经开始求职的大家都能找到一份好的工作,小编这里面还有一些试题分享在我的Android IOC架构设计群里,可以来群里下载,群里还有一些行业大牛,群里也会有不定时送书等活动,欢迎前来下载。

Android高级技术大纲.png

资料领取

点赞+加群免费获取 Android IOC架构设计

加群领取获取往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

学习福利

【Android 详细知识点思维脑图(技能树)】

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。

这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

由于篇幅有限,这里以图片的形式给大家展示一小部分。

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

图片转存中…(img-GdN2He94-1711916091308)]

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

  • 14
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值