当前位置: 首页 > news >正文

千里马2023年终总结-android framework实战

背景:

hi粉丝朋友们:
2023年马上就过去了,很多学员朋友也都希望马哥这边写个年终总结,因为这几个月时间都忙于新课程hal+systrace+surfaceflinger专题的开发,差点都忘记了这个事情了,今天特别花时间来写个blog总结记录一下这不平凡的一年。

1、2023是疫情结束后第一年,也是各行各业艰难的一年

2023年里无论是哪个行业,不仅仅是程序员这个行业,都是非常艰难,基本上就是经济危机,下岗失业潮状态。
2023年我相信绝对是android程序员出现以来最艰难一年,也是互联网最艰难的一年。在这一年里,我们突然发现全体大裁员原来离我们是那么的近,而以前只是听听的裁员故事,现在一个个的发生在我们自己或身边最近的人身上。
在这里插入图片描述
裁员基本上持续了2023年一整年,我周围接触的同事朋友,还有很多学员朋友们,都纷纷反馈陆陆续续不断裁员中,而且今年裁员和以前的裁员可是完全不一样,以前听说裁员只是末尾淘汰,可能是自己能力不行被裁那种,今年裁员是直接公司某块业务裁员,或者公司合并裁员,公司倒闭讨薪等。

2、2023开始独立创业的第一年

说起今年开始创业做android framework知识付费课程这个事情,可不是说一时兴起想来干的,今年创业的事情是心中一直想做的,是真心喜欢干这个干货知识分享,可以认为是兴趣。 其实早在2020年就开始简单的准备积累了,刚开始几年基本上属于不断积累自己创业资本的时期,这里资本不是说“钱”,最重要是自身的知识体系,自己的铁杆粉丝积累,商业的运营经验积累。
慢慢这些已经积累的到了一定级别,发现一边上班一边给大家出课程的这种速度,已经完全无法满足这些铁粉和市场的需求了,今年android app失业潮来临了,发现很多android app开发同学找工作,都不想再找app开发了,都想找做framework相关岗位了。
相对来说framework技术门槛还是比较高,技术栈深度要深很多,而且可以继承一些android app开发的经验优势,基本上这块岗位需求其实市场并不少,因为主要都是android设备终端厂商都会有需要这样人才,比如常见手机,车机,电视机,手表手环,平板等,尤其是这一两年新能源汽车火爆也点爆了车机开发的招聘潮,但是framework这块人才少,毕竟想通过完全看看blog或者书啥的自学变成合格framework工程师那实在是太难了。基于这样需求背景,新的学员们就需要更多干货framework课程出现,带领他们可以快速成长为合格的framework工程师。但是以前那种边上班边搞课程的兼职方式完全无法满足了,以前可能一年才可以出一个小专题课程讲解彻底framework的一个核心模块,这个速度相对来说给学员们带来的知识比较慢,而且模块相对也有点少。所以也就是今年,主动离开了自己相伴多年的公司和非常友好的同事们,走上一条全职做framework干货课程分享道路,走上独自创业这条路,这里主要还是学员们对framework干货知识的渴望,及他们一如既往的支持脱不了关系。
补充一点:app失业潮说实话我在2018年左右就开始感觉到了危机,为啥就app开发的失业潮最明显呢?
1.android诞生了10来个年头,基本上市场上的互联网app已经处于完全过了红利期,慢慢发现自己手机打开的app也就那么2-3个top级别的,比如微信,淘宝,京东,支付宝等。完全没有动力去下载新的互联网app,但是这些互联网公司都有庞大的app开发配套团队,app使用很少了意味着这部分开发也就不再需要那么多了,那么肯定会面临裁员。
2.app开发相对来说技术门槛比较低一些,以前很多培训机构都是0基础即可以入行,关键入行后发现每天做的工作其实就是不断重复的业务需求迭代开发,基本周而复始的开发业务,其实就是很多人说的搬砖,不断重复业务开发对于技术的提升来说作用不是很大,对于新人1-3年开发经验和5-6年开发经验来说没有明显差异,因为都是在重复业务开发。

总结2023:

