​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开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向的更多相关文章

  1. FFmpeg开发笔记(五):ffmpeg解码的基本流程详解(ffmpeg3新解码api)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  2. FFmpeg开发笔记(四):ffmpeg解码的基本流程详解

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  3. FFmpeg开发笔记(三):ffmpeg介绍、windows编译以及开发环境搭建

    前言   本篇章是对之前windows环境的补充,之前windows的是无需进行编译的,此篇使用源码进行编译,版本就使用3.4.8.   FFmpeg简介   FFmpeg是领先的多媒体框架,能够解码 ...

  4. FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放

    前言   ffmpeg播放rtsp网络流和摄像头流.   Demo   使用ffmpeg播放局域网rtsp1080p海康摄像头:延迟0.2s,存在马赛克     使用ffmpeg播放网络rtsp文件流 ...

  5. FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台

    FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待   前言   将ffmpeg移植到海思H ...

  6. Django开发笔记四

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.邮箱激活 users app下,models.py: ...

  7. 在Java大环境下.NET程序员如何夺得一线生机

    先来看一组数据,从某招聘网站直接检索3-4w的岗位,会看到Java与.NET社会需求量的巨大差异,这里就不再对比高薪的岗位了,.NET的高薪岗位更是少的可怜:   笔者从业十余年,一直是在.NET圈子 ...

  8. FFmpeg开发笔记(一)搭建Linux系统的开发环境

    对于初学者来说,如何搭建FFmpeg的开发环境是个不小的拦路虎,因为FFmpeg用到了许多第三方开发包,所以要先编译这些第三方源码,之后才能给FFmpeg集成编译好的第三方库.不过考虑到刚开始仅仅调用 ...

  9. 金三银四背后,一个 Android 程序员的面试心得

    回顾一下自己这段时间的经历,九月份的时候,公司通知了裁员,我匆匆忙忙地出去面了几家,但最终都没有拿到offer,我感觉今年的寒冬有点冷.到十二月份,公司开始第二波裁员,我决定主动拿赔偿走人.后续的面试 ...

  10. 互联网寒冬,Python 程序员如何准备面试

    虽说年年都在喊互联网寒冬,最难就业季,但是今年确实有点不一样,年前年后一波又一波互联网公司宣布『人员调整,结构优化』, 这是往年没发生过的. 是不是面试机会就少了很多呢?不是的. 搜索招聘网站我们可以 ...

随机推荐

  1. java+SpringCloud开发的性能和环保问题

    对于大部分商业应用开发程序员而言,使用java+spring是一件幸福的事情. 一般情况下,我们使用cloud开发不是那么重要.精密的应用,这些应用包括例如大型的商业交易,社区等等. 因为这些应用天然 ...

  2. Xilinx ZYNQ-7000 平台简介

    平台介绍 Zynq7000是赛灵思公司(Xilinx)推出的行业第一个可扩展处理平台Zynq系列.旨在为视频监视.汽车驾驶员辅助以及工厂自动化等高端嵌入式应用提供所需的处理与计算性能水平. 在2010 ...

  3. Nuxt3 的生命周期和钩子函数(五)

    title: Nuxt3 的生命周期和钩子函数(五) date: 2024/6/29 updated: 2024/6/29 author: cmdragon excerpt: 摘要:本文详细介绍了Nu ...

  4. Excel好用的技巧

    http://www.360doc.com/content/18/0603/07/39124342_759238510.shtml

  5. Qt--共享内存监听工具

    共享内存概述 共享内存的特点: 1)共享内存是进程共享数据的一种最快的方法. 一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容. 2)使用共享内存要注意的是多个进程 ...

  6. WPF实现TextBlock呼吸灯效果

    实现代码 <TextBlock Text="录像中" FontSize="48" Foreground="#ED4646" Horiz ...

  7. 全新发布!桌面端效率工具RunFlow

    RunFlow是一款跨平台的生产力工具,可以启动应用程序和搜索文件等,类似于Windows平台的Wox和PowerToys,同样也类似于Mac平台的Alfred和Raycast.但我们并不与这些工具相 ...

  8. webpack4.15.1 学习笔记(三) — 模块热替换HMR

    目录 模块热替换 HMR HMR监听文件变化 HMR 修改样式表 模块热替换 HMR 允许在运行时更新各种模块,而无需进行完全刷新.不适用于生产环境,意味着应当只在开发环境使用.启用HMR实际上就是更 ...

  9. PositiveSmallIntegerField、SmallIntegerField和IntegerField

    当您在Django中定义模型时,有几种不同的整数字段类型可供选择,包括PositiveSmallIntegerField.SmallIntegerField和IntegerField.以下是这三种整数 ...

  10. 第一节 线性数据结构 STL

    vector 容器 迭代器 vector<int> v{1, 0, 0, 8, 6}; for(vector<int>::interator it = v.begin(); i ...