写点什么

十余年 Android 开发分享:Android 开发现状与未来,40 道安卓面试

用户头像
Android架构
关注
发布于: 16 小时前

[](


)Kotlin


==================================================================


Kotlin 已经成为 Android 开发的官方语言,Android 的新的文档和 Sample 代码都开始转向 Kotlin,在未来 Java 将加速被 Kotlin 替代。 https://developer.android.google.cn/kotlin


[](


)KTX


===============================================================


KTX 是 Kotlin 与 Android 之间无缝衔接的粘合剂,是 Kotlin 和 Android 能够发生化学反应的催化剂。未来将在 Coroutine 等各方面为 Android 提供更多支持。 https://developer.android.google.cn/kotlin/ktx


[](


)Jetpack


===================================================================


Jetpack 的意义在于帮我们在 SDK 基础上提供了一系列中间件工具,让我们可以摆脱不断造轮子抄轮子的窘境。同类的解决方案首先考虑 Jetpack 其次考虑第三方实现,没毛病。


当然 Jetpack 本身也会不断吸收优秀的第三方解决方案进来。所以作为开发者实时关注其最新动态就可以了。 https://developer.android.google.cn/jetpack/androidx/versions


[](


)Fragment


====================================================================


自从 Android 开始推荐 SAA(Single Activity Application)模式以来,Fragment 的角色越发重要,出现了很多改进,FragmentFactory、FragmentContainerView 等增加了很多新技能。


根据 Android Submit 中介绍,对于一直被诟病的 Fragment 的复杂的生命周期在不久的未来也会被优化(Fragment 将废弃 onActivityCreated),所以有条件的话希望大家多使用 Fragment 少使用 Activity。


无论是多个 Activity 还是多个 Fragment,都不存在原罪,本质上都是为了提供丰富灵活的视觉交互。区别在于,作为实现者你能否熟练掌控内存更加友好同时也更难驾驭的 Fragment**,以达到 Activity 一样甚至更佳的表现。**


[](


)Security


====================================================================


安全性是个容易被忽略的需求,但是在未来将会越来越受重要。Security 是 Jetpack 提供的可用于 SharedPreferences 等数据读写场景的加密库,以往这种需求往往是开发者自己实现,现在官方提供了统一的解决方案,值得尝试。


现在 minSdk 支持到 23,未来可能会向下兼容到 21 https://developer.android.google.cn/topic/security/data


[](


)Paging


==================================================================


Paging 不用多介绍了,现在是列表页面中的主流方案。3.0 好


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


像用 Kotlin 完全重写了,全面转向 Coroutine,将会给开发者带来全新的使用体验。 https://cs.android.com/androidx/platform/frameworks/support/+/androidx-master-dev:paging/common/src/main/kotlin/androidx


[](


)Android Code Search


===============================================================================


官方提供的 AOSP 以及 Jetpack 源码的检索工具,不只是简单的显示代码,左侧还可以浏览文件目录和文件的 outline,还可以查看 git 提交历史等。 https://cs.android.com/


但是毕竟不是本地代码,再加上服务器在境外,访问体验不是很流畅,作为简单大范围浏览时使用这个在线工具,作为模块精读时还是 clone 到本地比较好


[](


)DI


==============================================================


虽然 Kotlin 有 Koin 等方案,但是 Google 在 Android 中仍然推荐首选 Dagger,各种 AAC 的 demo 里也充斥着 dagger 的使用。虽然 Dagger 的学习门槛相对其其他同类框架稍高,在大型项目中确实是有长远收益的,未来对于 dagger-android 的易用性上也会进一步优化,建议作为 DI 的首选方案 https://developer.android.google.cn/training/dependency-injection


[](


)Coroutines


======================================================================


个人认为 Coroutines 到目前为止的推广速度不尽人意,可能是因为 Andorid 端一直缺少前端那样的 Promise 模型的异步通信(Future 在 Android 上的使用也不多),所以开发者缺少对协程理解的心智基础,再加上 RxJava 等框架实在太过优秀。


但是随着 Flow 的推出,以及 Jetpack 对 Coroutines 的不断加持,我对其未来还是保持乐观的,没有接触过的同学最好赶紧熟悉起来 https://developer.android.google.cn/kotlin/coroutines


[](


)Kotlin multiplatform project


========================================================================================


KotlinConf 2019 中关于 MPP 的讨论非常多,Kotlin1.4 也将最多的升级放到了 MPP 上,个人感觉 MPP 作为 Kotlin 未来竞争力的关键,势必得到 Jetbrins 甚至 Google 的重视,未来潜力巨大,值得关注。


[](


)Jetpack Compose


===========================================================================

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
十余年Android开发分享:Android 开发现状与未来,40道安卓面试