顯示具有 Android 標籤的文章。 顯示所有文章
顯示具有 Android 標籤的文章。 顯示所有文章

2017年11月19日 星期日

解決「用 sdkmanager 安裝模組時,出現 "No space left on device." 訊息」的問題

最近 Android 推出新版 O,想說模擬器也安裝看看,結果失敗
[root@Core-i7 ~]# /opt/android-sdk/tools/bin/sdkmanager system-images\;android-27\;google_apis_playstore\;x86
Warning: An error occurred while preparing SDK package Google Play Intel x86 Atom System Image: No space left on device.
[root@Core-i7 ~]# ll==                  ] 55% Unzipping... x86/vendor.img
出現『Warning: An error occurred while preparing SDK package Google Play Intel x86 Atom System Image: No space left on device.』這個訊息,字面的意思是『空間不足』。
  找一下,看它將下載的檔案放在哪裏?應該是『下載空間不足』,不然就是『解壓縮時空間不足』。

2017年6月24日 星期六

列出 sdkmanager 可安裝套件的完整名稱

在前文“安裝 Android SDK 供『所有用戶』開發 Android APP”中,有提及用
[root@Core-i7 ~]# /opt/android-sdk/tools/bin/sdkmanager <套件名> [<套件名>]
安裝 Android SDK 的開發套件。不過,在查詢套件名稱時
[root@Core-i7 ~]# /opt/android-sdk/tools/bin/sdkmanager --list
Installed packages:
  Path                                                  | Version | Description   | Location
  -------                                                 | -------   | -------            | -------
  add-ons;addon-g..._apis-google-15 | 3        | Google APIs | add-ons/addon-g...apis-google-15/
  add-ons;addon-g..._apis-google-18 | 4        | Google APIs | add-ons/addon-g...apis-google-18/
 ..........
Available Packages:
  Path                                                  | Version   | Description
  -------                                                 | -------     | -------
  add-ons;addon-g..._apis-google-15 | 3            | Google APIs
  add-ons;addon-g..._apis-google-16 | 4            | Google APIs
  add-ons;addon-g..._apis-google-17 | 4            | Google APIs
  add-ons;addon-g..._apis-google-18 | 4            | Google APIs
  add-ons;addon-g..._apis-google-19 | 20          | Google APIs
  add-ons;addon-g..._apis-google-21 | 1            | Google APIs
 ..........
如標示為紅色的套件名稱,其中的『. . .』在安裝時卻不知該填入哪些字。想安裝也會因為不知完整名稱,而出現找不到套件名稱的錯誤訊息。

2017年6月18日 星期日

在「遠端電腦」開發,以連接在「本地電腦」之 Android 裝置測試(多人版)

依前文〝在「遠端電腦」開發,以連接「本地電腦」之 Android 裝置測試(修訂)〞的步驟安裝、設定後,也用了一陣子,似乎沒什麼問題。但是當第二個「Android 開發者」也連上「遠端電腦」時,啟動 Android Studio 後,Android APP 下載測試時,到底下載到哪裏呢?

一、ADB 預設連結埠號被佔用之問題

在前文〝在「遠端電腦」開發,以連接「本地電腦」之 Android 裝置測試(修訂)〞有提到『在建立「遠端電腦」的逆向連接通道』時,有提及:關閉「遠端電腦」中佔用 5037/TCP 埠的 ADB,以解決建立逆向連接通道失敗的問題。
  而 Android Studio 預設連結 ADB (Android Debug Bridge) 的埠號為 5037/TCP,當「遠端電腦」開啟 Android Studio 時,會以這個埠號去連結 ADB。若這個埠號沒有 ADB,即會開啟一個 ADB 供自己連結使用。
  但是,若『遠端電腦』有多人同時開啟 Android Studio,當第二個開發者開啟 Android Studio 時,發現在預設埠號已被佔用,就會認定有 ADB 而嘗試連結,那麼 Android APP 要下載至那一台 Android 裝置執行?

2017年6月17日 星期六

執行 sdkmanager 出現『無法載入 repositories.cfg』的訊息

執行 sdkmanager 來更新 Android SDK 時,老是出現〝Warning: File /root/.android/repositories.cfg could not be loaded.〞的訊息。
[root@Core-i7 ~]# /opt/android-sdk/tools/bin/sdkmanager --list
Warning: File /root/.android/repositories.cfg could not be loaded.
Installed packages:
Path|Version|Description|Location
-------|-------|-------|-------
build-tools;25.0.3|25.0.3|Android SDK Build-Tools 25.0.3|build-tools/25.0.3/
emulator|26.0.3|Android Emulator|emulator/
‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧
雖然不影響執行結果(更新、列出等功能),每次執行都看到覺得有些礙眼,想讓它消失掉。

2017年6月10日 星期六

