已經有一段時間沒開 Android Studio 起來用,看到 GitHub Copilot 有說可以在 Android Studio 當中使用 GitHub Copilot Chat 的 Plugin (對,已經腿很久了),就不假思索的打開電腦上已經安裝的 Android Studio 來試試看。
在 Android Studio 中點開 Plugins 找到 Marketplace:

已經有一段時間沒開 Android Studio 起來用,看到 GitHub Copilot 有說可以在 Android Studio 當中使用 GitHub Copilot Chat 的 Plugin (對,已經腿很久了),就不假思索的打開電腦上已經安裝的 Android Studio 來試試看。
在 Android Studio 中點開 Plugins 找到 Marketplace:

"對 GitHub 的 Organization 中的成員設定 GitHub Copilot : 解釋篇" 所提到的 Organization 請理解為:
群體
這個 "群體" 可能會是:
…等這樣的詞彙解釋。
在 AI 盛行起來後,在數位世界中的任何一個 "單位" 中有可能存在多個 "人類" 或 "Agent" 的個體,那就適用這個 "Organization" 的觀點。
在 GitHub Copilot (以 2026Q1 這時間點瞭解到) 所設計的各種 Plans 來看,在使用上分成兩大區塊:
如果你就是只有一個人,基本上都是 Individuals (個人/獨立個體商)。
這樣的使用情境大概就是,想要自己放飛自我寫程式或是整間公司就只有你一個人,不用跟其他任何 "人類" 或 "Agent" 有交流與互動就能完成工作,那可以選的 Plan 有:
在使用 .NET MAUI 的時候可以透過 Google 推出的 Android Emulator 來建立 Android Virtual Device (AVD),以便進行基本的 Android App 開發與前期的測試。

雖然在 App 的開發到後期通常會直接使用 實際的裝置 進行測試會比較恰當,但不可質疑的 AVD 在 Android App 很多開發情境當中仍是扮演著測試環節中很重要的部分。
而 Google 所推出的 Android Emulator 可以透過 Visual Studio 當中的 "Android 裝置管理員" 來使用,並且建立所需的 AVD 環境。
由於 Visual Studio 在安裝 .NET MAUI 的工作負載時,只會安裝 "基本" 的 Android 所需的開發與執行環境。如果有遇到一些狀況需要其他的進階使用時,那對於 Android SDK 的元件安裝就必須再進一步的調整。
例如在 前篇 的介紹當中,要啟動所建立的 Android Emulator 時就 "可能" 會有看到類似的提示畫面:

可以怎樣進一步嘗試調整呢?
可以看看本篇介紹。
而由於 .NET MAUI 是一套建置跨平台應用的開發技術,所以如果要在 上回 所建構出的 .NET MAUI 專案,直接切換建置 Android 出應用程式並不是什麼難事:

在前一篇 "Avalonia.MAUI Hybrid 之使用 .NET MAUI Essentials 實作篇 - I" 所完成的基礎下,在此篇就能繼續加入相關的 .NET MAUI Essentials 的使用。
不過,還是要提醒一下,如果未完成 Visual Studio 所提供的 .NET MAUI 開發,並完成 Android 、 iOS 環境所需的建置。
那將無法完成本篇所講的部分測試結果。
Avalonia.MAUI Hybrid 之使用 .NET MAUI Essentials 介紹篇 提到的相關部分,如果是沒有接觸過 Avalonia UI 跟 .NET MAUI 一段時間的話,感覺要實際使用會有點難。
雖然 Avalonia.MAUI Hybrid 的 Repo: Avalonia.MAUI Hybrid 中有提供 Sample Code,但不知道為啥直接要使用時搞了一陣子都沒辦法成功。
最後只好自己實際來操作一次,透過 Avalonia UI 所提供的 Visual Studio 2022 所建立的專案範本開始建立起。
看看怎一步一步的完成囉~~~
在跨平台開發技術上若單就 UI 層面的跨平台的話,在 .NET 技術上有三套廣為人知的使用 .NET MAUI、Avalonia UI、Uno Platform。其各有千秋,在此就不多談相關比較(若有興趣可參考文後所推薦閱讀連結)。
近期則有比較特別的部分是 Avalonia UI 官方的 GitHub 推出了一個 Repo: Avalonia.MAUI Hybrid
雖然支援有其作業系統上的限制性(目前只支援 iOS、Android 兩套手機作業系統),但仍對 Avalonia UI 來說是一件相當有吸引力的事。
在 .NET MAUI 的專案當中若使用 Onion.Maui.GoogleMaps 這個 Nuget 套件(前身為 Xamarin.Forms.GoogleMaps) 後,在 iOS 平台上就能順利呈現 Google Maps 的效果:

