Android开发高手课
张绍文
前微信高级工程师,Tinker负责人
立即订阅
12609 人已学习
课程目录
已完结 61 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 焦虑的移动开发者该如何破局?
免费
导读 (1讲)
导读 | 如何打造高质量的应用?
模块一 高质量开发 (25讲)
01 | 崩溃优化(上):关于“崩溃”那些事儿
02 | 崩溃优化(下):应用崩溃了,你应该如何去分析?
03 | 内存优化(上):4GB内存时代,再谈内存优化
04 | 内存优化(下):内存优化这件事,应该从哪里着手?
05 | 卡顿优化(上):你要掌握的卡顿分析方法
06 | 卡顿优化(下):如何监控应用卡顿?
06补充篇 | 卡顿优化:卡顿现场与卡顿分析
07 | 启动优化(上):从启动过程看启动速度优化
08 | 启动优化(下):优化启动速度的进阶方法
09 | I/O优化(上):开发工程师必备的I/O优化知识
10 | I/O优化(中):不同I/O方式的使用场景是什么?
11 | I/O优化(下):如何监控线上I/O操作?
12 | 存储优化(上):常见的数据存储方法有哪些?
13 | 存储优化(中):如何优化数据存储?
14 | 存储优化(下):数据库SQLite的使用和优化
15 | 网络优化(上):移动开发工程师必备的网络优化知识
16 | 网络优化(中):复杂多变的移动网络该如何优化?
17 | 网络优化(下):大数据下网络该如何监控?
18 | 耗电优化(上):从电量优化的演进看耗电分析
19 | 耗电优化(下):耗电的优化方法与线上监控
20 | UI 优化(上):UI 渲染的几个关键概念
21 | UI 优化(下):如何优化 UI 渲染?
22 | 包体积优化(上):如何减少安装包大小?
23 | 包体积优化(下):资源优化的进阶实践
24 | 想成为Android高手,你需要先搞定这三个问题
模块二 高效开发 (9讲)
25 | 如何提升组织与个人的研发效能?
26 | 关于编译,你需要了解什么?
27 | 编译插桩的三种方法:AspectJ、ASM、ReDex
28 | 大数据与AI,如何高效地测试?
29 | 从每月到每天,如何给版本发布提速?
30 | 数据评估(上):如何实现高可用的上报组件?
31 | 数据评估(下):什么是大数据平台?
32 | 线上疑难问题该如何排查和跟踪?
33 | 做一名有高度的移动开发工程师
模块三 架构演进 (9讲)
34 | 聊聊重构:优秀的架构都是演进而来的
35 | Native Hook 技术,天使还是魔鬼?
36 | 跨平台开发的现状与应用
37 | 移动开发新大陆:工作三年半,移动开发转型手游开发
38 | 移动开发新大陆:Android音视频开发
39 | 移动开发新大陆: 边缘智能计算的趋势
40 | 动态化实践,如何选择适合自己的方案?
41 | 聊聊Flutter,面对层出不穷的新技术该如何跟进?
42 | Android开发高手课学习心得
练习Sample跑起来 (8讲)
练习Sample跑起来 | 热点问题答疑第1期
练习Sample跑起来 | 热点问题答疑第2期
练习Sample跑起来 | 热点问题答疑第3期
练习Sample跑起来 | 热点问题答疑第4期
练习Sample跑起来 | ASM插桩强化练习
练习Sample跑起来 | 唯鹿同学的练习手记 第1辑
练习Sample跑起来 | 唯鹿同学的练习手记 第2辑
练习Sample跑起来 | 唯鹿同学的练习手记 第3辑
特别放送 (7讲)
Android JVM TI机制详解(内含福利彩蛋)
专栏学得苦?可能是方法没找对
专栏学得苦?可能你还需要一份配套学习书单
Native下如何获取调用栈?
聊聊Framework的学习方法
Android工程师的“面试指南”
程序员修炼之路 | 设计能力的提升途径
结束语 (1讲)
结束语 | 移动开发的今天和明天
Android开发高手课
登录|注册