2023年开始全职做课程后,有了更多时间投入到framework的课程研发,可以把在公司里面的很多丰富经验都放到课程中来分享给大家。大专题课程都是经过非常严格的调研,主要调研因素有以下几个:
1、这个专题课程马哥自己是不是有这方面比较深入的经验分享,比如马哥经常在公司里面处理wms闪黑等疑难问题,这类经验属于不太可能从网络学得到的,也基本上很少程序员知道也不可能外传的有用“绝招”,这种在我课程里会毫无保留地分享给大家。
2、这个framework模块是否市场需求量很大,做framework开发其实常见核心模块就那几个,比如常见wms/ams/input/surfaceflinger/pms等,这块说实话也是设备终端厂商人员配备最大部分,所以考虑这个模块是否最大程度符合厂商需要。
3、模块是否有难度,而且又非常重要,比如wms中涉及那些冻屏,黑屏,闪黑等解决,这种普通人基本上很难自学掌握,所以一般不会讲解一些比较简单的framework模块。

产出干货课程部分:

一共产出如下3套大模块课程,一个小项目课程,如下图所示:
在这里插入图片描述
具体的课程详情和课表(内容太多)可以点击下面查看:
WMS/AMS深入开发专题 ,车载多屏互动实战专题,分屏pip自由窗口专题:
https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw
HAL+Perfetto+SurfaceFlinger专题:
https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg

相关的部分课程成果展示:
国内车机大厂多屏互动竞品参考:
在这里插入图片描述
车载多屏互动课程aosp效果:
在这里插入图片描述

国内手机大厂主流自由窗口竞品参考:
在这里插入图片描述

国内手机大厂主流自由窗口产品课程基于aosp完成如下:

在这里插入图片描述
分屏移动相关动画:
在这里插入图片描述

干货blog部分:

今年公开在csdn blog是89篇
主要内容包含以下几个模块部分:
1、课程强相关的一些课程笔记
这个部分一般是输出最多的,一般课程的一些笔记等,我都会以blog方式输出
在这里插入图片描述

2、平时工作或者课程开发framework遇到一些问题分析讲解干货分享
这个部分属于一些开发过程中技巧分享,问题bug修复后一些总结,一些自己遇到疑问自我解答等内容分享
在这里插入图片描述

3、学员们工作中遇到一些问题,业界难题分享
比如最经典的:
国际学员印度友人求助的aosp 14上面横屏分屏修改后,会产生画面部分黑屏问题
在这里插入图片描述

自我总结

心里焦虑加大了,需要调节好平常心面对
创业以来最大感受就是“创业艰难”,原本预想的很美好,终于可以有勇气为了理想和兴趣奋斗了,一定是每天满怀激情的干。实际情况是:当自己的兴趣与谋生的收入挂钩时候,一切变得不那么理想和美好。每天还是会有担心自己课程的销售情况,必然就会有焦虑,这种心态和上班兼职搞完全不是一回事。所以心态上确实是相比以前有焦虑一些,这个部分做的不够好。
时间不够用
创业初期,也没有很多资金搞团队,大部分工作都落到我的头上,比如一些售前咨询,课程研发录制,售后答疑服务等。这个时候明显感觉自己每天的时间一晃而过,老感觉时间太快,干到事情太少。这部分在新的一年计划把一些非课程核心的比如,售前咨询和销售等分离出去给别人,自己更加专注新课程研发,干货技术分享,技术答疑服务。
收获很大
很多学员朋友都因为学了马哥的课程,有了肉眼可见的技术进步,越来越多同学通过课程提高了自己能力,找到了自己喜欢的framework工作,有的同学升职加薪,当这些消息和我分享时候,感觉创业做的这一切都是值得的。毕竟在framework技术提高方面帮助到了很多学员,慢慢国内安卓程序员的framework技术水平可能因为这些干货课程的出现有了更加快速的提升,正因为有学员朋友们的鼓励和进步才给了我一直坚持做下去的决心。当然自己的技术进步也是比以前快了,有了学员们对framework各个模块的需求,也不得不努力提升自己,给大家分享更多干货。

展望2024

新的一年,希望各位粉丝朋友技术更上一层楼,马哥会继续一如既往的坚持分享更多的framework干货课程,也希望各位粉丝朋友多多支持马哥的课程,放心的跟着马哥学习framework技术,绝对可以让你收获满满,进步飞快。
未来一年的课程预计规划分享:
1、framework的其他核心模块方向
2、音视频投屏,音频框架等方向

