Android开发还有什么值得学?这个话题一定会让大家争论不休,它并没有一个确切、唯一的标准答案,你认为自己的答案是对的,那它就是对的,每个人所处的环境和项目需求不同,每个人给出的答案也一定是有切身原因的。但是从Android发展至今的趋势来看,下列内容一定是被高频列举出的答案:
Flutter
为跨平台开发而生的集大成者,如果想成为多端开发的六边形战士,那么Flutter一定是你的必修课
Compose
声明式UI的典型代表,告别繁冗的代码,重新定义了Android UI开发的方式
Kotlin
开发语言的更新换代,都是为了更好地提高生产力,Kotlin也是如此,Kotlin+协程已经让我们在网络编程中体会到了它的过人之处
音视频
目前市场急需音视频人才,这是毋庸置疑的,南抖音,北快手的崛起,加上头条等小视频,直播等兴起,这个行业很吃香是真的。不过音视频这块也是比较难的,音频的录制,解码等,包括视频,你要学习的东西有很多,熟悉Mediacodec,NDK,JNI,C/C++等基本技术,还需要了解ffmpeg, OpenGL等相关,学习难度较大,但是回报也是比较大的。如果你有C/C++基础,倒是可以试试,但是如果你还要从头学习C/C++,那就有些许麻烦了,学会这两门不是一朝一夕的,了解api的同时,实践也很重要。
车载
移动端卷的飞起,加上现在车企的火热,很多Android人都对此跃跃欲试。但是动身之前,还是先看看你是否能满足下列要求:对整个源码比较了解,基本的编译,烧录还是要会的,其次就是一些本地化的东西,比如串口,蓝牙,WIFI等,其次是上层应用,比如多媒体,收音机,你要理解解码,MCU通信,如果做Launcher,Setting,也需要了解一些你做互联网应用接触不到的东西,比如系统权限,系统接口,并且对你编码能力有一些要求,毕竟设备的配置不高,性能优化的要求还是比较高的。
除了这些专业知识,你还需要了解一些课外知识,比如让你做空调系统的语音控制,你需要了解方控,指示灯标识,各种模式的空调模式等,你会开车还好说,你不会开呢?同理还有很多需要注意的细节。但是这个行业还是值得进军的,每天都倍感压力的工作何尝不是天天在进步。
Framework
无需多言,Android开发的大基石,想进阶的话,Framework是有必要了解的,你要linux sync一份源码,了解一下编译,Build系统,mk脚本,一些机制的启动过程,一些组件的执行过程,一些控件的绘制过程等,博大精深,这是一条很长很长的路,天将降大任于斯人也。学习还是要学习的,就是要看你想深入到什么地步,是只是想简单理解,还是想修改,乃至ROMer,这样你的Android道路也会越来越宽,同样的,你的头发也会越来越少。
至少你要明白的是,你需要了解Linux的常用命令和使用技巧,C/C++的基本语法,源码的结构树,以及各种脚本的大致含义,比如你内置一个第三方Apk,mk脚本应该怎么写,同样的,你想知道四大组件的工作过程,也要追踪源码一路跟下去。而且如果想进入到上述的车载/物联网行业当中,对于Framework的源码必须要有足够深入的理解,否则寸步难行。
对于上述的学习趋势,大家肯定也会有不同看法。但只要你想继续在Android端做下去,从上述选项中必选的一定是Framework,这点毋庸置疑
为了帮助大家更好地掌握Framework源码,这里分享给大家一份Google大神整理的《Android11.0最新 Framework解析》,带你把Framework扒个精光!
第一章-系统启动
- Android系统架构
- Android是怎么启动的
- Android 11.0系统启动之init进程
Android11.0系统启动之Zygote进程 - Zygote架构图
- Zygote 是如何被启动的
- Zygote 启动后做了什么
- Android 11.0 系统启动之SystemServer进程
SystemServer架构图
SystemServer思维导图 - Android 11.0 系统服务之ActivityMnagerService-AMS启动流程
- Android11.0系统启动之Launcher(桌面)启动流程
Android11.0应用进程创建过程以及Zygote的fork流程
Android 11.0PackageManagerService-APK安装流程
第二章-日志系统篇
Android11.0 日志系统分析-logd、logcat 指令说明、分类和属性
第三章-Binder通信原理
Binder、HwBinder、VndBinder概要
Binder入门篇
ServiceManager篇
Native-C\C++实例分析
Binder驱动分析
Binder数据如何完成定向打击
Framework层分析
第四章-HwBinder通信原理
HwBinder通信原理
HIDL示例-C++服务创建Client验证
HwServiceManager
Native层HIDL服务的注册原理
HwBinder驱动篇
第五章-编译原理
Android11.0-编译系统入门
Android11.0-编译环境初始化
Android11.0-make编译过程
Android11.0-Image打包流程
Android11.0-Kati详解
Android11.0-Blueprint简介
Android11.0-Blueprint代码详细分析