Linux 系統的分享、授權的機制相當完整,是否可以讓『所有用戶』共用同一套 Android SDK 呢?要達到上述目的,至少需要具有以下條件:
- 所有用戶共用同一套 Android Studio(參考前文)
- 所有用戶共用同一套 Android SDK
- 可以更新『已安裝』的 SDK 套件
- 可以安裝『未安裝』的 SDK 新版套件
註:目前只有『命令列』的操作步驟,『圖形化介面」的操作步驟,仍需要一些時間測試。
一、安裝『命令列工具 (command line tools)』
要安裝 Android SDK 要先安裝『命令列工具 (command line tools)』,這些命令檔可以從官網下載,在 Linux 安裝用的檔案是 sdk-tools-linux-xxxxxxx.zip,這次下載的是 sdk-tools-linux-3859397.zip。安裝的目錄就定在 /opt/android-sdk/,先在 /opt/ 下建立 android-sdk 這個目錄,再將剛才下載的檔案解壓縮在 /opt/android-sdk/ 目錄下。所下的命令為:
[root@Core-i7 ~]# mkdir /opt/android-sdk安裝後,可以檢查一下結果是否如下:
[root@Core-i7 ~]# unzip sdk-tools-linux-3859397.zip -d /opt/android-sdk/
其中 tools 這個目錄下,就是安裝好的『命令列工具 (command line tools)』。接著,就可繼續安裝 Android SDK 了。[root@Core-i7 ~]# ll /opt/android-sdk/總計 4drwxr-xr-x. 6 root root 4096 5月 14 15:09 tools
二、安裝 Android SDK
上個步驟中,有個名為 sdkmanager 的檔案,是在『命令列』安裝 Android SDK 的重要命令檔。在前文中執行 studio.sh (或由『程式選單』下點選 Android Studio)時,會預設安裝一些開發套件,若以 sdkmanager 安裝其等效命令為:[root@Core-i7 ~]# /opt/android-sdk/tools/bin/sdkmanager build-tools\;25.0.3 emulator extras\;google\;m2repository extras\;android\;m2repository extras\;m2repository\;com\;android\;support\;constraint\;constraint-layout-solver\;1.0.2 extras\;m2repository\;com\;android\;support\;constraint\;constraint-layout\;1.0.2 platforms\;android-25 patcher\;v4 platform-tools platforms\;android-25 sources\;android-25 tools經上述命令安裝後,『所有用戶』所看到的 Android SDK 就與執行 studio.sh 後預設安裝的結果無異。所安裝的 Android SDK 會在 /opt/android-sdk/ 目錄之下。
註一:上例中的數字為版本編號,可能與最新的版本編號不一樣,請讀者自行修改。
註二:有關 sdkmanager 命令的參數,請參考本文文末說明。
三、在各用戶的家目錄下建立 Android SDK 目錄、鏈結
[SiB@Core-i7 ~]$ mkdir ~/Android要下的命令有很多列,重新整理如下,方便讀者剪貼使用。
[SiB@Core-i7 ~]$ mkdir ~/Android/Sdk
[SiB@Core-i7 ~]$ cd ~/Android/Sdk
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/add-ons add-ons
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/build-tools build-tools
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/cmake cmake
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/docs docs
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/emulator emulator
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/extras extras
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/licenses licenses
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/lldb lldb
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/ndk-bundle ndk-bundle
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/patcher parcher
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/platform-tools platform-tools
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/platforms platforms
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/sources sources
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/system-images system-images
[SiB@Core-i7 ~Sdk]$ ln -s /opt/android-sdk/tools tools
mkdir ~/Android設定以上鏈結後,使用者就如同已安裝 Android SDK 一般。
mkdir ~/Android/Sdk
cd ~/Android/Sdk
ln -s /opt/android-sdk/add-ons add-ons
ln -s /opt/android-sdk/build-tools build-tools
ln -s /opt/android-sdk/cmake cmake
ln -s /opt/android-sdk/docs docs
ln -s /opt/android-sdk/emulator emulator
ln -s /opt/android-sdk/extras extras
ln -s /opt/android-sdk/licenses licenses
ln -s /opt/android-sdk/lldb lldb
ln -s /opt/android-sdk/ndk-bundle ndk-bundle
ln -s /opt/android-sdk/patcher parcher
ln -s /opt/android-sdk/platform-tools platform-tools
ln -s /opt/android-sdk/platforms platforms
ln -s /opt/android-sdk/sources sources
ln -s /opt/android-sdk/system-images system-images
ln -s /opt/android-sdk/tools tools
註三:各用戶家目錄下的 Android SDK 目錄名稱為:~/Android/Sdk,不可更改。
註四:若用戶曾經將 Android SDK 安裝在不同的目錄中,則要先將所有 Android 的設定完全移除才行。命令為:
[SiB@Core-i7 ~]$ rm .android -rf
[SiB@Core-i7 ~]$ rm .AndroidStudio2.3
[SiB@Core-i7 ~]$ rm Android -rf
四、Android SDK 的更新、管理
Android SDK 的套件常常更新或增加,當然也要由管理者下『更新』『安裝』或『移除』這些管理命令。更新 Android SDK
[root@Core-i7 ~]# /opt/android-sdk/tools/bin/sdkmanager --update這個命令只更新 Android SDK,不會更新 Android Studio。
列出 Android SDK 各項套件名
[root@Core-i7 ~]# /opt/android-sdk/tools/bin/sdkmanager --list這個命令會列出 Android SDK 的各項套件名稱,順序為:
- 最前段會先列出『已安裝』的套件,
- 中段則為 Android SDK 各項套件清單,
- 最後則為有『更新』版本的套件。
安裝 Android SDK 套件
[root@Core-i7 ~Temp]# /opt/android-sdk/tools/bin/sdkmanager platforms\;android-15 sources\;android-15上述命令安裝兩個套件,分別為:Android SDK Platform 15 及 Sources for Android 15。
註五:『 \; 』就是『 ; 』,因為命令解譯器會辨認錯誤,因而加上『 反斜線 \ 』
註六:套件名稱的間隔為『空白』
五、開發 Android APP
開始開發 Android APP,一樣是執行 Android Studio 的 studio.sh。執行的方式為:[SiB@Core-i7 ~]$ /opt/android-studio/bin/studio.sh或是依前文安裝 Android Studio 的結果,由『程式選單』之【應用程式】→【軟體開發】,再點選【Android Studio】就可以了。
確認之前的設定已完全清除,或完全沒有安裝過 Android Studio,按【OK】鈕
按【Next】鈕
選擇「安裝型別」,採用預設值『Standard (標準)』即可,按【Next】鈕
列出「安裝型別」及「預設目錄」,按【Next】鈕
提醒要安裝 KVM 以增加 Emulator (模擬器) 的執行速度,按【Finish】鈕
由於已經在用戶的家目錄下,建立 Android SDK 目錄及相關鏈結,因此直接顯示『Android SDK 已更新』,按【Finish】鈕
最後這個畫面表示 Android Studio 及 Android SDK 都已安裝且通過驗證,可以開始開發 Android APP 了。
後記
- 2017-6-10:安裝 Google APIs 後,需增加一個鏈結 add-ons,否則 Android Studio 無法找到它,已增訂在本文中的鏈結設定。
- 2017-6-20:把「使用者」在家目錄下,需建立的鏈結補齊,共增加 cmake, docs, lldb, ndk-bundle, 及 system-images。
已測試版本:
- Android SDK: 26, 25
- Fedora: 25, 24, 22
參考資料:
- Stack Overflow, "Installing Android Studio in a Computer Lab Environment with Individual Student Logins on OSX Ask Question," Sep. 28, 2015 [May 14, 2017].
- Stack Overflow, "How to install android constraint layout tools outside of Android Studio by using the command line?," Aug. 31, 2016 [May 14, 2017].
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)