本文章对应视频手把手教你学framework:
hal+perfetto+surfaceflinger
https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg
在这里插入图片描述

私聊作者+v(androidframework007)

七件套专题:在这里插入图片描述
点击这里 https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw

视频:https://www.bilibili.com/video/BV1wc41117L4/

相关文章:

千里马2023年终总结-android framework实战

背景: hi粉丝朋友们: 2023年马上就过去了,很多学员朋友也都希望马哥这边写个年终总结,因为这几个月时间都忙于新课程halsystracesurfaceflinger专题的开发,差点都忘记了这个事情了,今天特别花时间来写个bl…...

vue3中pinia的使用及持久化(详细解释)

解释一下pinia: Pinia是一个基于Vue3的状态管理库,它提供了类似Vuex的功能,但是更加轻量化和简单易用。Pinia的核心思想是将所有状态存储在单个store中,并且将store的行为和数据暴露为可响应的API,从而实现数据&#…...

安装 yarn、pnpm、功能比较

安装 yarn 官网:https://classic.yarnpkg.com/ 快速、可靠和安全的依赖性管理。 Yarn是您代码的软件包管理器。它允许您使用和共享(例如JavaScript)与来自世界各地的其他开发人员一起编写代码。Yarn是一个新的快速安全可信赖的可以替代 NP…...

计算机专业个人简历范文(8篇)

HR浏览一份简历也就25秒左右,如果你连「好简历」都没有,怎么能找到好工作呢? 如果你不懂得如何在简历上展示自己,或者觉得怎么改简历都不出彩,那请你一定仔细读完。 互联网运营个人简历范文> 男 22 本科 AI简历…...

几个实用网站

论文短语:https://www.phrasebank.manchester.ac.uk/ 翻译:https://www.deepl.com/en/translator 润色:https://quillbot.com/ 榜单:www.paperwithcode.com ****NLP民工的乐园: 几乎最全的中文NLP资源库:****https…...

Pycharm 切换interpreter---python的环境和第三方库问题

这篇回答两个问题: 1.为什么在 pycharm中打开新的project,切换interpreter 之后发现自己之前装的库消失了? 2.为什么 interpreter 切换到python3.8了, terminal 还是在 3.9?? 问题的关键:搞懂什…...

TP-LINK 路由器忘记密码 - 恢复出厂设置

TP-LINK 路由器忘记密码 - 恢复出厂设置 1. 恢复出厂设置2. 创建管理员密码3. 上网设置4. 无线设置5. TP-LINK ID6. 网络状态References 1. 恢复出厂设置 在设备通电的情况下,按住路由器背面的 Reset 按钮直到所有指示灯同时亮起后松开。 2. 创建管理员密码 3. 上网…...

关闭 Elasticsearch 集群的安全性设置

关闭 Elasticsearch 集群的安全性设置,特别是如果您正在使用 X-Pack,涉及到修改 Elasticsearch 的配置。以下是一般步骤,但请注意,这可能会使您的 Elasticsearch 集群面临安全风险,因此建议仅在开发或测试环境中执行此…...

[技术分享]一招解决 MySQL 中 DDL 被阻塞的问题

爱可生开源社区. 爱可生开源社区,提供稳定的MySQL企业级开源工具及服务,每年1024开源一款优良组件,并持续运营维护。 背景 之前碰到客户咨询定位DDL阻塞的相关问题,整理了一下方法,如何解决DDL被阻塞的问题。下面,就这个问题,整理了一下思路: 怎么判断一个 DDL 是…...

Windows搭建Emby媒体库服务器,无公网IP远程访问本地影音文件

文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中,观看视频绝对是主力应用场景之一&…...

自动化测试系列 之 Python单元测试框架unittest

一、概述 什么是单元测试 单元测试是一种软件测试方法,是测试最小的可测试单元,通常是一个函数或一个方法。 在软件开发过程中,单元测试作为一项重要的测试方法被广泛应用。 为什么需要单元测试 单元测试是软件开发中重要的一环&#xf…...

C语言朴素算法

#include <stdio.h> #include <string.h>// 朴素算法&#xff0c;用于字符串匹配 void naiveMatch(char* text, char* pattern) {int textLength strlen(text); // 计算文本串长度int patternLength strlen(pattern); // 计算模式串长度for …...

