​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. 实验8.Vlan Hybrid实验

    # 实验8.Vlan Hybrid实验 本实验用于测试华为独有的混合式接口类型hybrid 实验组 配置交换机 对交换机sw1与sw2做具体配置 SW1 vlan ba 10 20 100 int g ...

  2. Linux 内核:设备驱动模型 学习总结

    背景 其实之前就转载过别人针对Linux的设备驱动模型(Linux Device Driver Model,LDDM)的文章,但是受限于自身的能力,因此花了点时间重新学习了一下. 前人写的文章很好,我 ...

  3. 从安装到配置,教你用Argo CD对接CCE集群完成测试、生产部署

    本文分享自华为云社区<Argo CD对接CCE完成不同测试.生产环境业务部署>,作者: 可以交个朋友. 一 背景说明 Argo CD是用于Kubernetes的声明性GitOps持续交付工 ...

  4. 解密Prompt系列33. LLM之图表理解任务-多模态篇

    上一章我们介绍了纯文本模态的表格理解任务,这一章我们聚焦多模态图表数据.先讨论下单纯使用prompt的情况下,图片和文字模态哪种表格模型理解的效果更好更好,再说下和表格相关的图表理解任务的微调方案. ...

  5. AOP面向切面编程@Aspect 注解用法

    AOP简介 AOP为Aspect Oriented Programming 的缩写,意为"面向切面编程",通过预编译方式和运行预期动态代理实现程序功能的统一维护的一种技术.AOP是 ...

  6. Windows安装OnlyOfiice教程

    1.OnlyOffice介绍 OnlyOffice 是一个在线创建.编辑和协作文档的服务. 2.Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移 ...

  7. 使用C#对华为IPC摄像头二次开发(二)

    上一篇我们实现了用SDK登录摄像头并实现预览(https://www.cnblogs.com/wdw984/p/13564195.html),这次我们实现通过SDK调用摄像头本身自带的人脸抓拍功能. ...

  8. Mybatis 二级缓存的使用

    Mybatis二级缓存 简介:二级缓存是namesace级别的,多个SqlSession去操作同个namespace下的Mapper的sql语句,多个SqlSession可以共用二级缓存,如果两个ma ...

  9. Java 对象转XML xStream 别名的使用 附下载方式

    下载方式 Maven方式 pom.xml中 <dependency> <groupId>xstream</groupId> <artifactId>xs ...

  10. javascript深入参数传递

    我们都知道javascript的基础数据类型有: Undefined . Null . Boolean . Number . String . 如果从一个变量向另一个变量复制基本类型的值,会在变量对象 ...