前言
之前用过一个软件来写日记,时间一久积累了接近9万字的内容,最近想把数据导出来进行整理,然后发现软件不提供导出功能,于是就想到了之前导出阿里小号绑定平台的方法,索性进行了相关尝试,发现可以跑通流程,这里记录相关方法,以备日后查阅。
原理
官方提供了安卓设备和电脑之间的中间件,用于操作安卓设备,也就是ADB,而ADB中有一个叫uiautomator dump的命令,它可以生成当前屏幕UI层级的XML文件,使用这个方法便可以导出任意软件中关于自己的文字数据。
准备
1.安装Python环境:https://www.python.org/
1.1若需将最终的数据生成Word文档,可以执行如下命令(如果只需要TXT文件,则无需安装)。
pip install python-docx Pillow
2.手机连接电脑开启开发者模式,并打开USB调试。
3.安装ADB工具,通过命令行使用ADB连接手机。
adb devices
代码
由于各个手机不一样,最终都可能需要靠自己进行细微调整,加上本次导出软件不方便公开,所以这里不再贴具体的代码,如果需要参考事例,可以看之前的文章《阿里小号一键导出短信并统计绑定的平台》。
如何获取对应软件的控件ID
1.在手机上打开对应页面
2.依次执行如下命令,在电脑上生成当前界面的 XML 文件
adb shell uiautomator dump /sdcard/xxx.xml adb pull /sdcard/xxx.xml
步骤
1.新建一个文件夹
2.将需要执行的代码保存为export_xxx.py
PS:若以记事本新建记得右键另存为,并选择UTF-8编码。
3.在需要保存数据的文件夹,按住键盘上的Shift键,右键打开在此处打开PowerShell窗口,并在命令行中输入如下命令:
python export_xxx.py
4.测试相关代码稳定性,并进行相应修改。
测试
补充
本文提供的方法只能导出文字数据,关于图片数据需要进一步测试,或者采取折中的方法截图来变相导出,如需使用截图功能,可以提前安装pillow,安装命令如下:
python -m pip install pillow