接下來就看看如何在專案中開始使用此 "Onion.Maui.GoogleMaps" 套件囉~~~
若在 .NET MAUI 的應用程式中,使用 "Microsoft.Maui.Controls.Maps" 的 Maps 控制項,在 Android/iOS 上呈現起來大致如下:

某一天收件匣中很突然的收到 Google Play Support 針對上架的 App 發來一封違反 "Google Play 政策規定" 的警告: "隱私權政策無效"。

一時之間還真是二丈金剛,摸不著頭腦…
要使用 .NET MAUI 官方的 Maps 元件的話,需要額外在 .NET MAUI 專案中安裝 Nuget 套件: "Microsoft.Maui.Controls.Maps"。
而誠如上一篇所說,由於在 Android 平台當中 "Microsoft.Maui.Controls.Maps" 會直接使用 Android 預設的地圖服務平台 Google Maps。所以,要開始使用 .NET MAUI 的官方 Maps 元件並執行在 Android 平台之前,請先前往 Google Maps Platform 進行申請。
Google 統一了雲端服務的申請操作,接著就自然而然地會被導向 Google Cloud Console 當中進行:
根據前一篇的說明,針對目標套件 API 31 的規範問題,若沒有調整 App 所使用的目標套件 SDK 就無法上架。

若有使用 Xamarin(.Forms) 技術開發 Android App 的話,該如何修正這個問題以利符合 Google Play 的目標 API 規範呢?
文章標題,來翻譯翻譯後的意思就是:
請按照 Google Play 要求 "準則" 上傳 Android 的 .apk or .aab,否則就不能上架。
那為什麼要這樣規定呢? Google Play 官方給出了這樣的解釋:
指定使用最新 API 級別也有助於讓應用程式充分發揮平台的最新功能,讓使用者用得更加愉快…(?
上述解釋可參見下列網址:
https://developer.android.com/google/play/requirements/target-sdk?hl=zh-tw#why-target
.NET 6 去年 11/8 正式發佈至今已經屆滿半年,而在今年的 Build 大會上也正式發佈 .NET MAUI (a.k.a. 下一代的 Xamarin.Forms,原 Xamarin.Forms 會持續維持在 5.x.x)。
而正常來說 GA 後的技術都會加到 Visual Studio 的 "Release Channel" 當中,但稍微弔詭的地方是 .NET MAUI 仍是被放在 "Preview Channel" 的 Visual Studio 當中。
所以…
要使用 .NET MAUI 的話,必須安裝 Visual Studio 2022 Preview 的版本來使用。
如果按照標題的概念來看,其實網卡的 DNS 設定錯誤,仍然是可以上網的…
所有的連線都要轉成 ip 位址的方式。
不會有人去記住要使用的網站 ip 吧!
好,就算記住了,Android 系統的相關連線服務也還是靠 DNS 才能正確連線使用阿…所以還是來知道一下怎麼處理吧!
在 .NET 5 已經推出一段時日的今天,.NET 6 已經正式邁入 preview2 (正在撰寫本文的時候官方 release preview 3 了😂)階段。
隨著距離 .NET 6 正式版推出的時間越來越近,有越來越多捧友關心 Xamarin.Forms 在 .NET 6 中會如何改變。而如果使用 Xamarin.Forms 開發的觀念有正確的話,目前到 preview 3 的釋出結果來看,其實來說沒有太多的改變。
真要說最大的改變就是改名 MAUI 的全新感受吧! 所以就讓我們來一探究竟囉…

在 App 當中設定 Icon 圖示其實挺繁瑣且困擾的,而在 Xamarin.Forms 4.6 之後可以透過字型檔來設定這些 Icon 圖示,就讓我們來看看如何完成吧!
還不知道 Scrcpy 這工具的朋友可參考 "透過 Scrcpy 連結 Android 實體設備展示畫面與操控" 來了解一番!
而每次連接都要打指令就顯的有點麻煩,這時候透過 Visual Studio 的外部工具設定,再自行設定按起來覺得方便的快捷鍵,那使用起來在效率上就會更加便捷。
好了,本篇很短,應該可以馬上跟著做完。
開始囉~~~