1. 程式人生 > >Android的NoVIP視訊解析APP開發完整過程

Android的NoVIP視訊解析APP開發完整過程

Android的NoVIP視訊解析APP開發完整過程

開發靈感

國內現在視訊類知名網站主要有:愛奇藝、優酷、騰訊視訊、搜狐視訊、樂視視訊、芒果TV、Bilibili等。這些網站都有各自的付費VIP視訊,我雖然很少去看這些視訊啦,我主要是看一些新聞類的,這些都是免費的。但是,生活中很多同事、朋友都在追劇,在辦公室在學校經常會聽到某某有沒有XX視訊的VIP賬號?生活中其實很多人都開通了這些視訊網站的VIP。然而,依舊問題嚴重,因為很多電影&電視劇是版權獨家的,只有某個視訊站才能觀看,那麼買的其他站的VIP那不就是無效了嗎?當然,對於開發者來說,網上很多瀏覽器外掛可以解決這個問題,比如Greasy Fork

外掛就牛的一逼,各種VIP視訊、網盤資源等都不在話下。對於某部分人來說,上班偷偷看看手機不方便看電腦、回家路上看手機,但是手機端並沒有這些外掛呀。於是,筆者想設計一個APP,讓手機端可以方便的檢視各種視訊,正式這個原因,著手開發了,花了兩天時間把APP做出來了,測試能夠播放各個站點的VIP視訊。下面是APP的原始碼:

Github原始碼

功能需求設計

  1. 解析播放各大站點的VIP視訊是核心,對於視訊解析來說,整個過程是比較複雜的,筆者檢視很多相關資料,各大戰點都做了多層的視訊連結加密,還做了視訊分段處理。筆者也就懶得去做了,直接呼叫了其他站點的解析地址。
    實現了6個站點的VIP視訊解析
    下面是視訊解析播放的方法,在進入視訊播放也後選擇播放線路(部分播放線路可能被和諧了播放不了,可以選擇其他的線路),然後點選右下角播放圖片按鈕會跳轉到視訊解析播放的頁面(筆者就偷懶了,自己不做這部分了,呼叫的別人現成的)。
    視訊解析播放方式
  2. 介面設計優雅整潔,設計APP時間指令碼,各種的圖片資源都是網上直接找的,介面設計也用了第三方庫,可以加快開發過程。下面兩個Material Design資源的網站,大家可以去找到各種精美的介面、圖示設計等。
    Material Design圖示
    Material Design綜合大站
  3. 為了豐富功能,添加了廣告投放和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上,有興趣或者想二次開發的朋友可以去下載。

  1. github原始碼
  2. APP下載