XAML in Xamarin.Forms 基礎篇 電子書

XAML in Xamarin.Forms 基礎篇 電子書
XAML in Xamarin.Forms 基礎篇 電子書

Xamarin.Forms 快速入門 電子書

Xamarin.Forms 快速入門 電子書
Xamarin.Forms 快速入門 電子書

2017/06/09

UML 表示說明

UML是一種開放的方法,用於說明、可視化、構建和編寫一個正在開發的、物件導向的、軟體密集系統的製品的開放方法。更多資訊可以參考 UML
底下的 UML 示意圖片使用 PowerPoint 製作出來,因為,在 PowerPoint 內無法做出空心箭頭的線條,因此,所有的空心箭頭,將會以實心箭頭來表示。

類別 / 抽象類別 / 介面

共需分三塊,上層,標示出 類別 / 抽象類別 / <> 介面的名稱。
中間區域,則是用來標示狀態,通常可以標示 Property 屬性。
最後一塊區域,則是說明其可以使用方法。

繼承

這裡是用來標示兩個實體間的 is-a 的關係
類別的繼承,使用實體線段與實心箭頭的線段將其連接起來。
而介面的實作部分,則是使用虛線與實心箭頭的線段將其連接起來。

組合

這裡是用來標示兩個實體間的 has-a 的關係
使用虛線與開放箭頭的線段將其連接起來。

程式碼片段

一個範例

請示著解讀底下的 UML 是在表示甚麼樣的關係呢?

2017/06/06

Xamarin.Android 各種封存屬性測試

在這篇 Xamarin 筆記中,將會針對 https://github.com/vulcanlee/XamarinHandsOnLab/tree/master/XFTask 專案,測試不同的專案選項,所封存的 apk 檔案大小。
在這裡,所有的測試都是在 Release 建置,並且使用專案屬性的這四種設定選項。而且,另種測試結果的 APK 檔案,將會可以從這裡取得 https://github.com/vulcanlee/XamarinHandsOnLabBuild
  • 連結器
  • 將組譯碼組合成機器碼
  • AOT 編譯
  • 使用 LLVM 最佳化編譯器
我們進行了六種組合模式的 Xamarin.Android APK 檔案的封存,得到這些模式下所產生的 APK 檔案大小。從底下的測試結果,我們看到了,只要當我們把可以產生原生碼的功能( 將組譯碼組合成機器碼 / 使用 LLVM 最佳化編譯器) 功能開啟之後,在這個測試專案下,我們可以看得出,所得到的 APK 檔案就會變得比較大。
模式APK大小
模式151.5 MB
模式223.3 MB
模式3126 MB
模式463.9 MB
模式5132 MB
模式664.3 MB
當我們沒有開啟 將組譯碼組合成機器碼 模式,這個專案內的所有組件將會存在於 APK 檔案內的 assemblies目錄下,底下將是模式1的 APK 檔案架構。
模式11
我們可以切換到 assemblies 目錄下,並且以組件檔案大小作排列,我們看到,最大的檔案那就是 Mono.Android.dll 這個組件,大小為 21.5 MB
模式12
可是,當我們查看模式2 (連結器:僅限 SDK 組譯碼) 的狀態下的 APK 檔案,切換到 assemblies 目錄下,並且以組件檔案大小作排列,我們看到,最大的檔案那就是 mscorlib.dll 這個組件,大小為 2.10 MB
所以,我們知道,當啟用了連結器模式,我們所產生的 APK 檔案大小將會明顯的小了許多,而且,就如同 Xamarin 官方文件對於連結器的說明文件描述一下,連結器會將這個專案內,沒有用到的類別、方法等等,從組件中移除,這樣將會使得您的 APK 檔案大幅瘦身下來。
模式21
至於要使用哪種專案屬性模式,來建置您的最終封存的檔案,就取決於您的決定了。

模式1

連結器:無
將組譯碼組合成機器碼:無選取
AOT 編譯:無選取
使用 LLVM 最佳化編譯器:無選取

模式2

連結器:僅限 SDK 組譯碼
將組譯碼組合成機器碼:無選取
AOT 編譯:無選取
使用 LLVM 最佳化編譯器:無選取

模式3

連結器:無
將組譯碼組合成機器碼:選取
AOT 編譯:選取
使用 LLVM 最佳化編譯器:選取

模式4

連結器:僅限 SDK 組譯碼
將組譯碼組合成機器碼:選取
AOT 編譯:選取
使用 LLVM 最佳化編譯器:選取

模式5

連結器:無
將組譯碼組合成機器碼:無選取
AOT 編譯:選取
使用 LLVM 最佳化編譯器:選取

模式6

連結器:僅限 SDK 組譯碼
將組譯碼組合成機器碼:無選取
AOT 編譯:選取
使用 LLVM 最佳化編譯器:選取

2017/06/02

升級到 Windows 10 Creators Update後,Visual Studio for Android Emulator 無法上網了

今天中午,我的電腦終於收到了 Windows 10 Creators Update 的升級推播通知,並且要求我要立即重新開機,這個時候,當然是要進行升級更新;當系統重新開機,花費了一些時間將 Windows 10 Creators Update 安裝完成後,當然是要繼續進行手頭上的工作。
可是,悲慘的問題來了,當我準備要進行剛剛開發到一半的 Xamarin.Forms 專案,繼續進行除錯的時候,此時模擬器啟動之後,出現了底下對話窗:
The emulator requires an Internet connection to start. Do you want to configure the emulator to connect to the Internet?
Your computer might lose network connectivity while these changes are applied. This might affect existing network operations.
詢問是否要上網
我立馬反應的點下了  這個按鈕,可是,當模擬器啟動之後,卻發現到所啟動的 Android 模擬器,無法連接上網路。
詢問是否要上網
若您也發生了這樣的問題,可以參考底下步驟來解決此一問題。
  • 請先關閉所有開啟的 Visual Studio for Android Emulator 模擬器
  • 開啟 Hyper-V 管理員
  • 從虛擬機器的清單中,找到您的 Android 模擬器
    在這裡,我選擇的是 VS Emulator 5.2-inch Marshmallow XXHDPI Phone 這個虛擬機器
    虛擬機器設定
  • 我們從這個模擬器的虛擬機器設定內容上,看到了一個問題,那就是這個虛擬機器原本是要有兩張網卡連接到這個虛擬機器上的,可是,現在只剩下一張網卡,而且,這張網卡卻是連接到內部網路之用的網卡;也就是說,要連接到 Internet 上的那張網卡不見了。
    Android虛擬機器設定內容
  • 請您參考上圖,點選數字1 的標示處:新增硬體
  • 在右半部區域,點選 網路介面卡
  • 接著點選 新增 按鈕
  • 接著,這台虛擬機器多了一個新硬體,就是剛剛加入的 網路介面卡
  • 請點選這張新的 網路介面卡,然後,在右半部的 虛擬交換器 下拉選單中,選擇您可以上 Inetnet 的網卡。
  • 完成後,請點選 確定 按鈕
    加入一張新的虛擬網卡
  • 最後,請重新啟動您的 Visual Studio for Android Emulator 模擬器
  • 一樣會出現系圖對話窗,請點選  按鈕
    詢問是否要上網
  • 當模擬器出現的時候,您會在右上角狀態列區域,看到這個模擬器已經連接上網路了,而且打開瀏覽器,確認是可以讀取到網路上的網站網頁內容。
詢問是否要上網

Hyper-V 升級更新