天天看點

如何線上檢視Android源碼自帶學習文檔      如何線上檢視Android源碼自帶學習文檔docs

      如何線上檢視Android源碼自帶學習文檔docs

Android源碼編譯系列部落格:

Android.bp你真的了解嗎

Android.bp入門指南之Android.mk轉換成Android.bp

Android.bp入門指南之淺析Android.bp文法

Android.bp正确姿勢添加宏控制編譯指南

Android高版本P/Q/R源碼編譯指南

如何線上檢視Android源碼自帶學習文檔docs

引言

  又有好久沒有寫點偏重實戰類型的部落格了,最近一直都在搗鼓源碼分析和項目相關事情,是時候來點偏重實戰類型的部落格了。捯饬點啥實戰的呢,正好前兩天有個驅動的同僚詢問我怎麼檢視Android源碼自帶學習文檔docs,我當時随口一說直接通過浏覽器檢視呗(後面才發現docs下面的不是可以直接通過浏覽器檢視的)!好嗎,當時我也是随口一說,因為通常我都是上谷歌中文官方網站,其實Android源碼中已經很貼心的給開發者提供好了開發文檔了(這個寶藏一直沒有被我開發,真是遺憾啊!)。而且中文網站有時候的資料還不是很全,這就需要我們fanqiang(不要問我為啥用拼音,提示稽核不通過)上google官網查閱一些資料(這個可是一個技術活),這對于許多讀者來說就很困難了。是以帶着這個目的,我将帶領讀者怎麼在本地線上檢視Android源碼自帶學習文檔docs!

注意:本篇的介紹是基于Android 7.xx平台為基礎的,并且我特意查閱了Android 9 10 11沒有發現類似的docs的目錄文檔了,這個就奇怪了,好像是分散在各個目錄,如果有讀者有清楚的也可以告訴我!

在開始具體的操作步驟介紹以前,必須來個有圖有真相,不然讀者都不會和我混了!

如何線上檢視Android源碼自帶學習文檔      如何線上檢視Android源碼自帶學習文檔docs

一.前期準備

由于Android源碼自帶學習文檔的建構,并不是簡單的html網頁或者文本文檔構成,需要通過專門的工具進行檢視,而其中最最關鍵的就是python環境的建構和Google App Engine的建構了。這裡我對二者簡單介紹下。

1.1 Python

python那怕不會但是基本都有聽說過,它号稱除了不會生娃啥都幹的逆天語言。具體的參閱百度百科Python介紹。

Python是一種跨平台的計算機程式設計語言。 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。最初被設計用于編寫自動化腳本(shell),随着版本的不斷更新和語言新功能的添加,越多被用于獨立的、大型項目的開發.

1.2 Google App Engine(google_appengine)

這個對于絕大部分讀者來說就應該比較陌生了,它是谷歌提供的一種開發套件(具體的我也不懂)!有興趣的參見百度百科Google App Engine的詳細介紹。

Google App Engine 是一種讓您可以在 Google 的基礎架構上運作您的網絡應用程式。Google App Engine 應用程式易于建構和維護,并可根據您的通路量和資料存儲需要的增長輕松擴充。使用 Google App Engine,将不再需要維護伺服器:您隻需上傳您的應用程式,它便可立即為您的使用者提供服務。

并且為了友善讀者,我這裡奉上我自己驗證OK的Python和Google App Engine的組合套件,詳見位址谷歌自帶文檔檢視工具(良心價格,絕不收錢)。

二.編譯文檔

工具也準備OK了,完事具備隻欠東風了!那還等啥呢,直接開幹。Android源碼工程下自帶的學習文檔目錄為你整個Android源碼的根目錄的docs下面,如下所示:

