徒步途中记录 App 崩溃了,GPS 轨迹会怎样?
大多数情况下,丢掉的不是整趟徒步,而是还没来得及存下来的那一小截。一条 GPS 轨迹不是走完之后才一次性生成的文件,而是走的时候一个点一个点攒出来的,边走边存。App 崩溃只是把这个攒的过程在原地掐断,并不会往回把已经存好的点也一起抹掉。丢多少全看时机,跟运气关系不大。
先说结论
App 崩溃并不会自动把崩溃之前记录的那部分也清空,因为那部分早就写进存储里了,不是攒在内存里等到最后才一次性保存。中断只是让轨迹停在当下这一点,真正丢掉的是最后一个已存的点到实际停止记录那一刻之间的这段——实际上往往只有几秒到几分钟。
记录过程中,轨迹到底是怎么攒出来的
路线记录不是像写完一份文档、点一次保存那样的一次性操作。它是一点点来的:GPS 定出一个位置,这个位置被加进路线里,加到目前为止的路线立刻写进存储,然后下一个位置来了再重复一遍。走到一小时的时候,根本不存在"文件刚刚诞生"这个瞬间——从出发没多久开始,它就已经在那儿一点点长大了。
崩溃之后还能留下东西,靠的就是这个机制。要是轨迹只放在内存里,等徒步结束才一口气写进存储,中途一崩溃,还没写进去的部分就全没了。按点写的做法就不一样,不管中断发生在哪个时刻,手上都有东西留着,只是记录不会再往下长而已。
"崩溃"对正在进行的记录到底意味着什么
崩溃跟自己手动强制退出不一样,没有谁故意去把它划掉。它可能来自 App 本身的一个 bug,也可能是 iOS 因为手机上别的东西在抢内存,把后台的这个 App 回收掉了。但从记录这一侧看,两种原因造成的结果差不多:原本在不断生成新点的那个东西,毫无预兆、也没来得及收尾就停了。
这个区别对留下什么其实没多大影响。不管是自己主动关掉、被系统杀掉,还是纯粹崩了,崩溃之前已经写进存储的那些点安不安全都是一样的,因为这几种收场方式都不会去动已经存好的内容。
再打开 App,能拿回什么
崩溃之后真正要关心的问题,其实不是"这趟是不是全没了",而是"下次打开 App 会怎么样"。TrailCam 如果在走到一半时被打断,再打开时会把那条没走完的路线交还给你,而不是撂在一边或者直接丢掉——因为一条中途结束的记录仍然是一条真实的路线,有真实走过的起点、真实的距离、地图上真实的形状,只是比实际走的路提前结束了而已。
拿回来的就是实际记录到的那部分,不多也不少,不会有空白被猜出来补上。这一段的距离、配速、爬升,都是用跟其他任何一条路线一样的点算出来的,不存在"暂时凑合"的说法。
崩溃真正丢掉的是什么
拿不回来的,是最后一个已存的点到手机实际停止记录那一刻之间的那段,当然还有那之后在路上发生、但根本没被记下来的一切。因为点是不断加进去的,不是攒一大批才写一次,所以这段通常很短,但不是零——快到登山口才崩溃,留下的路线看着可能明显比实际走完的地方短一截。
而且进程本身既然已经停了,也没有办法不重新打开 App 就从刚才那个点接着往下记。崩溃之后剩下的路,是新的一段,不是原来那条的延续。
容易搞错的地方
- 以为崩溃就等于当天的记录全没了——实际丢的通常只是没来得及记下的那一小段末尾,往往就几秒到几分钟。
- 把崩溃和自己手动强制退出当成一回事——原因确实不一样,但存储里留下什么并没有区别。
- 指望拿回来的路线会把丢的那段猜出来补齐——不会,轨迹只包含真正记录到的点,不会给缺的那截编一个估计值。
- 以为崩溃之后隔多久再打开 App 会有影响——不管是马上看还是过几个小时再看,已经存进去的点都不会变。
TrailCam 这边
如果 TrailCam 在走到一半时被打断,再打开时会把这条没走完的路线交还给你,而不是把没记完的当成没记。拿回来的路线,如实反映了实际记录到的那部分,距离、配速、爬升都跟其他任何一趟徒步一样,用同样的点算出来。App 本身免费下载。
常见问题
- 崩溃会把整趟徒步的记录都清空吗,还是只丢一部分?
- 实际上只丢一部分。通常就是最后一个已存的点到实际停止记录那一刻之间的这一小段,之前记录的部分都还在存储里。
- 徒步 App 崩溃,跟自己手动强制退出是一回事吗?
- 原因不一样,一个是故意的,一个不是。但对已经记录的轨迹来说影响是一样的:不会再有新的点加进来,但已经存好的点不受影响。
- 崩溃留下的空白,徒步 App 会帮忙补上吗?
- 不会。轨迹只包含真正记录到的点,最后一个已存的点到中断那一刻之间的这段,会照原样缺着,不会被猜出来填上。
记录你自己的轨迹
TrailCam 是一款 iPhone 上的 GPS 轨迹记录 App,会把沿途拍的视频、照片和语音钉在你拍下它的那个位置,并支持导出成 GPX 1.1 或 CSV。免费下载。