事件是这样的。
有一天,一认识的哥们儿忽然找到我,他知道我会点技术,就问我说:“老胡,你有没有办法,可以黑进别人的手机,看到对方的相册?”
我脑海的第一反应就是:wc,你小子想干嘛!
在我的一在追问下,他才说,有一个网恋对象,聊得挺愉快的,但还没有互分享照片,想知道她的真实长相。
。。。
听到这里,我脸上瞬间露出了姨母笑,心然应允下来。
说干就干,一般这类需求是比较常见的,网上应该就有现成的资源。果然搜出一大把,正当我开心时,意外发生了。
TMD,居然都要收费,收费也就算了吧,也没有个演示案例,哪知道你是不是骗子。
体验明显就不好了,于是花了一个多小时,游荡在百度和谷歌,终于找到了一个免费的看着不像源码的源码。
这个应用是用 IAPP 做的,是一款安卓应用开发语言工具,代码是真够简洁的,就是不知道这源码能不能跑起来。
安装测试
(源程序运行效果)
WC,这源码,你喜欢吗?
查看关键代码
代码中可以看到,应用在打开的时候,会自动远程通过API接口,随机获取一张热血图片,跟相册没半毛钱关系啊!
继续往下看
(关键代码)
找到了关键代码
通过 IAPP 官方文档,理解了语法,上面意思很清楚:
1. 打开手机 Camera 相册文件夹,并获取相册列表
2. 判断图像文件类型,并拼接图像绝对路径
3. 上传文件到指定服务器
嗯,看起来没问题!能用。
BUT,太粗糙了,让我这个强迫症完全接受不了。
有如下问题,没有解决:
2. 照片的上传顺序是从旧到新,万一还没有上传完,用户就关闭应用了,那就没戏了,看不到最新动态
3. 不同品牌的相册文件夹路径是不一样的,没有做预查询判断,就不会获取到照片
4. 每次还要登陆服务器后台,才能查看相册,太不方便,如何用户一打开软件,我就能收到提醒,并直接发送给我看不更方便?
5. 现在的照片,普遍单张就2M+的体积,服务器带宽不够的话,传一张就得好几秒,还看什么相册
6. 不同手机用户之间怎么区分,图像都传到一个相册,也不行啊
于是,我决定亲自动手改良优化
经过几个日夜的学习,仔细研读了 IAPP 官方开发文档,就准备开干了
(官网开发手册)
一、相册路径
为了隐私,我改用 Screenshots 截图相册做示例
国产安卓机主流的几个品牌,小米、华为、vivo、oppo等,截图文件夹就两个路径,如上所示,做一个查询判断就行,查询到就使用正确的相册路径
二、不想上传那么多的图像,只要最近几天的截图
文件管理器打开截图和相机的文件夹,发现系统自动生成的文件命名,都具备时间日期的字符,这就好办了,写个正则判断就行。
在这里,我只获取今天和昨天的截图,这样需要上传的文件就没有那么多了,而且都是最新的。
三、压缩照片
因为我买的服务器在国外,网速太慢了,平均上传一张照片需要10s,简直不能忍受。于是看着文档继续优化,找到一个方法,可以压缩图像。
把找到的图片进行压缩,并重命名保存,1.2M的图片给压缩成100K不到,相当Nice
可以看到,压缩图像观看起来丝毫不受影响,看清楚人脸自拍照也是完全没有问题的。
这样,上传100张图片,加起来也不超过10M的大小,网速好点的话,5秒就可以传完。
四、邮箱通知查看照片
我希望在照片上传到服务器后,服务器能第一时间通知我,并提供查看途径。这就要用到邮箱的 SMTP 服务了。
主流的QQ邮箱,网易邮箱等都提供这些服务,只是需要手动开通相关功能,这个可以去网上查看教程,我这里就不详细说明了。
服务器的邮箱处理程序,我用的是大名鼎鼎的 PHPMailer ,安装即用,相当方便。
(PHPMailer 配置页)
OK,打包安装测试一下,邮箱成功收到了照片。
完了吗,还没有,向来完美主义的我,替我的哥们想到了更多。
程序开发好了,你的软件得发给人家才行啊,不安装程序,你能怎么办。让人家安装总得有个由头吧。
通过与哥们的沟通,知道了他网恋对象是做外贸的,那肯定 WhatsAPP、Telegram 这些软件的使用必不可少。而且这些软件都有一个特点,那就是需要科学上网,多少有些不方便。
于是想到了,把这个软件包装成一个不需要科学上网,也能正常登陆的软件,人家没准就愿意下载安装了,分享起来也方便。
说干就干
这些外贸软件,我手机里只安装了Telegram,就选它了。因为不需要实际功能,直接弄一个开机载图算了。
为了防止用户打开软件,软件没反应就退出了,还温馨的弄了个倒计时,确保用户能保持软件处于活动状态,后台程序可以正常执行。
图标也配合上,完美。
再从网上抓取了一个软件下载的静态页面,方便用户下载程序。
到此,所有工作都做完了,来看一下整个操作流程。
以下是视频演示
(视频建议WIFI网络收看)
如果喜欢老胡的分享,欢迎赞赏关注
学习交流 wx:K103516
暂无评论内容