[email protected]:~/XXX/ap$ ls -l
total 1636
drwxr-xr-x   3 ityuan pd    4096 Oct  1  2018 abi
-rw-r--r--   1 ityuan pd    3472 Nov 30  2018 about.html
lrwxrwxrwx   1 ityuan pd      19 Oct  1  2018 Android.bp -> build/soong/root.bp
drwxr-xr-x  20 ityuan pd    4096 Nov 30  2018 art
drwxr-xr-x  11 ityuan pd    4096 Oct 16  2019 bionic
-rw-r--r--   1 ityuan pd   60076 Sep 30 09:57 BOA_newLcd.patch
drwxr-xr-x   4 ityuan pd    4096 Oct  1  2018 bootable
lrwxrwxrwx   1 ityuan pd      26 Oct  1  2018 bootstrap.bash -> build/soong/bootstrap.bash
drwxr-xr-x   9 ityuan pd    4096 Dec  2 16:43 build
-rwxr-xr-x   1 ityuan pd    5775 Oct  1  2018 build.sh
drwxr-xr-x  11 ityuan pd    4096 Nov 30  2018 cts
drwxr-xr-x   9 ityuan pd    4096 Oct  1  2018 dalvik
drwxr-xr-x   5 ityuan pd    4096 Dec  1 11:01 developers
drwxr-xr-x  20 ityuan pd    4096 Dec  1 11:01 development
drwxr-xr-x   7 ityuan pd    4096 Oct  1  2018 device
drwxr-xr-x   3 ityuan pd    4096 Oct  1  2018 docs
           

上面可以看到我們的docs目錄就在更目錄下面,我們看下它的目錄結構,如下:

如何線上檢視Android源碼自帶學習文檔      如何線上檢視Android源碼自帶學習文檔docs

可以看到裡面有一個README,有了這個就比較好操作了。這裡我就不展開了,我也是按照這個步驟進行相關操作的(當然讀者也可以自行閱讀)。

如何線上檢視Android源碼自帶學習文檔      如何線上檢視Android源碼自帶學習文檔docs

這裡我們在Android編譯環境建構OK之後,直接在根目錄執行如下指令:

[email protected]:~/XXX/ap$ make -j32 online-sac-docs