开篇词 | 焦虑的移动开发者该如何破局?

张绍文 2018-11-26
00:00
07:23
讲述:冯永吉 大小:3.39M
最近半年,常常有人问我两个问题:“现在学习移动开发还有前景吗?”“移动开发还有什么可以研究的?”。这两个问题其实对应着同一个现象,无论是准备入行或刚刚入行,还是比较资深的开发者,对于移动开发职业的未来,都有一些迷茫、一些焦虑。为什么会这样?
现在想想,移动互联网的发展不知不觉已经十多年了,Mobile First 也已经变成了 AI First。换句话说,我们已经不再是“风口上的猪”。移动开发的光环和溢价开始慢慢消失,并且正在向 AI、区块链等新的领域转移。移动开发的新鲜血液也已经变少,最明显的是国内应届生都纷纷涌向了 AI 方向。
可以说,国内移动互联网的红利期已经过去了,现在是增量下降、存量厮杀,从争夺用户到争夺时长。比较明显的是手机厂商纷纷互联网化,与传统互联网企业直接竞争。另外一方面,过去渠道的打法失灵,小程序、快应用等新兴渠道崛起,无论是手机厂商,还是各大 App 都把出海摆到了战略的位置。
从技术的角度来看,今年移动端的技术变革也有点缓慢。大前端的概念虽然说了很久也很多,但 React Native、PWA(Progressive Web App)的效果依然不尽人意。在插件化热潮之后,移动端的精品文章开始变少。去年“安利”完 Kotlin 之后,今年讲得比较多的还是 Flutter。
这么看来,移动开发的前景不明朗,再加上竞争激烈以及技术变革放缓,我们感到迷茫、焦虑似乎就不难理解了。
带着同样的焦虑,2017 年年底我选择离开了微信,目前在某知名互联网企业负责海外产品的技术工作。
回想一下自己的过去,经历了搜狗手机输入法用户从一千万到一亿,也见证了微信用户从一亿到十亿的增长。在快速成长的同时,让我感到更加快乐的是对社区还是做出了那么一点贡献。写了一些文章,建立并运营了 WeMobileDev 公众号,输出了一些技术干货和思考;拥抱了开源,Tinker、Mars、WCDB 相继开源,特别是 Tinker 作为腾讯在 GitHub 的第一个开源产品,让我体会到了开源的魅力。
在进入新工作环境的这大半年里,我遇到了一些困难,也接受了很多新的挑战。慢慢明白,或许是移动互联网这个大环境变了,推动我们不得不跟着转变。移动端的招聘量变少,但中高端的职位却多了起来,这说明行业只是变得成熟规范起来了。竞争激烈,但产品质量与留存变得更加重要,我们进入了技术赋能业务的时代。大前端正在跨平台,移动开发者的未来更可能是跨终端,产品、运营、数据分析、后端,技多不压身。
那企业需要什么样的移动开发人才?移动开发还可以做些什么?我希望通过这个专栏来回答你这两个问题。专栏里,我会结合业界的现状,讲讲国内外各大公司的尝试,以及他们的发展方向。我会尽量少放源码,侧重结合工作上的实践经验,分享一些疑难问题的解决思路。整体来说,主要包括以下三个部分 (注:60% 是 Android 相关的,40% 是可以跨平台的)
1. 高质量开发。在如今的竞争态势下,保证产品的基础用户体验尤为重要。最近国内外各大公司,对 APM 性能监控系统也越来越重视。我挑选了崩溃、内存、卡顿、启动、I/O、存储、网络、耗电、渲染、安装包体积等比较常见的关键点,为你全面梳理性能优化的经验技巧与方向,帮你学会如何解决已知的存量问题,同时也能及时发现增量问题。
2. 高效开发。持续交付、DevOps 近年在国内非常火热,我们都在寻找内部突破,提升效率。一个应用从想法到成品,需要经历开发、编译 CI、测试、灰度、发布等多个阶段,那怎样提升各个阶段的效率,也是你我比较关心的话题。跨平台开发可能是解决开发阶段的一个答案,动态部署可能是发布阶段的一个答案。头条和快手如何做到数据驱动式的开发,怎样才是高效的运营,在这个模块,我将围绕这些内容一一展开。
3. 架构演进。“君有疾在腠理,不治将恐深”,对于一个应用来说,架构一定是核心中的核心。在这个模块,我会讲到 Google 的一些架构演进,例如 Android P、App Bundle、虚拟机、耗电等,也会讲到移动网络架构的一些选择,跨平台开发、动态化实践等热点知识。
在我看来,如今的移动开发开始冷下来了,或者有人说开始进入移动互联网的下半场了。其实,对于我们开发人员来说,不管是下半场还是上半场,我们重要的是要把技术做好做精做深。是的,现在移动开发已经不再是风口,但是,这并不是说移动开发已经被淘汰,而是说移动开发的发展进入了成熟期,就像 Web 技术一样。
如果说现在,你还只是能做好产品给过来的“需求”,我认为这是远远不够的。作为一个移动开发工程师,你我都需要深耕细作,都需要有工匠精神,把已有的事情从好做到更好。因为在迈向更好的过程中,你必然需要学习底层原理,你必然需要拓展知识面,你必然需要结合其他的技术,有了这么多必然,你也必然会变得更强。
所以,我在这里回答我一开始提出的那个让人焦虑的问题。首先,我认为,移动开发不等于 App 开发,所有新的技术浪潮其实都可以融入到移动开发的体系里,比如 IoT、音视频、边缘计算、VR/AR,我们要做的,只是打好基础,随时准备战斗。其次,从心态上,我觉得我们千万不要把时间浪费在纠结问题上,而是应该放在解决问题上。“王者荣耀”“吃鸡”并不能解决我们的焦虑,拥抱变化,才能拥有未来,让我们共勉。
最后,我和极客时间一起,为你准备了丰厚的学习大礼包,听说礼包里面有 GMTC 大会的门票哦。今天先卖个关子,我会在下一节“导读”里给你揭晓。
希望通过这个专栏,可以在这个节骨眼上,给你一些启发和帮助。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Android开发高手课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(155)

  • 任玉刚
    绍文牛逼!
    2018-11-26
    1
    350
  • zhy
    感谢绍文分享!
    2018-11-26
    2
    182
  • 一只拖鞋
    希望少点鸡汤,多点干货,少点焦虑贩卖,多点知识精华

    作者回复: 这个专栏的目标也是这样的,希望大家能比较体系化的将移动开发的现状跟未来发展有比较清晰的认识

    2018-11-26
    47
  • sadhu
    stormzhang黑粉来的
    2018-11-26
    43
  • 郭效江
    邵文牛逼,有幸用过和研究过tinker,佩服的是五体投地。另外补充一下,移动开发现在在新造车企业也大有所为,我现在在一家新势力公司,从APP,framwwork,HAL,kernel都有幸接触到,可以领略浩瀚的Android工程。之前在互联网公司的焦虑也好很多了,总归一句话,Stay hungray, Stay foolish.另外,借此打个小广告,有找工作的APP/framework工程师可联系我(不知道极客时间的评论能不能回复,随缘吧)

    作者回复: 对,移动开发不等于app开发。未来的路还是很多的

    2018-11-27
    22
  • 弦歌
    stormzhang粉丝来的
    2018-11-26
    21
  • 小美
    张老师 我们这用fragment 很多坑 方便系统讲解一节课吗
    2018-11-27
    14
  • 代码GG陆晓明
    这条路要深耕,会往更底层去走。在物连网对标上来,同时深度学习,人工智能,以及图像识别技术跟进,加成,未来的世界不可想象。移动端的风口已经在迁移,唯有思考的方式,抓住问题的本质,能够快速脱离当前技术,进入下个战场,并能抢的先机,建立壁垒,这个才是应该有的技术敏锐度。
    在技术中陷得越深,当出来时越觉空虚,不如以产品思维,项目宏观把控,用用户流量,激发开发的热情,与拥抱未来的能力。

    作者回复: 产品思维是一方面,不过大部分人可能不一定有这个机会。
    个人不建议什么都跟风的去学,如果在某个技术点可以打磨透,那其他也能触类旁通。良好的基础还是比较重要的

    2018-11-26
    13
  • androidmalin
    邵文人很Nice,谢谢邵文大佬分享经验。
    2018-11-26
    13
  • YA
    看鸿洋分享来的,希望快点更新课程,期待
    2018-11-26
    12
  • xiaomian12138
    招聘量变少,中高端职位多了起来,这说明行业只是变得成熟规范起来了。 说得好,其实不管环境怎样,牛逼的人去哪都是牛逼的。所以先成为牛逼的人再说😊
    2018-11-26
    5
  • Eddie
    感觉自己遇到了瓶颈期,需求写多了很无聊,最近在看计算机网络,大神觉得这个对我们研发有帮助吗?能给点建议吗?

    作者回复: 网络是基础,非常重要

    2018-12-11
    4
  • 新启程
    做了多年ios开发,之中也做过游戏,后端。但却越来越迷茫,最近才略有感悟。感觉平时一定要多思考,一个比较有效的实践方案是想办法做那些你平时不熟悉,也不想研究,但确实有用的东西。走出自己的舒适区,只有你会的和大部分开发者并不同,并且有用,你才能脱颖而出。
    第一次这评论,好像说了一堆废话,但我想从这次开始,走出自己看文章不写评论思考少的舒适区。这样既是对自己负责也是对作者的认可。
    2018-12-03
    4
  • 101010 == 42
    移动端的招聘量变少,但中高端的职位却多了起来,这说明行业只是变得成熟规范起来了。竞争激烈,但产品质量与留存变得更加重要,我们进入了技术赋能业务的时代。大前端正在跨平台,移动开发者的未来更可能是跨终端,产品、运营、数据分析、后端,技多不压身。

    对Android的了解,其实是一本讲Android安全的书,《Android应用安全防护和逆向分析》,其他内容不算特别熟,也有些犹豫。但是看到老师这段话,感觉很有道理,不在风口不等于game over,只不过是成熟了。从基础到经验都掌握的中高端人才,才是追求方向。早就听说过绍文老师在微信的大名,也相信极客时间的质量,果断下手买了。
    2018-11-26
    4
  • 希夷
    感谢大佬分享😄😄
    2018-11-26
    3
  • 扫地僧
    2019年1月13号第一次打卡,虽然很久之前就订阅了,但是由于自己NDK方面太弱,所以回炉了一段时间C/C++, NDK相关的知识,希望在接下来的时间里跟着大佬不段的学习,查漏补缺,不断进步,

    第一次打开
    FLAG: 工作两年半的渣渣
    2019-01-13
    2
  • 小梅
    做了5年开发,最近有点迷茫找不到方向了,看到技术群里有人在发,就一下被吸引了,希望前辈早早开课!😊
    2018-11-27
    2
  • chaos
    看到张总我就迟疑了0.01秒,立马订阅了:p
    期待你的干货分享
    2018-11-27
    2
  • thirtyyuan
    希望讲 “优化” 的点都能贴近实际或者有实际例子和项目,书上、视频中讲大同小异,都很笼统,具体怎么实践,新手一头雾水😅如果能讲清楚,感激不尽!

    作者回复: 短短几千字很难把所有知识都“讲”的完全清楚,所以专栏在github会配套比较多的sample,以及一些供参考的资料

    2018-11-27
    2
  • Carlo
    学了一圈回来,最后发现还是native最好。你觉得呢?

    作者回复: 每一个都有自己的应用场景,可以参考专栏跨平台、动态化、Flutter这些章节

    2019-03-17
    1
收起评论
99+
99+
返回
顶部