精仿今日头条,附项目源码和Apk下载地址
起源
最初的梦想
我一直想尝试开发某类以前没有接触过的APP。 刚开始的时候,我有一个梦想:开发社交、地图、新闻、支付、电商、直播、游戏类应用。 我在社会班大二的时候就已经开发过一款即时通讯应用,使用的是网易云信的SDK; 我也接触过地图、支付、电商; 游戏方面,我做了一个植物大战僵尸的demo,也算是入门:新闻和直播,公司之前没有接过这些项目的开发,所以一直没有机会接触,所以一直想实现最初的梦想,完成新闻直播APP。
今年7月告别母校,正式毕业,同时辞职。 大二的时候,我和同学一起创办了一家公司,承接项目。 现在已经一年了。 我想出去闯一闯,所以就辞职了。 该项目已于6月份开工建设。 当时我下班后就挤出时间写代码。 我用的是现在流行的框架,++MVP。 我已经接近完成7月初设定的功能了,但是期间遇到了一些问题。 问题。
遇到的问题
问题一:今日头条关闭了旧界面。 本来是根据wey ye大神做的头条新闻,按照之前抓包知道的接口获取新闻列表的。 后台接口取不到数据,只好想办法解决。 虽然之前也用过抓包,但是不是很熟悉。 遇到一些https加密的数据包就束手无策了。 后来我知道可以解决https的数据包,头条的新闻数据获取问题就迎刃而解了;
问题2:新闻数据规律。 新闻列表中有多种项目布局。 在没有接口文档的情况下,需要对返回的json数据进行分析,找出规律,知道判断哪个字段属于哪个布局。 情况也是如此。 相当耗时。
问题3:视频分析。 原来参考的项目中,使用的视频分析方法此时莫名其妙失效了,只好自己寻找新的视频分析方法。 我找了很多方法,有的就是看新闻详情页。 html页面通过正则化匹配对应视频的地址,也有其他方法,但还是不尽人意。 我知道我找到了一个解析今日头条视频地址的网站。 通过传入详情页的URL,即可获取对应的视频。 视频的地址,于是开始抓包拿到那个接口,视频分析的问题就轻松解决了。
运气不好,运气不好
但问题总是接二连三地出现。 本以为今天可以愉快的写一篇博客,分享一下我写的这个开源项目,互相交流一下。 谁知道早上播放视频时,视频网址又解析错误了。 此时今日头条apk,我的心都碎了。 经过调试,找到了解析视频的原始接口。 作者验证了接口的访问。 估计为了不让别人直接调用他的接口,必须通过他的网站来访问。 分析了他的js代码后,他发现他的界面中添加了两个新的参数。 参数名称没有意义。 它们是“r”和“s”。 “r”是随机生成的数字,“s”是根据视频地址+“@”+r拼接而成。 进行一系列的处理、运算、左移、右移,然后生成对应的一端数。 还应该根据该算法对背景进行验证,以验证r和s是否有效。
知道作者添加了验证后,也就知道了加密后的js代码。 本来想把加密后的js函数转成java代码写的方法,但是最后发现太复杂了,所以放弃了这个想法,发现java可以读取。 拿js脚本来说,但是不能在中使用,没有对应的类,所以我们必须通过加载本地js脚本来解析,实现java代码和js的互调,然后得到加密后的参数“r” ”和“s”值。
完全的
目前已经完成了之前的自上而下的功能,比如新闻的多项布局展示(新闻列表)、视频列表、新闻详情、视频详情、点击选项卡下拉刷新、查看评论列表、我很高兴能够做自己喜欢做的项目,不是为了工作,纯粹是为了接触一些新的东西,尝试做以前没有开发过的应用程序,我也在寻找最近新工作,虽然我面试了好几个职位,但最终因为薪资不符合我的要求和公司的发展前景,所以我拒绝了。 我觉得自己不应该急于找工作,而应该继续寻找自己想要的工作,这样才能工作快乐,事半功倍。
介绍
精细模仿今日头条,数据取自今日头条App。 使用++ MVP开发的开源项目,仅供学习之用。
项目地址:
感谢wey ye大神今日头条apk,该项目指的是他做的仿头条项目。 他的项目地址是:
apk下载地址
演示截图
共有 0 条评论