AndroidStudio 檢視Framework程式碼
— By Baolong.lai
前提了解:
2.Window命令,生成連結 mklink(方法三中要用到),
例子:
mklink /D framework_base Z:\
在當前目錄為Z盤生成名叫framework_base的連結.
方法一:
注:
優點: 本地修改可以同步到個人伺服器上.
缺點: 每次開啟AS後,同步程式碼連結要挺久的,斷開網路無法繼續在AS上檢視.
方法二(需打Patch更新個人伺服器程式碼,如果對git比較瞭解,建議使用方法四):
a. 個人務器同步完程式碼,將alps/frameworks/base(其它工程同理)目錄下的程式碼拷到本地,這時不要拷貝.git 資料夾,假設放到D盤某個資料夾下: 如(D:\temp\frameworks_base\base);
b. 本地cd 到base目錄下,輸入命令git init ;
c. 以後在本地修改完程式碼,可以將本地修改的程式碼打成patch,拷到個人伺服器和.git 同目錄,打入patch.
注:
優點: 電腦不需一直連著個人伺服器.
缺點: 比較麻煩的是以後遠端伺服器其他人提交的記錄也需自己手動以打patch的方式合入到自己本地.
方法三(無需打Patch就可更新個人伺服器程式碼):
a. 隨便新建一個工程,以Android Studio 為例:
b. 添加個人伺服器連結
1.)將個人伺服器端專案具體位置填入,如 \\172.xx.xx.x\localhome\xxx\alps\frameworks\base
2.)在window dos中, cd 到剛剛建的工程的java目錄,然後輸入
mklink /D framework_base W:\
注:
優點: 方便,不需打patch,直接修改到個人伺服器上.
缺點: 需一直連線到個人伺服器上,查詢檔案功能用不了.
方法四(類似於方法二,不同點需要拷貝.git 目錄, 個人更喜歡用這種方法,之前對git不是很瞭解,所以用的是方法二):
a. 個人伺服器同步完程式碼,將alps/frameworks/base(其它工程同理)目錄下的程式碼拷到本地,這時要拷貝.git 資料夾,假設放到D盤某個資料夾下: 如(D:\temp\frameworks_base\base);
b. 修改git的config檔案(在base.git\config),
補充下:對於Windows 平臺,你的C:\Users\xxxx.x.ssh 裡祕鑰對需和遠端伺服器上一致,不然沒法提交程式碼.
如果對git不是很瞭解,可以先pull一個程式碼少點的工程,然後比較兩個config有什麼不同,對著修改,修改完後,先git pull –rebase,然後再git status ,不然剛開始由於拷貝移植,可能會和遠端伺服器的狀態不一致
如果一直出現file mode 的git問題,可以在config的[core]中加入filemode = false 或者通過命令列修改git config –add core.fileMode false;
c. 以後在本地修改完程式碼,可以將本地修改的程式碼打成patch,拷到伺服器和.git 同目錄,打入patch進行編譯,如果是提交程式碼,則可以直接git提交.
注:
優點: 電腦不需一直連著個人伺服器.
缺點: 編譯驗證還是要打patch到個人伺服器,但同方法二對比一個好處是可以直接同步別人的程式碼,而不是先在個人伺服器同步,然後打patch到個人本地電腦.