vendor/qcom/build/tasks/generate_extra_images.mk:449: warning: overriding commands for target `kernelclean'
device/qcom/common/generate_extra_images.mk:449: warning: ignoring old commands for target `kernelclean'
Starting build with ninja
ninja: Entering directory `.'
[100% 1/1] Docs droiddoc: out/target/common/docs/online-sac
DroidDoc took 17 sec. to write docs to out/target/common/docs/online-sac


#### make completed successfully (01:34 (mm:ss)) ####

           

執行完畢以後,會在你的Android源碼out目錄下生成/out/target/common/docs/online-sac檔案夾,該檔案夾就是可以供前面所說的Google App Engine進行解析的了。我們簡單看下該生成檔案的目錄結構(看了也白看,反正看不懂!)。

如何線上檢視Android源碼自帶學習文檔      如何線上檢視Android源碼自帶學習文檔docs

三 運作google_appengine檢視Android源碼自帶學習文檔

一切都搞定了,是時候享受勝利的喜悅了。那麼我們要怎麼通過浏覽器檢視我們的文檔呢!這裡就要使用到我們最最開始說的Python和google_appengine神器了。

3.1 運作服務端

注意:

1.我的google_appengine安裝目錄是在D:\安裝程式\Google\google_appengine目錄

2.我将生成的整個docs目錄拷貝到了D:\安裝程式\Google\docs目錄

在開始執行相關指令前,我們簡單看下google_appengine的安裝目錄結構,如下:

如何線上檢視Android源碼自帶學習文檔      如何線上檢視Android源碼自帶學習文檔docs

然後我們在google_appengine目錄執行如下的指令(注意其中的dev_appserver.py為上面描紅的):

python dev_appserver.py  D:\安裝程式\Google\docs\online-sac
           

這樣我們的服務端就運作OK了,運作的結果如下:

D:\安裝程式\Google\google_appengine
λ python dev_appserver.py  D:\安裝程式\Google\docs\online-sac
WARNING  2020-12-24 07:33:48,657 urlfetch_stub.py:111] No ssl package found. urlfetch will not be able to validate SSL certificates.
WARNING  2020-12-24 07:33:49,312 rdbms_mysqldb.py:74] The rdbms API is not available because the MySQLdb library could not be loaded.
Warning: You are using a Python runtime (2.5) that is older than the production runtime environment (2.7). Your application may be dependent on Python behaviors that have changed and may not work correctly when deployed to production.
INFO     2020-12-24 07:33:50,240 appengine_rpc.py:160] Server: appengine.google.com
INFO     2020-12-24 07:33:50,252 appcfg.py:582] Checking for updates to the SDK.
INFO     2020-12-24 07:33:52,424 appcfg.py:616] This SDK release is newer than the advertised release.
WARNING  2020-12-24 07:33:52,424 datastore_file_stub.py:513] Could not read datastore data from c:\users\tangkw\appdata\local\temp\dev_appserver.datastore
WARNING  2020-12-24 07:33:52,582 dev_appserver.py:3394] Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named _imaging
INFO     2020-12-24 07:33:52,621 dev_appserver_multiprocess.py:647] Running application dev~google.com:sourceandroid-staging on port 8080: http://localhost:8080
INFO     2020-12-24 07:33:52,624 dev_appserver_multiprocess.py:649] Admin console is available at: http://localhost:8080/_ah/admin
INFO     2020-12-24 07:39:44,257 dev_appserver.py:2884] "GET /source/building.html HTTP/1.1" 200 -
INFO     2020-12-24 07:39:44,305 dev_appserver.py:2884] "GET /assets/css/default.css HTTP/1.1" 200 -
INFO     2020-12-24 07:39:44,609 dev_appserver.py:2884] "GET /assets/js/android_3p-bundle.js HTTP/1.1" 304 -
INFO     2020-12-24 07:39:44,658 dev_appserver.py:2884] "GET /assets/js/docs.js HTTP/1.1" 304 -
INFO     2020-12-24 07:39:44,676 dev_appserver.py:2884] "GET /assets/images/sac_logo.png HTTP/1.1" 304 -
INFO     2020-12-24 07:40:05,256 dev_appserver.py:2884] "GET /assets/images/styles/disclosure_down.png HTTP/1.1" 200 -
INFO     2020-12-24 07:40:05,273 dev_appserver.py:2884] "GET /assets/images/icon_more.png HTTP/1.1" 200 -
INFO     2020-12-24 07:40:05,309 dev_appserver.py:2884] "GET /reference/lists.js?_=1608795604990 HTTP/1.1" 200 -
ERROR    2020-12-24 07:40:05,315 dev_appserver.py:1966] Error encountered reading file "D:\安裝程式\Google\docs\online-sac\reference/gcm_lists.js":
[Errno 2] No such file or directory: 'D:\\\xb0\xb2\xd7\xb0\xb3\xcc\xd0\xf2\\Google\\docs\\online-sac\\reference/gcm_lists.js'
INFO     2020-12-24 07:40:05,316 dev_appserver.py:2884] "GET /reference/gcm_lists.js?_=1608795604991 HTTP/1.1" 404 -
INFO     2020-12-24 07:40:05,335 dev_appserver.py:2884] "GET /assets/images/styles/disclosure_up.png HTTP/1.1" 200 -
INFO     2020-12-24 07:40:05,354 dev_appserver.py:2884] "GET /assets/images/styles/gototop.png HTTP/1.1" 200 -
INFO     2020-12-24 07:40:05,371 dev_appserver.py:2884] "GET /assets/images/close.png HTTP/1.1" 200 -
INFO     2020-12-24 07:40:05,387 dev_appserver.py:2884] "GET /assets/images/icon_search.png HTTP/1.1" 200 -
INFO     2020-12-24 07:40:05,404 dev_appserver.py:2884] "GET /assets/images/more_bottom.png HTTP/1.1" 200 -
INFO     2020-12-24 07:40:05,513 dev_appserver.py:2884] "GET /assets/images/more_mid.png HTTP/1.1" 200 -
INFO     2020-12-24 07:40:05,812 dev_appserver.py:2884] "GET /assets/images/more_top.png HTTP/1.1" 200 -

           
如何線上檢視Android源碼自帶學習文檔      如何線上檢視Android源碼自帶學習文檔docs

3.2 通過浏覽器通路

好了,服務端運作OK了!怎麼沒有彈出界面啊!上述的指令我們可以了解為是服務端已經運作了,我們必須通過我們的浏覽器用戶端進行通路。我們打開浏覽器,執行通路伺服器,如下:

如何線上檢視Android源碼自帶學習文檔      如何線上檢視Android源碼自帶學習文檔docs

好了,我們可以徜徉在Android知識海洋的世界了。

寫在最後

好了今天的部落格如何線上檢視Android源碼自帶學習文檔就到這裡了,由于這是一篇實戰類型的部落格是以也沒有多少總結的了,跟着幹就行了。總之,青山不改綠水長流先到這裡了。如果本部落格對你有所幫助,麻煩關注或者點個贊,如果覺得很爛也可以踩一腳!謝謝各位了!!