今天同事說拉了一份 Android 程式碼,但是在他的電腦上總是構建失敗,說下載不下來一些元件。經常檢視 log, 發現確實是需要翻牆。
使用 Shadowsocks 的 PAC 自動模式始終失敗
本地開啟自己搭建的 Shadowsocks,使用 PAC 自動模式。代理地址是:172.0.0.1 ,埠:1089
在 Android Studio 中如下設定,未成功。
嘗試以下,也沒有成功。
經過
的測試,發現,這種設定方法是錯誤的。不會成功,至少對於 mac 來說是這樣的。開啟正確的全域性代理模式
首先將 Shadowsocks 設定為全域性代理模式,通過 mac 的網路
, 得到代理地址是:127.0.0.1, 埠:1086
在 AS 中配置:
可以點選圖中的 Check connecction
按鈕,輸入http://www.youtube.com
來檢驗是否可以走代理。
正常來說,應該會成功的。如果不行,可能是埠占用,或者一些其他原因,建議重啟電腦試試。
使用 Android Studio 構建專案的時候,預設就可以走代理直接訪問下載不了的資源了。但是這個期間是看不到具體過程,如果卡在哪一步,我們很難察覺,只能默默的等待。非常的尷尬,我們可能會想如果使用命令該多好。
經過一些測試,發現設定命令的時候,還是有一些技巧的。
簡單點的就是直接使用 export ALL_PROXY=socks5://127.0.0.1:1086
設定當前的視窗生效。
然後使用 curl -i http://ip.cn
進行測試,看是否走了代理。
以下是我的測試結果: 未使用代理
使用代理:
雖然使用了代理,但是 ping
命令還是不通的。
git clone 測試代理
googlesource.com 是 google 的程式碼開源地址,但是現在幾乎停用了,都轉到 github。 但是還有部分程式碼還是 這裡,例如: android.googlesource.com/device/asus…
google 和 googlesource.com 預設在國內都是 ping 不通的。所以可以使用這個測試代理是否可用。
所以選定這個命令:git clone https://android.googlesource.com/device/asus/deb
不開代理,預設提示失敗:
開代理,下載成功:
到這裡,命令列已經可用了。
Android Studio 設定代理
更新 Android SDK
嘗試使用 android sdk 工具更新最新元件
新版本的 Android SDK 不允許直接通過命令列更新 SDK 了,需要配合 Android Studio 一起才能更新,讓人有些不爽。
可以在這裡下載對應平臺的 zip, 解壓後直接替換自帶的 tools 等目錄,就可以和以前一樣使用 android
命令開啟 Android SDK 的 UI 更新介面。
pan.baidu.com/s/1xAOFWhI_…
在 Android Studio 中更新 SDK
常用公開的代理伺服器
大連東軟資訊學院映象伺服器地址: http://mirrors.neusoft.edu.cn 埠:80
北京化工大學映象伺服器地址: IPv4: http://ubuntu.buct.edu.cn/ 埠:80 IPv4: http://ubuntu.buct.cn/ 埠:80 IPv6: http://ubuntu.buct6.edu.cn/ 埠:80
上海GDG映象伺服器地址: http://sdk.gdgshanghai.com 埠:8000
參考地址:www.cnblogs.com/maxinliang/…
具體的使用的時候,不需要 http, 直接 域名,即:mirrors.neusoft.edu.cn
總結
先開啟 SS 的全域性模式,檢視到代理的 ip 和 port, 然後命令列每次需要設定下 export ALL_PROXY=socks5://127.0.0.1:1086
, 只對當前視窗有效。至於 ping 命令不行,而程式碼庫能拉下來,有可能是一些 ZF 的限制吧。能保證我們使用就可以了。
具體詳見我的部落格:http://www.gdky005.com/2018/03/29/Mac-%E5%92%8C-Android-Studio-%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%B5%B0-Shadowsocks-%E4%BB%A3%E7%90%86/