前言
金三银四又是一波跳槽高峰,但从最近了解到的行情来看,要找个好的工作非常难,保住现在的工作也都非常不易。2023年迄今为止,全球有505家科技公司共裁员148180人。
那如何才能避免自己被裁员呢?
对于Android程序员来说,在移动互联网整体发展趋于平稳,且行业大环境处于“隧道期”时,要想能够获得一个较好的职场发展机会是具有一定难度的。但是随着5G标准的落地,以及产业互联网建设大幕的拉开,未来Android程序员的长期发展方向还是比较不错的。要想能够顺利的走出“隧道”,迎接更好的发展机会,Android程序员需要做好以下几件事:
第一:丰富自身的专业知识结构。目前Android开发、iOS开发和Web前端开发进行整合的趋势比较明显,不少科技公司已经把这些开发角色统一并入到前端团队,在这种情况下,如果能掌握更丰富的知识结构,无疑会提升自己的职场竞争力。
第二:把握行业发展趋势。把握行业发展的大趋势,关注重点发展领域,这样会寻找到更多的发展机会。当前5G标准已经落地,车联网、农业物联网、VR/AR(可穿戴设备)等领域迎来大量的发展机会,而这些领域也会陆续释放出一些就业机会。
第三:做好本职工作。程序员通过岗位获得提升是一个重要的提升渠道,所以一定要做好本职工作,不断深耕技术,这是未来发展的重要基础
除此之外,避免被裁的唯一方式就是尽量的让自己有壁垒,增加不可替代性。这需要自己动脑子去思考,用双眼去观察,什么是壁垒,怎样让自己拥有这样的壁垒,说白了,就是要留心眼,不要每天混日子,也不要一直哼哧哼哧的埋头苦干。
学习方法
而Android 的关键组成部分是 Framework 即应用框架层,为帮助大家了解 Framework 在整个 Android 架构中的功能与构造,系统的学习和掌握Android framework,这里特意联合了阿里P7架构师和谷歌技术团队共同整理了一份 Android framework 全家桶学习资料。
内容概要:《Android Framework 开发揭秘》;Android Framework 高频面试题总结;Android
Framework 精编内核解析;Android 11.0 最新 Framework解析。内容特点:条理清晰,含图像化表示更加易懂。
《Android Framework 开发揭秘》
目录
第一章 系统启动流程分析
● 第一节 Android启动概览
● 第二节 init.rc解析
● 第三节 Zygote
● 面试题
第二章 Binder解析
● 第一节 宏观认识Binder
● 第二节 binder的jni方法注册
● 第三节 binder驱动
● 第四节 数据结构
● 第五节 启动service_manager
● 第六节 获取service_manager
● 第七节 addService流程
● 第八节 Binder面试题全解析
第三章 Handler解析
● 第一节 源码分析
● 第二节 难点问题
● 第三节 Handler常见面试题
第四章 AMS解析
● 第一节 引言
● 第二节 Android架构
● 第三节 通信方式
● 第四节 系统启动系列
● 第五节 AMS
● 第六节 AMS面试题解析
第五章 WMS解析
● 第一节Activity与Window相关概念
● 第二节 Android窗口管理服务WindowManagerService计算Activity窗口大
● 第三节Android窗口管理服务WindowManagerService对窗口的组织方式分析
● 第四节 Android窗口管理服务WindowManagerService对输入法窗口(Input
● 第五节 Android窗口管理服务WindowManagerService对壁纸窗口(Wallpap
● 第六节Android窗口管理服务WindowManagerService计算窗口Z轴位置的过程分析
● 第七节Android窗口管理服务WindowManagerService显示Activity组件的启
● 第八节Android窗口管理服务WindowManagerService切换Activity窗口(A
● 第九节 Android窗口管理服务WindowManagerService显示窗口动画的原理分析
第六章PKMS Android10.0 源码解读
● 第一节 前言 PKMS是什么东西
● 第二节 PKMS概述信息
● 第三节 PKMS角色位置
● 第四节 PKMS启动过程分析
● 第五节 APK的扫描
● 第六节 PMS之权限扫描
● 第七节 PackageManagerService大综合笔记
《Android Framework 精编内核解析》
目录
第一章 深入解析Binder
● 第一节 Binder系列—开篇
● 第二节 Binder Driver初探
● 第三节 Binder Driver再探
● 第四节 Binder启动ServiceManager
● 第五节 获取ServiceManager
● 第六节 注册服务(addService)
● 第七节 获取服务(getService)
● 第八节 Framework层分析
● 第九节 如何使用Binder
● 第十节 如何使用AIDL
● 第十一节 Binder总结
● 第十二节 Binder面试题全解析
第二章 深入解析Handler消息机制
● 第一节 宏观理论分析与Message源码分析
● 第二节 MessageQueue的源码分析
● 第三节 Looper的源码分析
● 第四节 Handler的源码分析
● 第五节 Handler机制实现原理总结
● 第六节 Handler面试题全解析
第三章 Dalvik VM进程系统
● 第一节 Android系统启动-综述
● 第二节 Init篇
● 第三节 zygote篇
● 第四节 SystemServer上篇
● 第五节 SystemServer下篇
第四章 深入解析WMS
● 第一节 WMS概述
● 第二节 WMS的诞生
第五章 PackageMS启动
● 第一节 PackageMS相关框架类
● 第二节 PackageMS启动过程
第六章 AMS 面试专题
● 第一节 AMS
《Android 11.0最新 Framework 解析》
目录
第一章 系统启动
● 第一节 Android系统结构
● 第二节 Android是怎么启动的
● 第三节 Android 11.0系统启动之init进程
● 第四节 Android11.0系统启动之Zygote进程
● 第五节 Android 11.0 系统启动之SystemServer进程
● 第六节 Android 11.0 系统服务之ActivityMnagerService-AMS启动流程
● 第七节 Android11.0系统启动之Launcher(桌面)启动流程
● 第八节 Android11.0应用进程创建过程以及Zygote的fork流程
● 第九节 Android 11.0 PackageManagerService(一)工作原理及启动流程
● 第十节 Android 11.0 PackageManagerService-APK安装流程
第二章 日志系统篇
● 第一节 Android11.0 日志系统分析-logd、logcat 指令说明、分类和属性
第三章 Binder通信原理
● 第一节 Android11.0 Binder通信原理(一)Binder、HwBinder、VndBinder概要
● 第二节 Android11.0 Binder通信原理(二)-Binder入门篇
● 第三节 Android11.0 Binder通信原理(三)-ServiceManager篇
● 第四节 Android11.0 Binder通信原理(四)-Native-C\C++实例分析
● 第五节 Android11.0 Binder通信原理(五)-Binder驱动分析
● 第六节 Android11.0 Binder通信原理(六)-Binder数据如何完成定向打击
● 第七节 Android11.0 Binder通信原理(七)-Framework binder示例
● 第八节 Android11.0 Binder通信原理(八)-Framework层分析
● 第九节 Android11.0 Binder通信原理(九)-AIDL Binder示例
● 第十节 Android11.0 Binder通信原理(十)-AIDL原理分析-Proxy-Stub设计模式
● 第十一节 Android11.0 Binder通信原理(十一)-Binder总结
第四章 HwBinder通信原理
● 第一节 HwBinder入门篇-Android10.0 HwBinder通信原理(一)
● 第二节 HIDL详解-Android10.0 HwBinder通信原理(二)
● 第三节 HIDL示例-C++服务创建Client验证-Android10.0 HwBinder通信原理(三)
● 第四节 HIDL示例-JAVA服务创建-Client验证-Android10.0 HwBinder通信原理(四)
● 第五节 HwServiceManager篇-Android10.0 HwBinder通信原理(五)
● 第六节 Native层HIDL服务的注册原理-Android10.0 HwBinder通信原理(六)
● 第七节 JAVA层HIDL服务的注册原理-Android10.0 HwBinder通信原理
● 第八节 HwBinder驱动篇-Android10.0 HwBinder通信原理
● 第九节 HwBinder原理总结-Android10.0 HwBinder通信原理
第五章 编译原理
● 第一节 编译系统入门篇-Android10.0编译系统
● 第二节 编译环境初始化-Android11.0编译系统
● 第三节 make编译过程-Android11.0编译系统(三)
● 第四节 Image打包流程-Android11.0编译系统(四)
● 第五节 Kati详解-Android11.0编译系统
● 第六节 Blueprint简介-Android11.0编译系统-
● 第七节 Blueprint代码详细分析-Android11.0编译系统
《Android Framework 高频面试题总结》
目录
第一章 AMS、PMS
● 第一节 AMS概述
● 第二节 AMS的启动流程
● 第三节 AMS与进程启动
● 第四节 AMS家族
● 第五节 PMS前言
第二章 Activity 启动流程,App 启动流程
● 第一节 Activity的启动模式
● 第二节 什么是Zygote进程
● 第三节 Zygote进程的启动流程
● 第四节 SystemServer进程启动流程
● 第五节 启动服务
第三章 Binder 机制(IPC、AIDL 的使用)
● 第一节 什么是AIDL以及如何使用(★★★★)
● 第二节 AIDL的全称是什么?如何工作?能处理哪些类型的数据?(★★★)
● 第三节 Android的IPC通信方式,线程(进程间)通信机制有哪些
第四****章 为什么使用 Parcelable,好处是什么?
● 第一节 实现机制
第五章 Android 图像显示相关流程,Vsync 信号等
最后
老子说有道无术术可以求,有术无道止于术。人不能一直沉迷于术的层面,还必须思考道的层面,也就是战略方向,方向不对努力白费。