欢迎光临散文网 会员登陆 & 注册

【转】鸿蒙系统与市面上的其他操作系统相比有哪些优缺点?

2023-12-09 06:36 作者:失传技术  | 我要投稿

 鸿蒙系统与市面上的其他操作系统相比有哪些优缺点?


摸摸鱼


在数码的海洋里疯狂摸鱼

50 人赞同了该回答

HarmonyOS NEXT 把 Android 系统里最头疼的问题——后台任务解决了。

要知道 HarmonyOS 的后台机制好在哪里,就必须知道安卓的后台机制问题出在哪里。

安卓的问题

在 Android 早期(5.0以前),对于后台任务的管理非常不规范,简直是百鬼夜巡。系统只杀死应用启动的 Java 进程,应用可以通过 Java 进程启动系统管不到的 Native 进程。如果 Java 进程被系统杀死,就用 Native 进程把 Java 进程拉起来,这样,应用就永生不死了

所以早期安卓饱受卡顿、发热、掉电的困扰。民间也出现了冰箱、Xposed 框架用来解决相关的问题。随着安卓的更新,系统能根据 uid 杀死进程,上面的方法不起作用了。

另一种方法是监听广播,比如系统时间更新、开机、解锁、网络状态改变都会对应用发出广播,应用可以利用广播触发拉起进程。在 Android 7.0,系统移除了许多隐式广播,并对后台应用监听广播做了很多限制,这种方法也没用了。

随后,出现了一个非常有名的库,叫 MarsDaemon,通过双进程守护的方式实现了应用的保活。但是随着后续的系统更新,这种方式也逐渐消亡了。

在保活上,应用开发厂商几乎无所不用其极,有在屏幕上显示一个像素保活的,有在后台播放无声音乐保活的,有建立保活联盟,联盟内的成员集成 SDK 互相拉起的,当然,还有通过 py 加入厂商白名单的。

其实安卓现在对后台任务有 WorkManager 这样很好的支持的,但是在国内应用滥用后台任务的大背景下, WorkManager 基本被国内的定制 UI 砍废了。有的系统上 WorkManager 直接不能运行,能运行的一天到一天半运行一次就不错了。

鸿蒙的做法

鸿蒙的后台任务是怎么样的呢?

鸿蒙把后台任务分为了四种类型:短时任务、长时任务、延时任务、代理提醒

短时任务:适用于实时性要求高、耗时不长的任务,例如状态保存。每次最多允许三分钟,在低电量时只允许一分钟。每个应用每天默认只有10分钟配额,这个配额会根据用户使用习惯调整,应用可以通过接口查询剩余配额。应用需要在前台或退至后台5秒内申请短时任务,否则会申请失败。一个应用同一时刻最多申请3个短时任务。仅当应用在后台时,对应用下的短时任务计时,而且同时有多个短时任务不重复计时。比如像下面这种情况,计时就是①+③+④。

应用不能占着短时任务超时,如果超时不走,系统会把应用回调应用处理超时的方法,把应用“请出去”如果请不走,系统就直接“赶人”,终止对应的应用进程。

长时任务:适用于长时间运行在后台、用户可感知的任务,例如后台播放音乐、导航、设备连接等,使用长时任务避免应用进程被挂起。包括数据传输、音频播放、录音、定位导航、蓝牙相关、多设备互联、WLAN相关、音视频通话和计算任务。其中,WLAN、音视频通话只向系统应用开放,计算任务只向特定设备开放。而且,申请了DATA_TRANSFER(数据传输)的长时任务,系统仅会提升应用进程的优先级,降低系统终止应用进程的概率,但仍然会挂起对应的应用进程。对于上传下载对应的功能,需要调用系统上传下载代理接口托管给系统执行。

而且,应用不能挂羊头卖狗肉,如果应用申请了长时任务,但未真正执行申请类型的长时任务或申请类型的任务已结束,系统会对应用进行管控。例如系统检测到应用申请了AUDIO_PLAYBACK(音频播放),但实际未播放音乐,系统则会终止对应的进程。

而且,应用在任务结束之后需要主动取消任务,否则系统会强行取消。例如用户点击音乐暂停播放时,应用需及时取消对应的长时任务;用户再次点击音乐播放时,需重新申请长时任务。

延迟任务:应用退至后台后,需要执行实时性要求不高的任务,例如有网络时不定期主动获取邮件等,可以使用延迟任务。当应用满足设定条件(包括网络类型、充电类型、存储状态、电池状态、定时状态等)时,将任务添加到执行队列,系统会根据内存、功耗、设备温度、用户使用习惯等统一调度拉起应用。

一个应用同一时刻最多申请10个延迟任务,而且延迟任务最多允许两分钟,超时不走会被系统强制终止。

代理提醒:代理提醒是指应用退后台或进程终止后,系统会代理应用做相应的提醒。适用于定时提醒类业务,当前支持的提醒类型包括倒计时、日历和闹钟三类。当应用退至后台或进程终止后,系统会代理应用做相应的提醒。

既然后台机制是这样,那应用怎么进行推送呢?在 HarmonyOS NEXT 中,所有鸿蒙原生应用全部都要接入华为 Push。像是微信\QQ这样的应用,就没有理由在后台驻留接收提醒了。而且,华为 Push 的能力也大大增强,不仅能够 Push 普通的通知,还能 Push 实况窗、甚至更新桌面服务卡片的内容也不在话下。

鸿蒙 NEXT 的后台任务管理看齐 IOS,但是华为此前发布的手机可都是安卓手机的内存。

这样看来,鸿蒙 NEXT 手机就兼具IOS对内存的高效利用和安卓手机的大内存,确实可以说是遥遥领先了。


编辑于 2023-12-04 10:57


【转】鸿蒙系统与市面上的其他操作系统相比有哪些优缺点?的评论 (共 条)

分享到微博请遵守国家法律