C# 入門指南

單元 28 - 認識 Android App 開發

~~學習進度表~~

Visual Studio Community 2019 可以開發 iOS 及 Android 裝置的 App ,這就用到了 Xamarin

Xamarin

Xamarin 原本是提供 C# 第三方程式庫 (third party library) 的公司,被微軟收購後,微軟將 Xamarin 的程式庫 (library) 整合到 .NET 中。

使用 Xamarin 可以開發 iOS App ,但是必須使用 Mac 版的 Visual Studio ,因為需要連結到 Xcode 才能正常編譯 iOS App , Xcode 是 Apple 公司提供的開發工具。換句話說,利用 Visual Studio 開發 iOS App 必須使用 Mac 電腦。

想要開發 Android App ,就得先認識 Android 的版本,目前 Visual Studio Community 2019 支援的 Android 版本為

版本名稱
Android 9.0Pie
Android 8.1Oreo
Android 8.0Oreo
Android 7.1Nougat
Android 7.0Nougat
Android 6.0Marshmallow
Android 5.1Lollipop
Android 5.0Lollipop
Android 4.4.87Kit Kat + Wear support
Android 4.4Kit Kat

一般建立新專案 (project) 都是直接支援到最新版本,其他就是視情況要選擇支援到多舊的版本,版本意味著是多久前推出的手機,例如 Android 5.0 是在 2014 年的年底發布, Android 5.1 則是後續版本,兩者的市佔率約有 14.5% ,因此推應用程式是否要顧及這 14.5% 的使用族群,這會是重要考量之一。

Android 的版面預設是用 XML 編輯,同樣可用「設計工具」, Visual Studio Community 2019 提供版面範本的選擇並不多,如下圖

通常初學是選擇空白的 Activity ,然後自行設計版面配置。

一個 Activity 對應到一個版面的 XML 檔案,版面可以有不同的排版方式。

簡單說,開發 Android App 就是設計 Activity ,一個 Activity 就是一個頁面,如果 App 要在不同的頁面切換,就要設定多個 Activity

微軟的 C# 官方文件用機器翻譯將 Activity 翻成「活動」,這裡保留 Activity ,用以表示 Activity 的意思是類別 (class) 。

實務開發 Android App 在以上還會有很多細節需要討論,本書我們會以簡單的兩個 Activity 做頁面,首先是開啟 App 的 Activity ,然後進編密碼的 Activity ,接下來就進入 Android App 篇囉!

相關教學影片

上一頁 單元 27 - 完成版的 WpfAppDemo 專案
回 C# 入門指南首頁
下一頁 Android App 篇
回 C# 教材首頁
回程式語言教材首頁
中英文術語對照
類別class
程式庫library
專案project
第三方程式庫third party library
參考資料
參考資料
1. Visual Studio | Microsoft Docs - 使用 Visual Studio 進行 C# 開發
2. Visual Studio | Microsoft Docs - 教學課程:使用 C# 建立一個簡單的應用程式
重點整理
1. 要在 Visual Studio 開發行動應用程式就要用到 Xamarin ,如果要開發 iOS App 就必須使用 Mac 。
2. 開發 Android App 要先認識 Android 的版本, Visual Studio Community 2019 支援 Android 版本從 4.4 到 9.0 。
3. Android App 基本上是不同的 Activity 之間做切換,一個 Activity 就是一個頁面。
問題與討論
1. 為什麼開發 Android App 要區分不同的 Android 版本?
2. Activity 是什麼?
練習
1. 承接上一個單元的 HelloDemo 專案,在 ClickMe() 方法中將 Count 屬性遞增,然後計算 Count 除以 2 的餘數,如果餘數為 0 ,就把 DisplayText 設定為「哈囉」, ClickMeContent 設定為「點我」,否則將 DisplayText 設定為「你好」, ClickMeContent 設定為「再點」
2. 承接上一個單元的 GuessGameDemo 專案,替每個按鈕的連動方法設定相對應的處理程式,像是屬性 UserInput 記錄使用者輸入, Count 記錄輸入個數,因此至少要有如以下的程式碼
UserInput += "1";
Count += 1;
3. 承上題,設計另一個 GameResult() 方法,在按鈕的連動方法中,當使用者輸入的數量 Count 等於猜測數字的數量 Number 之時,就呼叫 GameResult() 進行處理。
3. 承上題,設計另一個 GameResult() 方法,在按鈕的連動方法中,當使用者輸入的數量 Count 等於猜測數字的數量 Number 之時,就呼叫 GameResult() 進行處理。
4. 承上題,想一想,怎麼樣在遊戲結束後讓按下阿拉伯數字按鈕沒有動作,像是可以利用 State 屬性,當 Statetrue 的時候才進行按鈕工作。
5. 承上題,想一想,還可以怎麼優化這個遊戲。