Android的NoVIP視訊解析APP開發完整過程
Android的NoVIP視訊解析APP開發完整過程
開發靈感
國內現在視訊類知名網站主要有:愛奇藝、優酷、騰訊視訊、搜狐視訊、樂視視訊、芒果TV、Bilibili等。這些網站都有各自的付費VIP視訊,我雖然很少去看這些視訊啦,我主要是看一些新聞類的,這些都是免費的。但是,生活中很多同事、朋友都在追劇,在辦公室在學校經常會聽到某某有沒有XX視訊的VIP賬號?生活中其實很多人都開通了這些視訊網站的VIP。然而,依舊問題嚴重,因為很多電影&電視劇是版權獨家的,只有某個視訊站才能觀看,那麼買的其他站的VIP那不就是無效了嗎?當然,對於開發者來說,網上很多瀏覽器外掛可以解決這個問題,比如Greasy Fork
功能需求設計
- 解析播放各大站點的VIP視訊是核心,對於視訊解析來說,整個過程是比較複雜的,筆者檢視很多相關資料,各大戰點都做了多層的視訊連結加密,還做了視訊分段處理。筆者也就懶得去做了,直接呼叫了其他站點的解析地址。
下面是視訊解析播放的方法,在進入視訊播放也後選擇播放線路(部分播放線路可能被和諧了播放不了,可以選擇其他的線路),然後點選右下角播放圖片按鈕會跳轉到視訊解析播放的頁面(筆者就偷懶了,自己不做這部分了,呼叫的別人現成的)。
- 介面設計優雅整潔,設計APP時間指令碼,各種的圖片資源都是網上直接找的,介面設計也用了第三方庫,可以加快開發過程。下面兩個Material Design資源的網站,大家可以去找到各種精美的介面、圖示設計等。
Material Design圖示
Material Design綜合大站 - 為了豐富功能,添加了廣告投放和APP授權功能。另外、還有加入QQ群、分析APP等功能。當然,APP是免費給大家用的,授權碼只是給開發者有興趣的去改進而已。授權碼:1234
程式碼編寫
APP功能需求準備好了,下面就要開始著手程式設計實現了。
框架搭建
對於一個APP來說,框架設計佔有極其重要的部分,一個APP的程式設計框架設計好了,以後的開發可以避免很多彎路,也能節省很多的開發時間。很多程式設計師之所以會是程式猿就是因為在走很多彎路,浪費了大量的時間,導致經常加班加點的工作。在我看來,程式是用來設計的,不是用來幹苦力的。在本APP中,為了節省開發週期,很多的工作都沒有做,比如網路請求、註解、MVP、MVVM等。只用簡單的原生API快速完成功能,程式碼中的字串也都是寫死的,沒有使用xml去配置,在企業的APP是不能這麼寫的。所以本APP基本是沒有框架的,整個APP的程式碼檔案也不超過十個,總程式碼量不超過2000行,實在是精簡的不能再說了。
第三方庫引入
程式中使用部分第三方庫,都是行業比較成熟的,經過市場的認證,不用擔心出什麼問題。下面是gradle中的配置:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:support-v4:28.0.0-rc02'
implementation 'com.github.bumptech.glide:glide:4.8.0'
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
implementation 'eu.the4thfloor.volley:com.android.volley:2015.05.28'
implementation 'com.alibaba:fastjson:1.2.49'
implementation 'com.youth.banner:banner:1.4.10'
}
程式碼編寫
程式設計過程就不說了,太簡單了,Android開發入門的人都能很清晰的看懂程式碼。這裡說一下,對於授權碼部分,呼叫了一個native層函式,用C++編寫的,只是為了說明為了安全,部分重要的資料是需要放到C++中做的,不說了,太簡單了。下面是所有程式碼檔案:
開源與總結
整個開發過程耗時2天,剛好這周學校的學生軍訓,筆者一天也就兩節課,可以有大量的時間寫這個APP。筆者除了現在學校的課程外,還在準備線上課程,時間比較忙,寫這個APP花了兩天,週末又要加班準備課程內容了。原始碼通過git託管到了github上,有興趣或者想二次開發的朋友可以去下載。