🐱 算神的小窝 🤓

为了醋包的饺子——我用MAUI搓了一个轨迹记录APP.md


CreationTime:11/27/2025 2:06:16 PM LastAccessTime:12/6/2025 1:16:42 AM


为了醋包的饺子——我用MAUI搓了一个轨迹记录APP

起因(一个伪需求)

最近在使用Insta360 Go3s在拍些记录生活的VLog,其中发现其中一个有趣的功能,Insta360的视频剪辑软件可以通过导入GPX文件在视频上生成对应仪表板。一般GPX文件可以通过智能手表、手环的运动记录导出获得。但这里有个问题,就是手表手环只会在识别出运动行为(如:健走、跑步)时才会去记录轨迹的,开车、骑电鸡是不会记录的。我在剪辑骑电鸡的视频时就在想要是能有个手机APP记录并生成GPX格式的文件就好了,恰逢VS2026正式版发布,于是便决定用最新的.Net 10 MAUI自己手搓一个

GPX(GPS Exchange Format)是一种基于XML的文件格式,用于在不同设备和应用程序之间交换GPS数据。GPX文件可以存储航路点、轨迹和路线等信息,广泛应用于地图绘制、运动追踪和地理数据分析等领域。

开源地址

https://github.com/lishewen/TrackRecorder

说明

Screenshot_20251126_134928

在录制视频时,APP同时点击开始后就可以记录轨迹了,记录轨迹会拉起一个后台服务,无需APP一直保持前台,由于只是自用的,所以权限、耗电、精度都是拉到最高的,有特殊需求的可以下载代码微调,也欢迎PR扩展功能。

结束录像、点击停止,并导出GPX文件

image-20251126225958016

得到GPX文件后,就可以通过Insta360 Studio软件导入生成仪表板,再剪辑导出就可以得到这样一个带仪表板的VLog视频了。

【视频占位】

踩过的坑(印象深刻的)

VS2026没有XAML的设计器(不知道是不是Bug)

只能通过模拟器+热重载功能慢慢调UI,但热重载有时也会导致整个VS闪退,因为这个一度想放弃开发了,希望微软赶快修吧

不能直接通过IDE分发APK

这可能又是一个Bug,或者说功能没做完就随正式版发布了。在IDE操作发布生成APK后,再点击分发会得到这样一个对话框

image-20251126231147696

之前VS2022这一步是让你绑定一个证书把APK签名,到了VS2026却偷懒弹出提示框让你用CLI

使用CLI发布APK的步骤

  1. 生成证书

    keytool -genkeypair -v -keystore trackrecorder.keystore -alias trackrecorder -keyalg RSA -keysize 2048 -validity 10000
    
  2. 通过dotnet publish发布APK并使用上面生成的证书签名

    dotnet publish -f net10.0-android -c Release -p:AndroidKeyStore=true -p:AndroidSigningKeyStore=trackrecorder.keystore -p:AndroidSigningKeyAlias=trackrecorder -p:AndroidSigningKeyPass={password} -p:AndroidSigningStorePass={password}
    
An unhandled error has occurred. Reload 🗙