2023年Android开发的技术趋势,你都学废了吗?

引言

回头去看 2022,过的似乎那么快,不敢相信我已经从事 Android 开发两年了,不免生出一些感叹。

那么 2022 ,Android 端会有什么技术趋势吗?或者什么 [新] 技术值得去学? 又或者对我来说,现在什么 [值得] 去学?

回头看

让我们把时间切回过去,最近几年我都给自己加了哪些技术点?

2019-2022

  • Kotlin,协程
  • MVPHiltMVVM ,JetPack 相关
  • 热修复
  • Flutter 浅试
  • 自动化、持续集成相关

2021-2022

  • JetPack Compose
  • Epoxy+Mvrx , MVI

2021新技术真的好像没有多少,对于 Android 端而言,Compose 算一击重拳,而 MVI 又是最近因为 Compose 被正式启用为 Google 推荐 [新] 架构标准,其他的好像真的没有。

Google今年推过的技术

如果我们只将技术定义为 [技术组件] ,那就可能太狭义,所以那就细细列举一下今年 Google 推过的那些技术文章:

如何找到呢,那么 Android开发者 公众号就是最优先的。所以我们就通过其发布过的文章,大致统计一下,Android 官方给我们的建议,我排了一个表,大致如下:

  1. JetPack

    • NavigationHiltWorkManagerActivityResult
    • ComposeWear OS-ComposeWear Os-卡片库
    • WindowsManagerRoomPaging3.0Glance - Alpha
  2. 折叠屏,大屏适配

    推荐了很多次,Android12 上也推了几次

  3. Kotlin

    FlowVocabulary、协程

  4. Android12

    行为变更、隐私安全更新、新的 小组件widget

  5. 安全方面

    数据加密与生物特征、App 合规

  6. Android 启动相关

    App Startup、延迟初始化

  7. CameraX

  8. Material Desgin

按照推荐频率,我将它们分别列在了上面,总共上面这几大类。不难发现,JetPack 仍然是 Android 官方 首推 ,然后就是 折叠屏以及不同屏幕 的适配,接着就是 KotlinAndroid12 ,当然今年因为 合规 方面的各种问题,Android团队 对于安全方面也提到了,最后就是和性能以及 UI 相关的一些推荐。

趋势预测

折叠屏与大屏适配

严格上这个其实不算是一项技术,而是一项适配工作。但是一直以来,对于大屏的适配,Android 上基本做的很少。自从三星推出第一个折叠屏之后,这个适配就开始被重视起来了。

厂商方面,目前 oppo,华为小米 也都纷纷推出自己的折叠屏手机,以满足先行市场。

官方支持度 方面,如果看过今年的 IO 大会,就会发现,折叠屏适配已经被专门放到了一个栏目,而且专门讲解,官方公众号也已经推了多次。

所以我们姑且可以认为,折叠屏适配应该是2022的一个趋势,但目前对于折叠屏的适配的主流App其实还没有多少,更多的也都是厂商做了相关适配,app开发方面专门针对改动做的其实并不多。

所以可见在2022随着折叠屏手机机型的愈来愈多,某些关键业务的全面适配工作也将随之展开,而不是现在仅仅只是在折叠的时候,同时存在两个APP,或者某个页面展示在另一个屏幕。

技术支持方面,Android团队 为此专门准备了一个新的 JetPack 组件,JetPack WindowManager,其主要功能就是监听屏幕的折叠状态,以及当前相应的屏幕信息,目前主要以可折叠设备为目标,不过未来将支持更多屏幕类型及窗口功能,现在处于 rc 版本,当然今年也肯定会推出稳定版。

JetPack Compose

Compose 自从发布第一个稳定版本后,在今年的 IO 大会上也有专门的分区去讲。

其是用于构建 原生Android 的一个 工具包 ,以 声明式 写法,搭配 Kotlin,可大大简化并加快原生的 UI 开发工作。

目前 Compose 已经对如下几个方面做了支持:

  • Android UI 支持
  • Wear 可穿戴设备支持
  • Android Widget 小组件支持

得益于 Compose 的声明式开发,使得其做折叠屏适配也是较为简单。在与原生 View 的交互上,Compose 支持的也非常不错。

所以我们可以认为,2022,如果从事原生开发,那么 Compose 势必是一个比较适合你学习的新技术,它的上手难度并不大,只要你熟悉Kotlin ,也就能很快上手,只不过目前其在ide上的 预览 功能比较慢,还有待后续优化。

Kotlin

协程

协程其实在前几年已经被广泛使用,我第一次使用协程是在2020年,也见证了其逐渐替代 AsyncTask 及相关线程池工具的过程。

Flow

Flow 今年来被 Android团队 推荐了多次,其主要以协程为基础构建,某种意义上而言,我个人觉得其似乎有点替代 RxJava 的意思。得益于 Kotlin 的强大与简洁,Flow 今年出现最多的场景反而是 Android团队 推荐其用于替代 LiveData ,以增强部分情况下的使用。

当然 Flow 不止于此,如果你正在使用 Kotlin ,并且协程用的也比较多,那么 Flow 肯定是绕不开的一个话题。

