Advertisement

深圳核芯物联全新产品CL-GA25-P2高精度定位基站给市场带来的新机会:手机APP或小程序在后台时是否还能蓝牙AoA定位?

阅读量:

手机APP或小程序在后台时是否还能蓝牙AoA定位?
核芯物联岳毅恒

在这里插入图片描述

自本年度深圳核芯物联已推出全新一代CL-GA25-P2型号的室外型防水POE系列产品。该设备充分覆盖了包括安卓系统和苹果系统的微信小程序生态。目前已有诸多应用开发生态伙伴对手机端App及小程序功能表现出浓厚兴趣与期待。

在这一过程中,应重点关注蓝牙AOA的定位能否完美地支撑微信小程序

当APP或小程序处于运行状态时,请问当手机作为定位信标终端时是否能实现定位?
如果按照这种设计思路,在实际应用场景中会遇到哪些挑战或限制呢?

问题1:主要原因在于当APP处于手机后台运行状态时再次打开时可能会较慢运行,并且可能会导致重启。

从系统角度来看,存储空间即是一块数据存储区域,可被系统调度使用的资源属性。在多线程应用中,合理规划存储空间配置尤为关键,因此可以从系统对存储空间与回收两方面展开深入分析以理解存储空间管理机理。

对于资源分配机制而言,需确保每个进程获得一个适当规模的记忆体块,既能让每个进程正常运行,又不会导致单个进程过度占用大量存储空间。

针对存储空间回收问题,当I/O等待发生时,需建立一套合理的存储空间再分配策略,以便新进程能够顺利启动运行。具体而言,当出现I/O等待现象时应触发存储碎片化处理流程:首先终止当前占用过多存储空间的相关进程中断请求,随后重新优化剩余可用存储空间布局以提高整体设备利用率。

Android OS杀死进程有两个参考条件:

  1. 进程优先级

Android采用了每个进程的优先级概念。拥有较低优先级的进程更容易被杀掉。按照重要程度将它们分为五个等级。

1)前台进程(Foreground process)

当前操作所需的必要进程中

2)可见进程(Visible process)

没有依赖任何前端组件但仍会间接影响用户在屏幕上的显示内容。

3)服务进程(Service process)

虽然服务进程与用户的当前界面内容无直接关联性,但它们通常会执行一些用户关注的操作(例如,在后台播放音乐或者从网络下载数据)。因此,在内存不足以同时支持所有前台进程中运行时,请确保这些可见进程中也能够正常运行。

4)后台进程(Background process)

后台进程中不会直接影响用户体验,系统可能会随时终止这些后台进程中回收内存供前台进程中可见进程中使用.通常会有许多后台进程中处于运行状态,它们会被存储在LRU列表中以确保包含用户最近访问过的Activity的进程会被最后终止.如果某个Activity正确实现了生命周期方法并保存了当前状态,则终止该Activity的相关进程中不会对用户体验造成明显影响因为在用户重新进入该Activity时,Activity将恢复所有可见状态.

5)空进程(Empty process)

不包含任何活动应用组件的过程。其主要目的就是用于缓存,并非其他用途。为了减少下次在其运行所需启动时间,在实现对进程缓存与底层内核缓存资源之间的均衡分配的同时(即通过终止这些过程),系统通常会进行这样的操作

通常情况下,前面三种进程不会被杀死。

  1. 回收收益

当Android系统执行LRU缓存中的进程杀死任务时,该系统会根据每个被杀进程中后续带来的内存回收效益进行评估。由于Android倾向于选择那些能带来更大内存回收量的进程中进行杀死操作,在这种策略下能够减少被杀进程中数量的同时获取更大的内存空间。减少被杀进程中数量将对用户体验的影响降到最低。

问题延伸:为什么App要符合内存管理机制?
在Android系统中,符合内存管理机制的App,对Android系统和App来说,是一个双赢的过程。如果每一个App都遵循这个规则,那么Android系统会更加流畅,也会带来更好的用户体验,App也可以更长时间的驻留在内存中。如果真的需要很多内存,可以采用多进程的方式。

问题2:微信小程序需要符合内存管理机制吗?

小程序本质上可以说是(混合)应用,它介于Web应用和原生应用之间,集成了丰富的功能模块,同时具备高度的灵活性,实现跨平台支持,当然需要遵循微信生态和Mobile OS的操作系统内存管理规范。

小程序运行机制概述如下:涉及前、后端状态切换。
当小程序首次运行时,在线用户会看到其界面。
此时系统认为该应用处于前向窗口状态。

当用户单击右上角的胶囊按钮退出小程序界面时,在设备活动态下按下Home键退出微信时(或者按了设备 Home 键离开微信),小程序并未完全停止运行而是切换到后台模式,并可以在后台短暂保持一段时间。

每当用户再次访问微信或重新启动小程序时, 该程序又会从后台状态转入前台运行. 然而, 如果长时间未使用该小程序或是系统资源趋于枯竭, 该程序可能被彻底销毁, 即完全终止运行.

小程序启动
小程序启动可以分为两种情况,一种是冷启动,一种是热启动。

冷启动:当用户首次访问时,在小程序被销毁后又被用户访问时(系统会在原有基础上重新加载小程序并进行启动流程),这即被称为 cold start。

当用户曾经激活过某个小程序时,并在此后一段时间内再次访问该小程序时(即未发生删除操作),这个系统会将其后台运行的状态重新提升到前台状态这一过程被称为热启动。

一般情况下,小程序的销毁时机会在其进入后台一定时间或系统资源使用率过高时就会被删除.具体情况如下:

当小程序进入后台运行时,在未被频繁切换回前台的状态下能够持续保持一段时间的活性状态;如果系统检测到该时段内小程序始终未访问前台页面,则会触发将其从后台环境中移除并进行关闭处理。

当某个小程序的运行超出系统资源使用限制时,可能会导致该小程序被系统终止服务或触发微信客户端的资源回收处理流程。

在苹果设备上,在某个应用(这里指微信)持续收到多次系统内存告警信息的情况下(即一段时间内持续收到多次),程序将会自动终止执行这些小程序,并向用户发出提示信息:‘当前运行内存不足,请重新启动该应用’。

最后的结论:

无论是APP还是小程序,在内存管理机制方面都必须遵循操作系统的基本要求。若要使其持续运行不眠不休,则必须保证其长期处于高优先级状态,并表现为可见界面及服务功能。

在蓝牙AoA定位系统中采用手机搭配APP或微信小程序作为定位信标终端。当手机中的APP或小程序被销毁时,由于失去了调用手机蓝牙广播数据的API接口而无法继续进行定位。

深圳核芯物联科技有限公司是中国首家专注于正向自主研发生产的基于2.4G AOA技术及其衍生机型(包括蓝牙AOA、蓝牙AOA Plus和高精度融合精准定位)的基站及算法引擎解决方案的厂家。公司致力于研发基于AoA技术的精准定位基站及配套算法,并秉持开放合作的态度为企业合作伙伴提供技术支持与解决方案。

全部评论 (0)

还没有任何评论哟~