如何更加优雅地“学习”

1 篇文章 0 订阅
1 篇文章 0 订阅

背景介绍

如果你熟悉下面这张图,那么你应该知道,这里说的“学习”和平时的“学习”不太一样,或许你会有兴趣了解一下。
在这里插入图片描述

如何优雅地“学习”

 半年之前,我就已经知道了如何优雅地进行“学习”。这个不太难,利用Python Selenium自动化测试框架,进行“网页版”学习。

 Selenium是什么?是一个Python语言自动化测试框架,简单来说,它可以根据代码打开浏览器、点击页面中的链接、访问某个网站、使页面上下滚动,等等。

 首先呢,你需要了解一下如何获得“学习分数”:有效阅读一篇文章+1分、有效观看一个视频+1分、有效阅读文章累计2分钟+1分、有效观看视频累计3分钟+1分。

 何为有效?累计2分钟又是怎么计算?具体的不知道,但大概就是根据停留在页面的时长以及位置。如果你一直停在一个地方不动,那是不算有效阅读的。

 搞清楚这个之后,我们就应该知道了如何优雅地进行“学习”:打开浏览器进入登录界面——扫描登录二维码——获取若干个文章、视频链接——依次打开文章、视频链接,使页面上下滚动若干分钟——完成学习。

演示小视频页面自动滚动

如何更加优雅地“学习”

初心

 上面的“学习”虽然优雅,但还不够优雅。对我一个人来说足够了,我吃饭前Run一下,Scan一下QRCode,吃完回来就有25分了.。在这里插入图片描述
 但是一个人学习哪有一起学习快乐,于是为了更加优雅地“学习”,打算开发一个APP。这个APP并不是直接在手机上进行“学习”,而是利用TCP通信在电脑上启动程序进行学习。

原理

在这里插入图片描述
1、云服务器和工作站保持socket会话
2、手机向云服务器发起socket会话,发送一条指令
3、云服务器鉴别指令的有效性后,利用和工作站之间的socket会话,向工作站发送Start指令
4、工作站收到指令后,利用Python cmd命令启动Selenium脚本,脚本打开网页版“学习~”,获取页面中的登录二维码,将二维码传输给云服务器
5、云服务器将二维码传输给APP,APP将二维码保存到相册,自动启动“学习~”APP
6、用户打开“学习~”APP“扫一扫”,扫描相册二维码,点击“登录”
7、吃饭
演示大视频启动工作站脚本
 视频突然中止,是因为APP自动启动了“学习~”APP,终止了拍摄。APP授权登录之后的界面:
在这里插入图片描述

安卓socket通信之坑

1、二维码传输
 最开始,选择的是传输二维码base64编码之后的字符串,但是字符串的大小有90kB,已经超过了Java String类型的最大长度(而Python不存在这个问题),所以总是很崩溃地收到了残缺的二维码,结果我还以为是传输过程丢包了。。崩溃到凌晨两点。
在这里插入图片描述
 意识到问题之后,选择了将二维码使用文件传输的方式,经历了更多的坑之后终于成功传输。

2、文件传输
 文件传输不应该选择一些博客上的while方式,否则会抛出ReadTimeout异常,而应该选择:先将文件大小传输过去,客户端将收到的字节数和文件大小进行比较,判断是否结束接收数据。

3、文件保存
 将图片保存到手机相册时,要注意申请“运行时权限”,只在Manifest文件中声明权限是不够的。一开始没有申请“运行时权限”,相册中没有二维码,程序好像也不报错。
 考虑到不同手机的文件目录不太一样,目前选择保存到 Tencent/MicroMsg/WeChat/ 下(薅一下微信大佬的羊毛,应该可以支持大部分手机)。
 保存图片后,还需要发送一条广播通知相册更新,不然只能去“文件管理”里面找图片。

APP

下载地址xuexiAPP下载地址
请用浏览器访问,微信屏蔽了这类链接。如果安装时解析安装包出现问题,是因为安卓系统版本较低,可以进群联系。

APP界面(丑是自然的,这辈子都不可能开发出好看的界面):
在这里插入图片描述

 最近实验室网络不太稳定,可能还没法让APP达到想要的效果,感兴趣的不如先加个用户维权群进行内测?

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值