首页 > 编程语言 >FFmpeg开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向

FFmpeg开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向

时间:2024-08-17 11:49:51浏览次数:11  
标签:Java FFmpeg 下安卓 安卓 四十七 开发 Android APP

​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人工智能开发,不过这块与安卓开发隔得太远,就不做深入介绍啦。

 

标签:Java,FFmpeg,下安卓,安卓,四十七,开发,Android,APP
From: https://www.cnblogs.com/aqi00/p/18328122

相关文章

  • linux笔记(1):ubuntu环境下,基于SDL2运行lvgl+ffmpeg播放mp4
    文章目录1.ubuntu安装ffmpeg1.1源码安装1.1克隆ffmpeg源码1.2配置编译条件,编译,安装1.2直接安装依赖包2.下载lvgl源码2.1测试原始代码2.2运行lv_example_ffmpeg_2()例程2.2.1配置LV_USE_FFMPEG为12.2.2lv_example_ffmpeg_2()替换lv_demo_widgets()2.2.3链接......
  • FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
    ​不管是传统互联网还是移动互联网,实时数据传输都是刚需,比如以QQ、微信为代表的即时通信工具,能够实时传输文本和图片。其中一对一的图文通信叫做私聊,多对多的图文通信叫做群聊。除了常见的图文即时通信,还有实时音视频通信,比如一对一的音频通话、一对一的视频通话等等,此时可采用W......
  • FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流
    ​SRTStreamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播。SRTStreamer支持的视频编码包括H264、H265等等,支持的音频编码包括AAC、OPUS等等,可谓功能强大的APP直播框架。相比之下,另一款APP直播框架RTMPStreamer支持RTMP直播和RTSP直播,不支持SRT协议的......
  • 一个简单的录音软件(利用QT录音,ffmpeg进行音频重采样,fdk-aac编码)
             录音软件是一种非常有用的工具,可以帮助我们记录和存储语音信息。在本文中,我们将介绍一个简单的录音软件,该软件利用QT进行录音,使用ffmpeg进行音频重采样,并使用fdk-aac编码。一、 环境介绍  1、QT版本:QT5.12.62、编译器: MSVC2017643、ffmpeg版......
  • 利用QT和FFmpeg实现一个简单的视频播放器
              在当今的多媒体世界中,视频播放已成为不可或缺的一部分。从简单的媒体播放器到复杂的视频编辑软件,视频解码和显示技术无处不在。本示例使用Qt和FFmpeg构建一个简单的视频播放器。利用ffmpeg解码视频,通过QWidget渲染解码后的图像,支持进度条跳转、进度条显示,......
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
    刷题记录*并查集理论基础107.寻找存在的路径*并查集理论基础讲解107.寻找存在的路径题目地址直接套模板。结点编号从1开始,因此定义father数组时需要n+1个空间,否则会越界。时间复杂度:O(......
  • FFmpeg源码:av_realloc、av_reallocp、size_mult、av_realloc_f函数分析
    =================================================================FFmpeg内存管理相关的源码分析:FFmpeg中内存分配和释放相关的源码:av_malloc函数、av_mallocz函数、av_free函数和av_freep函数分析FFmpeg源码:av_realloc、av_reallocp、size_mult、av_realloc_f函数分析FF......
  • FFmpeg存放压缩后的音视频数据的结构体:AVPacket简介
    FFmpeg源码中通过AVPacket存储压缩后的音视频数据。它通常由解复用器(demuxers)输出,然后作为输入传递给解码器,或者从编码器作为输出接收,然后传递给多路复用器(muxers)。对于视频,它通常包含一个压缩帧;对于音频,它可能包含几个压缩帧。编码器允许输出不包含压缩音视频数据、只包含side......
  • ffmpeg和ffplay常用指令
    FFmpeg常见用法1.基本命令结构ffmpeg[global_options]-iinput_file[input_options]output_file[output_options]2.将其它格式图片转换为YUV420pffmpeg-iinput.jpg-pix_fmtyuv420poutput.yuv-iinput.jpg:指定输入文件input.jpg。-pix_fmtyuv420p:指定......
  • FFmpeg开发笔记(四十四)毕业设计可做的几个拉满颜值的音视频APP
    ​一年一度的毕业季就要到了,毕业设计算是大学生毕业前的最后一个大作业,尤其是计算机相关专业的毕业设计,通常要通过编程开发一个软件,比如开发一个图书馆管理系统,开发一个电商APP等等。一个好的毕业设计可以给作者加分,可以评优,还能获得编程开发的实战经验,所以很有必要认真去做毕业......