共用方式為


獨立發佈

您可以在不使用任何現有 Android 市集的情況下發行應用程式。 本節將說明這些其他發行方法,以及 Xamarin.Android 的授權層級。

Xamarin 授權

有一些可用於開發、部署及散發 Xamarin.Android 應用程式的授權:

  • Visual Studio 社群 – 適用於使用 Windows 的學生、小型小組和 OSS 開發人員。

  • Visual Studio Professional – 適用於個別開發人員或小型小組(僅限 Windows)。 此授權提供一個標準或雲端訂用帳戶且沒有任何使用限制。

  • Visual Studio Enterprise – 適用於任何大小的小組(僅限 Windows)。 此授權包含企業功能、標準或雲端訂用帳戶。

請瀏覽 visualstudio.com 來下載 Community 版,或深入了解如何購買 Professional 和 Enterprise 版。

允許從未知來源進行安裝

Android 會防止使用者下載及安裝來自 Google Play.以外位置的應用程式。 若要允許從非市集來源進行安裝,使用者必須先在裝置上啟用 [不明的來源] 設定,才能嘗試安裝應用程式。 此設定可在 設定 > Security找到,如下圖所示:

Security settings screen

重要

有些網路提供者可能會防止安裝來自不明來源的應用程式,不論此設定為何。

透過電子郵件發行

將發行 APK 附加在電子郵件中,是一個將應用程式散發給使用者的快速便利方式。 當使用者在 Android 架構裝置上開啟該電子郵件時,Android 會辨識出該 APK 附件並顯示 [安裝] 按鈕,如下圖所示:

Install button for attachment

雖然透過電子郵件散發相當簡單,但在防範盜版或未經授權散發方面所能提供的防護相當少。 在應用程式的接收者很少,且受信任不會散發該應用程式的情況下,最適合使用此散發方式。

透過 Web 發行

您可以透過 Web 伺服器散發應用程式。 做法是將應用程式上傳到 Web 伺服器,然後將下載連結提供給使用者。 當 Android 架構裝置瀏覽至連結,然後下載應用程式時,該應用程式會在下載完成時自動安裝。

手動安裝 APK

手動安裝是安裝應用程式的第三個選項。 手動安裝應用程式:

  1. 將 APK 復本散發給使用者 – 例如,此復本可能會散佈在 CD 或 USB 快閃磁碟驅動器上。
  2. (使用者) 會在 Android 裝置 上安裝應用程式 – 使用命令行 Android 偵錯網橋adb) 工具。 adb 是一個多功能的命令列工具,可啟用與模擬器執行個體或 Android 架構裝置的通訊。 Android SDK 包含 adb;您可以在目錄 <sdk>/platform-tools/中找到。

Android 裝置必須透過 USB 纜線,才能連接至電腦。 Windows 可能也需要手機廠商所提供的額外 USB 驅動程式,才可供 adb 辨識。 這些額外 USB 驅動程式的安裝指示不在本文件的討論範圍內。

在發出任何 adb 命令之前,知道已連接哪些模擬器執行個體或裝置 (如果有的話) 會相當有幫助。 您可以使用 devices 命令來查看所連接裝置的清單,如以下程式碼片段所示範:

$ adb devices
List of devices attached
        0149B2EC03012005device

確認連線的裝置之後,可以使用adb發出 install 命令來安裝應用程式:

$ adb install <path-to-apk>

以下程式碼片段說明將應用程式安裝至所連接裝置的範例:

$ adb install helloworld.apk
3772 KB/s (3013594 bytes in 0.780s)
        pkg: /data/local/tmp/helloworld.apk
Success

如果已安裝應用程式, adb install 將無法安裝 APK,並回報失敗,如下列範例所示:

$ adb install helloworld.apk
4037 KB/s (3013594 bytes in 0.728s)
        pkg: /data/local/tmp/helloworld.apk
Failure [INSTALL_FAILED_ALREADY_EXISTS]

您將需要將應用程式自裝置中解除安裝。 首先,發出 adb uninstall 命令:

adb uninstall <package_name>

以下程式碼片段是將應用程式解除安裝的範例:

$ adb uninstall mono.samples.helloworld
Success