【力扣题解】P501-二叉搜索树中的众数-Java题解

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P501-二叉搜索树中的众数-Java题解&#x1f30f;题目描述&#x1f4a1;题解&#x1f…...

Wnmp本地部署结合内网穿透实现任意浏览器远程访问本地服务

最近&#xff0c;我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念&#xff0c;而且内容风趣幽默。我觉得它对大家可能会有所帮助&#xff0c;所以我在此分享。点击这里跳转到网站。 文章目录 前言1.Wnmp下载安装2.Wnmp设置3.安装cpolar内网穿透3.1…...

深信服AF防火墙配置SSL VPN

防火墙版本&#xff1a;8.0.85 需提前确认防火墙是是否有SSL VPN的授权&#xff0c;确认授权用户数量 1、确认内外网接口划分 2、网络→SSL VPN&#xff0c;选择内外网接口地址 3、SSL VPN→用户管理→新增一个SSL VPN的用户 4、新增L3VPN资源&#xff0c;类型选择Other&…...

在Spring Cloud中使用Gateway 网关

我们在上述文章中介绍了相关Spring Cloud的五大核心组件&#xff0c;现在我们来了解一下关于Spring Cloud的网关&#xff0c;关于使用网关&#xff0c;我们同时也需要知道他在一个架构中起到的作用&#xff0c;并且&#xff0c;我们需要知道网关具体的相关功能&#xff0c;本篇…...

【Python】配置环境变量

Python配置Windows系统环境变量 打开电脑属性 ——> 高级系统设置 ——> 高级 ——> 环境变量 Python安装目录 D:\Program Files\Python39 winR打开运行&#xff0c;输入cmd打开命令窗口 python -V...

使用.Net nanoFramework 驱动ESP32的OLED显示屏

本文介绍如何使用.Net nanoFramework 驱动ESP32的OLED显示屏。我们将会从最基础的部分开始&#xff0c;逐步深入&#xff0c;让你能够理解并实现整个过程。无论你是初学者还是有一定经验的开发者&#xff0c;这篇文章都会对你有所帮助。 1. 硬件准备 1.1 ESP32开发板 这里我们…...

0基础学习VR全景平台篇第134篇:720VR全景,云台调整节点

相机、云台和脚架全套设备组装完成后需要进行调校才能开始拍摄。这一节&#xff0c;我们将主要介绍云台调整的两个内容&#xff1a;对中心靶、调三点一线。&#xff08;后附调校原理&#xff09; 云台部件名称 一、调节准备 &#xff08;一&#xff09;对于安装好的云台 1.检…...

扫地机器人地图与用户终端的同步

以下内容为本人的学习笔记&#xff0c;如需要转载&#xff0c;请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/APaJheSbgTW3jNssWsp5Ng 地图数据来源于机器人算法模块&#xff0c;一般通过SLAM算法完成建图的过程。 建图过程中&#xff0c;基础数据涉及到各…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

多元隐函数 偏导公式

我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式&#xff0c;给定一个隐函数关系&#xff1a; F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 &#x1f9e0; 目标&#xff1a; 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z​、 …...

20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题

20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题 2025/6/9 20:54 缘起&#xff0c;为了跨网段推流&#xff0c;千辛万苦配置好了网络参数。 但是命令iptables -t filter -F tetherctrl_FORWARD可以在调试串口/DEBUG口正确执行。…...

SQLSERVER-DB操作记录

在SQL Server中&#xff0c;将查询结果放入一张新表可以通过几种方法实现。 方法1&#xff1a;使用SELECT INTO语句 SELECT INTO 语句可以直接将查询结果作为一个新表创建出来。这个新表的结构&#xff08;包括列名和数据类型&#xff09;将与查询结果匹配。 SELECT * INTO 新…...

使用VMware克隆功能快速搭建集群

自己搭建的虚拟机&#xff0c;后续不管是学习java还是大数据&#xff0c;都需要集群&#xff0c;java需要分布式的微服务&#xff0c;大数据Hadoop的计算集群&#xff0c;如果从头开始搭建虚拟机会比较费时费力&#xff0c;这里分享一下如何使用克隆功能快速搭建一个集群 先把…...

React与原生事件:核心差异与性能对比解析

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...