<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                本文會講解哪些內容 1.APP顯示的漫畫數據,是從哪里來的? 2.如何將漫畫數據顯示到APP上? 3.在顯示漫畫數據的過程中,有哪些比較有**技術含量**的知識點?(面試、答辯值得向人講一講) ## **漫畫源** ### **什么是漫畫源?** 漫畫源指的是漫畫數據的源頭,即漫畫APP顯示的主體內容。源頭,即強調來自于哪里。 作為軟件開發者,自己很少有創作漫畫的時間和能力,因此,我們必須借助百度,搜索熱門的漫畫網站: 打開百度——搜索漫畫——選則一款或多款漫畫站點——進行研究 此APP的漫畫源頭,已經兼容了8個漫畫網站,包括CC圖庫、動漫屋、可汗動漫、看漫畫、有妖氣等。 即,漫畫的數據全來自于上述各大漫畫網站。 源頭找到了,如何從源頭獲取數據,就是一門值得深入講解的話題了: ### **如何從漫畫源頭獲取漫畫?** 如何獲取漫畫,并不是移動端開發者能決定的。因為數據是存儲在服務器的,服務器,說簡單點,就是遠程主機,也就是放在別人家的電腦。 我們各位開發者想通過APP,去訪問別人家的電腦,遠程主機里的數據,最重要的一點,你得遵循“別人家”的規矩——服務器提前定義好的數據格式。 直白一點,我以瀏覽器訪問漫畫網站為例子 1.打開瀏覽器 2.在地址欄鍵入http://www.tuku.cc 地址 3.瀏覽器根據這個地址,去下載了一個html文件,我們通過瀏覽器右鍵查看頁面代碼 ![](images/079A84C6-3EC4-45B7-A337-989BB72FC30B.png) 4.html文件的本質,其實是“瀏覽器認識的代碼”,: ![](images/2.png) 通過瀏覽html文件,我們發現這些html語法很有規律,有我們似曾相識的東西: href=”http://...../img.jpg“ href的值就是漫畫封面圖片的地址, title=“監獄學院” title的值就是漫畫的的標題。 這就是瀏覽器顯示漫畫源的原理:下載html文件,根據html中的標簽元素,再去下載對應的圖片,顯示到標簽上,image標簽顯示圖片,普通標簽,顯示文字。 同理,我們有了這兩個內容,就很能容易將其顯示在漫畫APP上,比如通過ImageVIew設置圖片,通過TextView設置文本。 難點在于,如何像瀏覽器一樣:下載html文件->解析html標簽->根據標簽里的內容,提取、下載數據->顯示到屏幕上 在此次研究的漫畫APP里,已經有html的解析工具,省去初學者研究Html解析的麻煩,也能夠快速得從html文件提取類似漫畫封面圖片、漫畫標題的內容。 注意,我們現在探討的是“提取”,從html文件中提取我們需要的內容元素。 強調一點:提取的Html元素的過程依然很重要,但我們現在強調的是結果,即通過什么東西,可以拿到我們想要的數據。請看下一節: ### **從漫畫源提取內容** 瀏覽器下載html文件,顯示漫畫內容的原理我們已經清楚了, ![](images/777D45F7-1EFE-49D2-B314-2A2C54E3ED99.png) 首先,我們在 根目錄/app/cimo/source/目錄下發現了大量的工具類,是作者專門用來提取html當中內容元素的。 仔細研究,我們可以看到,有十幾個解析工具類,分別對應不同的漫畫網站 ![](images/48AC9B44-6B6D-4EAC-889D-2B7E2FA2F345.png) cctukku 對應cc圖庫,chuiyao對應吹妖漫畫,DM5對應動漫屋。以此類推 以cctuku文件為例,我們打開瞧瞧,其中的內容: ![](images/473A2CDF-B8DB-4771-B11F-FE1815707CF2.png) markdown編輯器出了點問題,只能截圖,不能上代碼,辛苦各位湊合看了。 這個工具類(cctuku文件)由三部分組成 1. Request,返回值為Request的函數,創建了請求Html文件的請求對象, 2. URL,定義了請求目標的地址,意思是去請求哪個地方的Html文件, 3. pares系列的函數,定義了解析Html文件的方式,parseInfo()函數就可以返回Html中我們最關心的數據:漫畫封面圖片地址、漫畫標題。 總結一下,這個工具類提供給我們**三個能力**: 1.遠程下載Html文件的能力(像瀏覽器一樣,把html文件下載到手機硬盤里) 2.下載指定漫畫源地址的能力(要下載cc圖庫漫畫的數據,而不是吹妖漫畫的數據) 3.解析Html的能力(解析Html中的數據,獲得我們關心的數據,進而顯示到手機APP上) 這三個能力,是諸位最關心的,理解這三個能力對應函數的用法,就理解了,漫畫數據源是如何顯示到APP上的。 ### 聰明、細心的讀者可能會有下面的提問: 1.Html是如何下載到手機硬盤里的呢? 2.為什么通過返回值為Request的函數,比如getSerchRequest()函數或者getInfoRequest()函數,就可以下載Html文件呢? 3.為什么我在項目里沒有看到漫畫文件? 這些都是好問題,但需要大量的篇幅去講解,先簡單解答: #### 1.Html是如何下載到手機硬盤里的呢? 本次研究的漫畫APP項目,使用了網絡請求框架——okhttp,okhttp最關鍵的一點,是需要傳遞Request對象,完成請求操作,我們在cctuku這個文件生成的Request的對象,傳遞給okhttp框架的時候,該框架,自動獲取到了HTML文件的網絡字節流,開發者再通過FIle操作,可以將字節流對應的HTML文件,保存到手機硬盤上。 請求HTML與請求漫畫封面圖片、請求漫畫封面標題同理。 所以,要回答這個問題,必須解決okhttp框架的使用問題、FIle文件讀寫操作問題。限于篇幅以及文章主題相關性,我不會在本文講解。會在稍后的章節中介紹,請耐心等待。 #### 2.Request對象有什么用 答:同問題1,okhttp框架需要Request對象,發起網絡請求,下載對應遠程主機的文件 #### 3.為什么我在項目里沒有看到漫畫文件?漫畫APP顯示的文件是來自于哪里? 答:第一次啟動APP,APP會去遠程主機下載漫畫網站的HTML文件,接著通過解析HTML,下載漫畫封面圖片、標題等數據,下載到的數據,會直接顯示到手機屏幕上;同時也會保存到手機硬盤里(這也是備份模塊的原理),保存的形式有FIle文件、SQL文件等。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看