FFmpeg开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向
IT寒冬之下,程序员这个职业不再像以往那么吃香,尤其是APP开发的门槛越来越高,使得安卓程序员不得不求变,如果不在技术上及时转型提高,逆水行舟未来不可期呀。
有鉴于此,博主整理了几个可供安卓程序员的技术转型发展方向,供大家参考。
1、继续深耕Android的应用开发
谷歌爸爸是安卓的爹,要想继续吃安卓这口饭,就要抱紧谷歌爸爸的大腿。
爸爸每年都对Android和AndroidStudio升级换代,咱们马上研究Android1x的新特性,钻研AndroidStudio的新功能。
爸爸说要把APP的开发语言从Java换成Kotlin,咱们马上学习Kotlin编程,什么KTX扩展库咬牙啃下。
爸爸推出了Jetpack套件意图一统安卓常用组件库,咱们马上引入Jetpack的诸多工具包,学他个天昏地暗。
爸爸推出了Flutter框架准备打造无所不能的跨端开发环境,咱们马上绞尽脑汁开干Flutter,连同Dart语言一起干。
爸爸推出了Compose项目要重构安卓界面控件,咱们马上熬夜通宵拿下Compose,只为体验那般丝滑的吹嘘快感。
总之,咱们唯谷歌爸爸马首是瞻,只要爸爸搞出什么新东西,咱们赴汤蹈火在所不辞,务必要第一时间尝鲜。
嗯,学习APP的Kotlin编程推荐这本书《Kotlin从零到精通Android开发》。学习Jetpack套件与最新的Android开发推荐这本书《Android Studio开发实战:从零基础到App上线(第3版)》,该书基于Android12和Android Studio Dolphin,介绍了包含DataStore、Room、RecyclerView、ViewPager2、WorkManager、Glide、CameraX、ExoPlayer等等在内的Jetpack套件。
2、深入挖掘Android的底层框架
首先下载谷歌爸爸提供的AOSP源码,国内各家手机厂商(遥遥领先除外)的安卓系统统统基于AOSP,甭管他什么砰的一声OS,别管他什么摸的一下OS,只要看它开机画面有没有“Powered by Android”,有这个开机文字就是谷歌爸爸赏饭吃。
然后编译调试下载了的AOSP源码,认真阅读数亿行的AOSP源码,在这个时间就是金钱的年代,要是啃完这浩如烟海的AOSP源码,还没有两鬓银丝,也没有风华绝顶,那您肯定是万里挑一的天才!
一旦学成安卓的底层框架,那就如虎添翼,什么手机OS、平板OS、车机OS、智能电视OS等等统统拿下,马上练就“人-车-家(闭环)”的盖世神功。
3、竖向钻研转型做Java后端开发
眼见APP开发的蛋糕越来越小,安卓程序员总想跳出围城外面看看。虽然Java需求同样不振,但是好在盘子大,机会仍然比APP开发多。
正好APP开发传统使用Java编程,安卓程序员转向Java后端无需学习新语言。可是这些年Java也在不断迭代,光光大版本就有Java8、Java11、Java17三个,这几个大版本的众多新特性足够让安卓程序员喝几壶了的。
不过后端开发仅仅也用Java而已,开发环境和开发框架与安卓相比截然不同。Java后端的开发环境采用IEDA,开发框架采用Springboot+MyBatis,更大型的框架要用SpringCloud。什么Eclipse、什么SSH早就落伍了,赶紧扔掉,现在都是202x年了。
嗯,学习后端的Java编程推荐这本书《好好学Java:从零基础到项目实战》,该书讲述了Java8和Java11的新特性,且基于IDEA开发环境讲解,同时介绍了Java程序如何操作MySQL数据库。
4、横向拓展转型做大前端开发
习惯了做APP界面开发,安卓程序员对其他前端技术比如H5也屡有涉猎,因为都是控件来控件去,无需关心后端纷繁复杂的业务逻辑,可以节省不少脑细胞。
Web前端的编程语言首选JavaScript,简称JS,前端的开发引擎主要有Node.js和Vue.js,开发环境采用VS Code,另外别忘了Web网页的标记语言HTML5。
除了Web前端之外,各大公司还推出了自己的前端开发框架,比如腾讯的微信小程序、华为的鸿蒙APP等等。
微信小程序采用TypeScript编程,TypeScript基于JavaScript加以扩展,简称TS。小程序有专门的开发环境叫做微信开发者工具。
鸿蒙APP采用ArkTS编程,ArkTS是HarmonyOS应用开发语言,基于TypeScript加以扩展。鸿蒙APP有专门的开发环境叫做DevEco Studio。
5、迈开大步转型做C/C++底层开发
移动互联网已成昨日黄花,产业互联网才是八九点钟的朝阳。看看TIOBE编程语言排行榜,Java语言早已落后于C/C++,甚至Java的热度只有C/C++的一半不到。
然而安卓程序员跨界直接转C/C++颇有难度,为了更加平滑地转型C/C++编程,可以考虑从音视频开发着手。
正好Android开发有个重要分支叫做Android音视频,涉及到WebRTC、FFmpeg等开源框架。其中WebRTC主要用于视频通话,而FFmpeg主要用于音视频播放、音视频编辑等等。
谷歌爸爸提供了APP专用的WebRTC库,直接引入App工程就行。而FFmpeg采用C语言编写,需要通过NDK才能集成到App工程。《FFmpeg开发实战:从零基础到短视频上线》一书的第12章详细介绍了如何给App工程集成FFmpeg库,可供参考。
把FFmpeg学得差不多了,再来研究直播系统的相关技术,比如流媒体服务器SRS、ZLMediaKit,又如电脑端的直播推流工具OBS Studio,手机端的直播推流工具RTMP Streamer、SRT Streamer等等,有关直播系统的详细技术可参考系列文章《FFmpeg开发笔记全目录(FFmpeg开发实战详解,含直播系统的搭建过程)》。
在学习研究FFmpeg等开源框架的时候,相信您已经逐渐掌握了C/C++编程,那么加把劲用上C++的桌面开发环境Qt,产业互联网正在向您招手啦。
嗯,学习App的WebRTC编程推荐这本书《Android Studio开发实战:从零基础到App上线(第3版)》,该书第20章详细介绍了WebRTC的服务端搭建和客户端集成过程,并演示了实战项目“仿微信的视频通话”。
嗯,学习FFmpeg编程技术推荐这本书《FFmpeg开发实战:从零基础到短视频上线》,该书详细介绍了如何在Windows系统和Linux系统分别搭建FFmpeg的开发环境,第11章还介绍了如何通过Qt+FFmpeg开发桌面程序。
除了上面五个发展方向之外,还可以考虑Python人工智能开发,不过这块与安卓开发隔得太远,就不做深入介绍啦。
FFmpeg开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向的更多相关文章
- FFmpeg开发笔记(五):ffmpeg解码的基本流程详解(ffmpeg3新解码api)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- FFmpeg开发笔记(四):ffmpeg解码的基本流程详解
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- FFmpeg开发笔记(三):ffmpeg介绍、windows编译以及开发环境搭建
前言 本篇章是对之前windows环境的补充,之前windows的是无需进行编译的,此篇使用源码进行编译,版本就使用3.4.8. FFmpeg简介 FFmpeg是领先的多媒体框架,能够解码 ...
- FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放
前言 ffmpeg播放rtsp网络流和摄像头流. Demo 使用ffmpeg播放局域网rtsp1080p海康摄像头:延迟0.2s,存在马赛克 使用ffmpeg播放网络rtsp文件流 ...
- FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台
FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待 前言 将ffmpeg移植到海思H ...
- Django开发笔记四
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.邮箱激活 users app下,models.py: ...
- 在Java大环境下.NET程序员如何夺得一线生机
先来看一组数据,从某招聘网站直接检索3-4w的岗位,会看到Java与.NET社会需求量的巨大差异,这里就不再对比高薪的岗位了,.NET的高薪岗位更是少的可怜: 笔者从业十余年,一直是在.NET圈子 ...
- FFmpeg开发笔记(一)搭建Linux系统的开发环境
对于初学者来说,如何搭建FFmpeg的开发环境是个不小的拦路虎,因为FFmpeg用到了许多第三方开发包,所以要先编译这些第三方源码,之后才能给FFmpeg集成编译好的第三方库.不过考虑到刚开始仅仅调用 ...
- 金三银四背后,一个 Android 程序员的面试心得
回顾一下自己这段时间的经历,九月份的时候,公司通知了裁员,我匆匆忙忙地出去面了几家,但最终都没有拿到offer,我感觉今年的寒冬有点冷.到十二月份,公司开始第二波裁员,我决定主动拿赔偿走人.后续的面试 ...
- 互联网寒冬,Python 程序员如何准备面试
虽说年年都在喊互联网寒冬,最难就业季,但是今年确实有点不一样,年前年后一波又一波互联网公司宣布『人员调整,结构优化』, 这是往年没发生过的. 是不是面试机会就少了很多呢?不是的. 搜索招聘网站我们可以 ...
随机推荐
- ZYNQ:提取PetaLinux中Linux和UBoot配置、源码
说明 默认情况下,PetaLinux在编译完成后会删除源代码,以节省硬盘空间. 在project-spec/meta-user/conf/petalinuxbsp.conf里,添加如下内容,可以保留L ...
- 《DNK210使用指南 -CanMV版 V1.0》第四章 基于CanMV的C开发环境搭建
第四章 基于CanMV的C开发环境搭建 1)实验平台:正点原子DNK210开发板 2) 章节摘自[正点原子]DNK210使用指南 - CanMV版 V1.0 3)购买链接:https://detail ...
- GUI自动化测试策略
标签(空格分隔): GUI自动化策略 带你看看实际的大型全球化电商网站的 GUI 自动化测试如何开展.这场实战,我将从以下两个方面展开 试策略如何设计?这一点,我会根据亲身经历的实际项目,和你探讨 G ...
- saltStack自动化工具
目录 SaltStack自动化工具 核心概念 1. Master 和 Minion 2. State 3. Pillar 4. Grains 5. Modules 6. Runner 7. React ...
- redis-sort by
对某个列表(list).集合(set).有序集合(zset)排序的时候按照某个 参考键 进行排序,而不是按照按照这个列表.集合或有序集合本身进行排序: 被排序的键和参考键在业务上有关联(这个由业务保证 ...
- 基于Docker安装项目管理工具禅道
禅道是通用的项目管理软件 完整支持敏捷项目模型.瀑布项目模型.看板模型 内置项目集.产品.项目和执行四个管理框架 支持CMMI标准的落地实施 下载镜像 docker pull easysoft/zen ...
- 解决方案 | Python中安装pix2tex latex ocr出现报错Cannot mix incompatible Qt library (6.6.2) with this library (6.7.2)
一.问题 Python中安装pix2tex latex ocr出现报错Cannot mix incompatible Qt library (6.6.2) with this library (6.7 ...
- 解读MySQL 8.0数据字典缓存管理机制
背景介绍 MySQL的数据字典(Data Dictionary,简称DD),用于存储数据库的元数据信息,它在8.0版本中被重新设计和实现,通过将所有DD数据唯一地持久化到InnoDB存储引擎的DD t ...
- leetcode简单(设计):[225, 232, 303, 703, 705, 706, 933, 1603, 1656, 09, 30, 041, 03.06]
目录 225. 用队列实现栈(先入后出) 232. 用栈实现队列(先入先出) 303. 区域和检索 - 数组不可变 703. 数据流中的第 K 大元素 705. 设计哈希集合 706. 设计哈希映射 ...
- DASCTF 2023六月挑战赛|二进制专项 PWN (上)
DASCTF 2023六月挑战赛|二进制专项 PWN (上) 1.easynote edit函数对长度没有检查 free函数存在UAF漏洞 思路:1.通过堆溢出,UAF,修改size位达到堆块重叠,使 ...