專案地址(別吝嗇您的star!謝謝哦!):
https://github.com/LaravelChen/TouTiao
個人簡介:
作為一個Web開發者,正好學校學習Android課程,所以跟著一起學習Android開發,作為我個人來說,學習一門語言不是看多少的書,而是首先上網學習基礎知識,[/url]來github學習前輩們的專案原始碼,所以趁著這個機會,我開發了一款類似今日頭條的App,利用爬蟲抓包實作一些資料的顯示,整個程序讓我了解到了android的網路請求方面的諸多知識.
技術堆疊
- 使用Joup和Okhttp進行網路資料的爬取
- 使用Recyclerview和PageFragment和自定義資料型別進行新聞資料的顯示
- 基于Retrofit和RxJava打的的鏈式網路庫
- 支持rxJava鏈式操作
- 對于介面資料的獲取我采用Novate框架,使用簡單
- 對于用戶的登錄這塊,按照標準流程應該是遵循OAuth2.0的流程,之后有時間進行更改
- 圖片的顯示使用ImageLoader
- 頭像的顯示使用CircleImageView
- 日期選擇器使用的是仿ios的PickerView
- 彈窗的顯示使用的是materialedittext
- 視頻播放采用ijkplayer神器級播放器
- 整個界面的大部分控制元件使用的是Material Design設計規范
功能
- 爬取今日頭條的實時資料
- 利用Recyclerview和PageFragment和自定義資料型別的結合進行顯示資料
- 支持查看具體的串列內容,包括視頻等
- 支持查看圖片并且支持保存圖片到本地圖庫(爬取圖片的url是難點)
- 支持實時重繪獲取資料
- 支持視頻播放(爬取視頻url非常難)
- 用戶介面資料采用PHP寫的
- 支持用戶注冊登錄
- 用戶收藏新聞
- 支持主題換膚
- 支持用戶個人設定等
- 支持用戶分享新聞,支持QQ,微信,QQ空間等
- 第三方登錄(暫未開發)
- 上傳頭像(暫未開發)
- 全域搜索(可以利用爬蟲進行搜索,暫未開發)
技術難點
你仔細看的話可能發現我在寫圖片和視頻的時候都加上了比較難的字樣,程序也確實如此,因為頭條新聞的官網不像大部分的網站那樣是將url直接
寫在html中,因為這樣主要太容易被爬取鏈接了,所以設計師將url全部通過script的形式寫入html中,這樣就容易被爬取到。但是上有政策,下
有對策,哈哈!我們可以通過網路請求將網頁的所有前端代碼爬取到,然后通過刪選找尋自己想要的部分即可,相冊的url的獲取這樣其實就可以了,
具體代碼可以直接在專案原始碼中看到,但是對于視頻的url可不這么輕松,在script中只有視頻的video_id所以必須再次拼接api獲取相應的video資訊,
但是獲取到之后,這個coding者真是太坑爹了!將視頻的url加密的,我的天!不得不吐槽一下!幸好github上面有大神提前解決過此事,我便依葫蘆畫瓢
的將次加密過后的鏈接解碼了,之后便可以播放視頻了!那么,具體的代碼請在專案原始碼中查看!有問題請在issue中提出!我會盡可能解決 !
uj5u.com熱心網友回復:
不好意思,請問一下我下載你的這個原始碼,為什么出來的效果有些是沒有的,比如視頻就出不來,但我看你的效果圖里是有的啊uj5u.com熱心網友回復:
為什么加載不出來圖片呢?uj5u.com熱心網友回復:
會玩,可是預覽圖怎么看不了轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/7731.html
標籤:Android
上一篇:C++/qt呼叫dl報錯
下一篇:點聯系人直接跳到發短信界面