所以我们可以预估,在2022,协程Flow 依然值得学习,并且也是能很快感受到效益的组件。

但是相比协程,Flow 其实还有很长一段时间要走,毕竟常见开发场景里,LiveData 就可以满足,而 Flow 却显得不是那么必需。

ASM

这项技术其实并不新奇,但是因为其本身需要的前备知识挺多,比如 Android打包流程APK打包流程字节码自定义 Gradle 插件Transform API ,导致细分为了好多领域,大佬们依然在热追,而像我这样的菜鸟其实还是一脸吃瓜。

那为什么我认为其是一个技术趋势呢?

主要是 合规 带来的影响,大的环境下,可能以后打包时,我们都会监测相应的权限声明与隐私调用,否则如何确保后续的改动不会导致违规呢?但如何确定某个 sdk 没有调用?而且我们也不可能每次都让相关第三方去检测。

所以,维护一个相应的监测组件,是大环境下的必需。而实现上述插件最好的方式就是 Hook 或者 ASM ,所以如果你目前阶段比较高,ASM 依然是你避不开的技术选题。

什么[值得]你去学?

以我个人为例,大家可以从中体会一下,自己应该关注哪些技术,当然,我个人的仅只能作为和我一样的同学做参考:

就像最开始说的,其实这些新组件,很多我都已经用过或者记录过,在最开始的两年,我一直在追寻组件越新越好的道路上,所以每当新出一个组件,总会在项目中进行实践,去尝试。

但是我也逐渐发现了一些问题,当经历了[使用工具]的这个阶段,当我要去解决某些特定情况下问题时,突然发现,自己似乎什么都不会,或者就只会基础,比如:

  1. 在集成某些 gradle 插件时,如果要满足 CI 下的一些便捷,要去写一些 Task 去满足动态集成,而自己对 Gradle 仅仅处于Android常见使用阶段,这时候就需要去学相关;
  2. 我自己也会维护一些组件库,当使用的同学逐渐增多,大家提到的问题也越来越多,那如何解决这些问题,如何优雅的兼容,组件的组合方式,如何运用合适的设计模式去优化,这些又是我需要考虑的问题;
  3. 当我们开始对音视频组件进行相关优化时,此时又出现了很多方向,最终的方案选型也是需要你再次进入一个未知领域,从0到0.1;

新技术会让我当前编码变得开心,能节省我很多事,但其不能解决一些非编码或者复杂问题,而这些问题,是每个同学前进道路上也都会遇到的,所以我们常常会看到,做 Android 真难,啥都要会。

总体对我而言,今年会主要将一些精力放在如下几个方面:

  • Gradle 相关
  • 设计模式在三方库中的运用
  • Android 相关 源码 理解

总结

技术在不断变化与迭代,有些技术我们会发现为什么好几年了,今年似乎特别受人关注,其实也是因为在某种环境下,其的作用逐渐显现。而这些技术正是成为一名优秀的 Android工程师 所必须具备的基础技能。

最后,我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名Android高级开发者需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到黑的朋友!

[一、Android Framework开发揭秘]

主要内容包含:

  • 第一章 系统启动流程分析
  • 第二章 Binder解析
  • 第三章 Handler解析
  • 第四章 AMS 解析
  • 第五章 WMS解析
  • 第六章PKMS Android10.0 源码解读

[二、史上最详Android版kotlin协程入门进阶实战指南]

  • 第一章 Kotlin协程的基础介绍
  • 第二章 kotlin协程的关键知识点初步讲解
  • 第三章 kotlin协程的异常处理
  • 第四章 kotlin协程在Android中的基础应用
  • 第五章 kotlin协程的网络请求封装
  • 第六章 深入kotlin协程原理(一)
  • 第七章 深入kotlin协程原理(二)
  • 第八章 Kotlin Jetpack 实战
  • 第九章 Kotlin + 协程 + Retrofit + MVVM优雅的实现网络请求

[三、Kotlin强化实战(附Demo)]

  • 第一章 Kotlin入门教程
  • 第第二章 Kotlin 实战避坑指南
  • 第第三章 项目实战《Kotlin Jetpack 实战》
    • 从一个膜拜大神的 Demo 开始
    • Kotlin 写 Gradle 脚本是一种什么体验?
    • Kotlin 编程的三重境界
    • Kotlin 高阶函数
    • Kotlin 泛型
    • Kotlin 扩展
    • Kotlin 委托
    • 协程“不为人知”的调试技巧

[四、JetPack Compose开发应用指南]

  • 第一章 初识JetPack
  • 第二章 Compose的设计原理和基本概念
  • 第三章 Compose入门
  • 第四章 Compose布局
  • 第五章 Compose动画
  • 第六章 Compose图形
  • 第七章 Compose核心控件总结

五、Jetpack架构组件从入门到精通

  • Android Jetpack - Navigation
  • Android Jetpack - Data Binding
  • Android Jetpack - ViewModel & LiveData
  • Android Jetpack - Room
  • Android Jetpack - Paging
  • Android Jetpack - WorkManger
  • Android Jetpack架构组件之Lifecycle
  • Android Jetpack Compose 最全上手指南
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容