在「遠端電腦」開發,以連接「本地電腦」之 Android 裝置測試(修訂)

由於平常工作用的電腦有些舊了,但可以透過網路使用其它電腦的資源,就把它當「鍵盤、螢幕、滑鼠 (KVM)」來用,也就是「廋客戶端 (Thin-Client)」介面平台。最近想開發 Android 程式,之前有寫過〝在「遠端電腦」開發,以連接「本地電腦」之 Android 裝置測試〞一文,就參考那篇文章來設定,又覺得「本地電腦」應該是最少安裝才對,而且之前並不是在 Android Studio 的開發環境,就想再重新整理一次。設定目標如下:
  • 在「遠端電腦」執行 Android Studio 開發工具
  • 程式編譯後,可直接下載至接在「本地電腦」的 Android 裝置
  • 在「本地電腦」安裝最少量的程式
  • ADB (Android Debug Bridge) 在「本地電腦」執行
  • Android 裝置連接在「本地電腦」

2017年5月15日 星期一

安裝 Android SDK 供『所有用戶』開發 Android APP

前文〝在 Fedora 中安裝 Android Studio 供『所有用戶』使用〞中,只有 Android Studio 是共用的,而 Android SDK 是安裝在『個別使用者的家目錄』中。如果,有好幾個使用者開發的版本相同,那麼重覆安裝下,所浪費的硬碟空間就很可觀。
  Linux 系統的分享、授權的機制相當完整,是否可以讓『所有用戶』共用同一套 Android SDK 呢?要達到上述目的,至少需要具有以下條件:
  • 所有用戶共用同一套 Android Studio(參考前文
  • 所有用戶共用同一套 Android SDK
  • 可以更新『已安裝』的 SDK 套件
  • 可以安裝『未安裝』的 SDK 新版套件
以下就是整理後的安裝、設定步驟。

:目前只有『命令列』的操作步驟,『圖形化介面」的操作步驟,仍需要一些時間測試。

2017年5月14日 星期日

在 Fedora 中安裝 Android Studio 供『所有用戶』使用

Android 的開發環境,從以前 Android SDK 轉換現在的 Android Studio 以經好幾年。但是,在 Fedora 裏都沒安裝過 Android Studio,一直使用 Android SDK + Eclipse。想說,Android Studio 已經推出好幾年了,應該可以開始試試。
  在自已的帳戶下安裝 Android Studio 的步驟很簡單,依官網的安裝說明即可成功,因此不再贅言。以下是在 Fedora 裏安裝 Android Studio 供『所有用戶』使用的安裝記錄。

一、安裝 Android Studio 供所有使用者使用

由 Android Studio 的安裝說明得知,在執行 Android Studio 還需要安裝這些套件。
[root@Core-i7 ~]# dnf install compat-libstdc++-296.i686 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64 glibc.i686
安裝後,接下來就是安裝 Android Studio 了。當然,是要從 Android 官網下載 Android Studio,才可以安心的使用它,這次下載的版本是:Android Studio 2.3.2 for Linux。因為希望讓所有使用者都可以執行 Android Studio,所以開啟「終端機」後,先切換到 root 權限,將 Android Studio 解壓縮在 /opt/ 目錄下。
[root@Core-i7 ~Temp]# unzip android-studio-ide-162.3934792-linux.zip -d /opt/
如果,急著測試安裝結果,可以在任何一個使用者的「終端機」中,立即執行。
[SiB@Core-i7 ~]$ /opt/android-studio/bin/studio.sh
想用,『程式選單』執行 Android Studio,則要再繼續下個步驟。

2014年3月16日 星期日

在「遠端電腦」開發,以連接「本地電腦」之 Android 裝置測試

前一陣子在開發的 Android Apps 程式需要用 Android 裝置測試,用 VNC 連接「遠端電腦」並在其上開發 Apps。要在 Android 實體機測試時,將在「遠端電腦」編譯後產生的 Android apk 檔案,用 FTP 或 SFTP 下載回「本地電腦」,再利用 Android 的開發工具 ADB 將之下載至 Android 裝置測試。
  覺得其中的『用 FTP 或 SFTP 下載回「本地電腦」』這個步驟有些麻煩,就想再找個方法在每次編譯後都直接下載到 Android 裝置,就像開發、測試都在同一台電腦一樣方便。參考網路上的做法,再加上自己的一些嘗試,終於達成這個目標。
  就將這些步驟記下來,以供將來需要時的參考。整理一下到目前為止的紀錄:
開 發 端測 試 機 (端)發 文 連 結
Eclipse (PC_1)AVD (在 PC_1)預設之開發環境(使用 AVD 模擬器)
Eclipse (PC_1)Android 裝置 (連接 PC_1)預設之開發環境(使用 Android 裝置)
Linux 中,令 ADB 測得以USB連接的 Android設備
Linux 中,令 ADB 測得以USB連接的 Android設備(F19)
Eclipse (PC_1)AVD (在 PC_2)使用另一台電腦的 Android 模擬器 (AVD) 除錯
Eclipse (PC_1)Android-x86 (為 PC_2)用另一台運行 Android-x86 的電腦除錯
Eclipse (PC_1)Android 裝置 (Galaxy SII)用 Wi-Fi 下載 Android 程式到 GALAXY SII 手機
Eclipse (PC_1)Android 裝置 (連接 PC_2)在「遠端電腦」開發,經 SFTP 下載,再由「本地電腦」ADB 載入至 Android 裝置測試
Eclipse (PC_1)Android 裝置 (連接 PC_2)本文

註一:『PC_1』和『PC_2』分別指兩台不同之電腦,『PC_1』為執行開發 Android App 的 Eclipse 之電腦,而『PC_2』是指另一台電腦。
註二:『PC_1』和『PC_2』編號與執行快慢無關,選擇以方便開發為主要考量。

2014年2月14日 星期五

在「遠端電腦」開發,經 SFTP 下載,再由「本地電腦」ADB 載入至 Android 裝置測試

最近在開發 Android Apps 時,用平常工作用的電腦,覺得稍嫌慢了一些。於是從「本地電腦」以 VNC 連上「遠端電腦」,用另一台較快的電腦寫程式,希望編寫、編譯程式時會快一些(註:最近流行雲端應用)。如果模擬器是也在「遠端電腦」,僅將畫面傳回「本地電腦」時,除畫面及操作會有一些延遲外,其它的反應時間都相當不錯。
  但是,當這些開發的程式需要用 Android 裝置測試,用 VNC 連接「遠端電腦」時,也要同時『重導』USB 的連線,目前試過的幾個方法都有些麻煩。故而採用較簡單的解決辦法,就是將在「遠端電腦」編譯後產生的 Android apk 檔案,用 FTP 或 SFTP 下載回「本地電腦」,再利用 Android 的開發工具 ADB 將之下載至 Android 裝置測試。
  整理一下到目前為止的紀錄:
開 發 端測 試 機 (端)發 文 連 結
Eclipse (PC_1)AVD (在 PC_1)預設之開發環境(使用 AVD 模擬器)
Eclipse (PC_1)Android 裝置 (連接 PC_1)預設之開發環境(使用 Android 裝置)預設之開發環境(使用 Android 裝置)
Linux 中,令 ADB 測得以USB連接的 Android設備
Linux 中,令 ADB 測得以USB連接的 Android設備(F19)
Eclipse (PC_1)AVD (在 PC_2)使用另一台電腦的 Android 模擬器 (AVD) 除錯
Eclipse (PC_1)Android-x86 (為 PC_2)用另一台運行 Android-x86 的電腦除錯
Eclipse (PC_1)Android 裝置 (Galaxy SII)用 WiFi 下載 Android 程式到 GALAXY SII 手機
Eclipse (PC_1)Android 裝置 (連接 PC_2)本文
註一:『PC_1』和『PC_2』分別指兩台不同之電腦,『PC_1』為執行開發 Android App 的 Eclipse 之電腦,而『PC_2』是指另一台電腦。
註二:『PC_1』和『PC_2』編號與執行快慢無關,選擇以方便開發為主要考量。

在「遠端電腦」開發 App,經 FTP 或 SFTP 下載,再由「本地電腦」之 ADB 載入 Android 裝置測試,步驟說明如下:

2014年2月12日 星期三

Linux 中,令 ADB 測得以 USB 連接的 Android 設備(F19)

在 Linux 中使用 Android SDK 開發 App 時,遇到將 Android 手機或平板透過 USB 接在電腦,但是電腦卻不能自動偵測到。在前文『Linux 中,令 ADB 測得以 USB 連接的 Android 設備』中的步驟,在電腦更新作業系統後,有些部份已經不再適用。
  另外,有些新增加的 Android 裝置之 USB 辨認碼,也一併整理一下。只要依照下面這幾個步驟,就可以自動偵測了:

2013年9月4日 星期三

Android 4.4 的代號為什麼要改成 KitKat (奇巧) 的原因

今天在網路看到一個消息,Android 4.4 的代碼為 KitKat (奇巧),與之前網路的傳言代碼為 Key Lime Pie (萊姆派) 不同。網路上有許多猜測的原因,
  • 有很多人不知道 Key Lime Pie 的味道,不利推廣
  • Android 某高層喜歡 KitKat 巧克力棒
  • 這是 Android 的保密策略
  • 我也來說個原因吧!
因為 Android 4.4 這個平台的代號輪到『 K 』了,而 Key Lime Pie 一次就用掉兩個『 K 』和『 L 』,那不是表示下一版的 Android 會開天窗,而被跳過?

當然不行!所以 Android 要將代碼改成 KitKat 了!



:最後一個原因純屬臆測,如有雷同應為巧合。

參考資料:

2012年12月26日 星期三

解決「HTC Tattoo 重置後,不能連上 Market」問題

一支 HTC Tattoo(刺青機)舊手機前一陣子借給朋友,理所當然地,借前借後都會將手機重置(reset),即:恢復成原廠設定。想再連上 Google Market 安裝些 Apps 來用用,結果悲劇了!出現這個訊息
無法建立穩定的資料連線通路,伺服器連線失敗,這可能是暫時性問題,也可能是您的手機無法使用資料傳輸服務。如果此問題持續發生,請與客戶服務中心聯絡。

CAN'T ESTABLISH A RELIABLE DATA CONNECTION TO THE SERVER. THIS COULD BE A TEMPORARY PROBLEM OR YOUR SIM CARD MAY NOT BE PROVISIONED FOR DATA SERVICES.  IF IT CONTUNUES CALL CUSTOMER CARE.
雖然是舊手機、功能也很弱,但是體積小當個 Android 小遊戲機也不錯。發揮實驗的精神,嘗試不同的設定,終於可以加裝 Apps 了。解決辨法就是:
重置時,先以『英文版』連上 Google 帳號,待註冊成功後,再切回『中文版』。在這之後,就可以正常使用『中文版』的環境了。
:網路上還有許多其它解決辦法,但是,上述方法解決了我遇到的問題。

參考資料:

  • 從 Google 上以關鍵字『tattoo market google』及『無法建立穩定的資料連線通路』找了許多資料,有些敘述的問題不確定是否相同,解法也是各有論點,所以不詳列。

2012年8月11日 星期六

使用另一台電腦的 Android 模擬器 (AVD) 除錯

電腦用久了,總是有感情的,也許是習慣了。當開發 Android App 時總要啟動模擬器試一下程式,偏偏舊電腦跑不動模擬器,為了這個原因而換電腦是有點花錢。之前的發文提到 " 使用另一台運行 Android-x86 的電腦除錯 ",但是當開發一些使用 Google API 的 App 時,就需要使用 Android 模擬器 (AVD)。

能否用另一台電腦的 Android 模擬器 (AVD) 測試 App 呢?當然可以!
 

2012年8月10日 星期五

用另一台運行 Android-x86 的電腦除錯

電腦用久了,總是有感情的,也許是習慣了。當開發 Android App 時總要啟動模擬器試一下程式,偏偏舊電腦跑不動模擬器,為了這個原因而換電腦是有點花錢。能不能在另一台安裝 Android-x86 的電腦上測試你的 Android App 呢?當然可以!

2012年8月6日 星期一

啟動 Android 模擬器時,並同時設定「時區」、關閉「啟動動畫」

在開發 Android 的 app 時,常會開啟模擬器,設定時區以顯示正確時間 雖然可以將模擬器的狀態存下來,但是時間也跟著凍結了,下次開機時間就不正確。只要利用啟動模擬器的時候,順便加上時區的參數,就不用再調整了。
[SiB@Celeron-D ~]$ Android-SDK/tools/emulator -avd Android_2.2 -timezone Asia/Taipei -no-boot-anim
其中的參數說明如下:
參 數設 定 值說  明
-avdAndroid_2.2開啟名稱為『Android_2.2』之「模擬器」
-timezoneAsia/Taipei設定「模擬器」的時區為『亞洲/台北』
-no-boot-anim關閉「模擬器」啟動時的動畫,加快啟動速度

2012年8月4日 星期六

用 Wi-Fi 下載 Android 程式到 GALAXY SII 手機

開發 Android 程式當使用感測器時,模擬器並不能正確模擬。通常需使用實機,即透過 USB 連線下載。有著一條線的羈絆,覺得非常不方便。便想透過無線網路,看是否能經由 WiFi 下載而不需要 USB 線。
透過 Google 的協助,查到相當多的資料。但是,都需使用經過 root 的手機才可。
為了不想讓手機處於「不確定」的狀態,便嘗試一下,是否有手機不需經過 root 就可以這樣操作。經過一些時間的測試,發現 GALAXY SII 不需 root 即可使用。步驟如下:

Linux 中,令 ADB 測得以 USB 連接的 Android 設備

在 Linux 中使用 Android SDK 開發 App 時,遇到將 Android 手機或平板用 USB 接上,但是電腦卻不能自動測試到。
Linux 不是很多裝置都不需安裝驅動程式嗎?怎麼會這樣呢?
原來,是 USB 裝置的自動辨識機制尚未設定。由於 Android 裝置並不是 PC 的常設裝置,當然 Linux 也就未預設安裝妥善。只要依照下面這幾個步驟,就可以自動偵測了: