java导出excel_从小米运动 APP 中导出我减重 80 斤的记录

9932a7f74db64fcd31b050231a6176f7.png

去年这个时候吃了第一份减肥套餐,一个净重 220 斤的大胖墩开始了漫漫减肥路。为了督促自己减肥,去年 12 月购入了小米体重秤,放在了办公室一进门的位置,每次自动记录体重并同步到手机端。

看到体重称上的数字逐渐降低,我也欣喜的同时也在苦恼如何记录数据。大概坚持了一个月手动在 Excel 中记录,因为着实过于繁琐,最终还是放弃了。

正值减肥一周年,便想着通过体重秤的数字回顾一整年的减重过程。但是从小米运动 APP 中逐一读数再填到 Excel 中,这太不符合 geeker 的标准了。果不其然,有一篇博客[1]讲到了如何在小米运动 APP 中提取数据,成功提取所需的体重数据,下面是我的完整操作过程。

数据转移

我的主力机是 iOS,需要转移到 Android 机上再提取数据。为了不受 Android 设备、连接条件等的影响,在 Windows 中安装 网易 MuMu Android 模拟器(当然其它模拟器也可以啦),在模拟器的全新环境中安装小米运动 APP。

因为此 APP 禁止被备份[2],需要 Xposed 框架下的 Backup All Apps 插件,强制允许备份 APP 数据。

数据提取

下载 Android 的调试桥 ADB 工具,解压后进入所在 adb 程序文件夹,在 PowerShell 中运行

adb connect 127.0.0.1:7555

连接到本机的 MuMu 模拟器(注意不同的模拟器端口不同),再运行

adb backup -f myWeight.backup com.xiaomi.health.hm

备份数据。此时模拟器提示自定义备份密码,直接选择备份。

数据解密

备份出来的 APP 数据是加密储存的,还需要提取出来。使用 Android 备份提取 ABE 工具解密备份出的数据,需要 Java 环境。将下载到的 abe.jar 复制到数据所在目录,运行

java -jar abe.jar unpack myWeight.backup myWeight.tar

提取出数据。解压得到的压缩包,能看到数据是存在数据库中的。使用 SQLite 查看 db 文件夹中最大的文件 origin_db_*,所有原始数据一览无遗。

可视化数据

表 WEIGHT_INFO 中储存了所有的体重数值,将 WEIGHT 和 TIMESTAMP 两栏复制到 Excel 中。将 Unix 的时间戳转换为 Excel 中的时间,假设时间戳在单元格 B2,在 C2 中填入

=(B2/1000+8*3600)/86400+70*365+19

并填充,选中 C 栏设置单元格格式为自定义

yyyy-m-d hh:mm:ss

可得标准的时间记法。最后画出时间-体重散点图,大功告成。

参考

  1. ^小米运动 App 数据提取 https://www.cnblogs.com/jianghao14789/p/10542882.html
  2. ^设置了 allowBackup=False https://developer.android.com/guide/topics/manifest/application-element
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值