Android开发(开发板的三种操作系统)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

对51,或者是stm32来说,一般谈不上什么操作系统,基本代码都是while(1)+中断的方式完成的。只有soc,它的cpu的频率足够快,soc的多媒体处理资源足够多,才有操作系统的支持。当前,对于一般的开发板来说,主机厂都会提供三种操作系统供选择,一种是linux系统,一种是ubuntu系统、或者是debian系统,还有一种就是android系统。

一、linux系统

这种系统一般都是不带界面的。比如说路由器里面的操作系统,或者是机器人里面的系统,再或者是监控设备里面的系统,都可以是linux系统。如果是消费类产品,比如说ipcam这类安防设备,其实里面跑的也是linux系统。通常来说,linux系统只要解决uboot、kernel、rootfs,就可以开始应用开发。这种系统开发自由度大,但是要求也高。很多的代码,特别是第三方代码,都需要自己做交叉编译。比如boost、opencv、ffmpeg、zlib、libpng、libjpeg等等,当然如果soc厂家给力的话,这部分从厂家直接获取,也未尝不可。如果是多媒体开发,类似于音视频编、解码,这部分厂家都会提供对应的库函数,但是源代码不会给,会给demo,这一点需要注意下。

linux系统本身具有高度可定制性,不管是开机、内核、驱动、还是应用,基本上你想做成什么样都可以。但是可定制性越高,对开发者的要求也越高,这都是一体两面的。

二、ubuntu系统/debian系统

除了这里说的ubuntu、debian之外,很多国产os,例如欧拉、深度,都是类似的道理。大家用的最多的树莓派,都是这类os,甚至开发板上都自带编译器。和纯linux系统相比较,这类系统有两个重要的特点。一个是系统自身带有界面管理,另外一个就是带有apt-get系统。

传统的linux系统,虽然有可能也带有屏幕,但是那只是一层皮,用qt或者lvgl做一个界面即可。但是ubuntu是实实在在的桌面管理系统,哪怕你不懂什么linux命令,依然可以通过桌面管理系统完成大部分功能操作。除了界面管理之外,apt-get也是很重要的。如果是ubuntu,就不再需要自己进行源码编译了,需要什么库,直接apt-get下即可,这一点对于软件开发来说,实在是太方便了。除了这两点之外,其他的开发操作和linux都是一样的。

三、android系统

最早的时候,android是为移动设备开发的,说白了就是手机,它来源于linux,却又不同于linux。后来随着平板的流行,以及开发板的拓展,越来越多的开发开始基于android来进行开发。本身android开发最大的优势,就是它的生态,很多的功能,android都已经集成好了,根本不需要二次开发。这一点对于客户来说就特别友好,和手机一样的使用习惯,基本上可以做到上手即使用。

如果是需要定制的开发,类似于pad开发,或者是行业应用,例如大屏广告显示、自助点餐、相机类应用等等,用android开发也是非常方便的。对于额外添加的外设,用android做一些设备开发也不算太难。相对于linux而言,android的差异主要体现在HAL和Framework & JVM这两个方面。所以,开发的时候,HAL去适配它的规则,Framework一般不要去动它,把主要精力放在app开发和外设驱动上面,这就可以解决大部分开发问题了。

界面开发是android的强项,这方面的资源多、例程多。再加上现在chatgpt之类的工具,android app要远比大家想象得简单很多。如果是驱动开发,会稍微复杂一点,通常会涉及到framework、hal、linux kernel多个模快。此外,为了性能的考虑,很多应用也是用java做一个android界面,主要的流程、算法还是通过c/c++实现的。

相关推荐
凛_Lin~~2 小时前
安卓网络框架——OkHttp源码解析(基于3.14.x)
android·网络·okhttp
stevenzqzq3 小时前
android SharedFlow和Channel比较
android·channel·sharedflow
zhangphil3 小时前
Kotlin实现Glide/Coil图/视频加载框架(二)
android·kotlin
shughui3 小时前
APP、Web、H5、iOS与Android的区别及关系
android·前端·ios
千里马学框架3 小时前
敏感权限如何自动授权?pkms的permission部分常用命令汇总
android·车载系统·framework·perfetto·权限·系统开发·pkms
a2591748032-随心所记4 小时前
android14 google默认进程、apk、hal、以及service等
android
明天…ling4 小时前
四天学习笔记
android
小六花s4 小时前
渗透测试前四天PHP文件包含笔记
android·学习·渗透测试
Rubin智造社4 小时前
见路不走:从《天幕红尘》读懂2026年的创新密码
android·开发语言·kotlin