C# 入門指南
單元 28 - 認識 Android App 開發
Visual Studio Community 2019 可以開發 iOS 及 Android 裝置的 App ,這就用到了 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.0 | Pie |
Android 8.1 | Oreo |
Android 8.0 | Oreo |
Android 7.1 | Nougat |
Android 7.0 | Nougat |
Android 6.0 | Marshmallow |
Android 5.1 | Lollipop |
Android 5.0 | Lollipop |
Android 4.4.87 | Kit Kat + Wear support |
Android 4.4 | Kit 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 篇囉!
相關教學影片
- 第八堂課導覽 ⇨ YouTube 頁面連結
- 利用 Visual Studio Community 2019 建立 Android 專案 ⇨ YouTube 頁面連結
- 第八堂課舉一反三 ⇨ YouTube 頁面連結
中英文術語對照 | |
---|---|
類別 | 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 ,就把 Display 的 Text 設定為「哈囉」, ClickMe 的 Content 設定為「點我」,否則將 Display 的 Text 設定為「你好」, ClickMe 的 Content 設定為「再點」 |
2. 承接上一個單元的 GuessGameDemo 專案,替每個按鈕的連動方法設定相對應的處理程式,像是屬性 UserInput 記錄使用者輸入, Count 記錄輸入個數,因此至少要有如以下的程式碼
|
3. 承上題,設計另一個 GameResult() 方法,在按鈕的連動方法中,當使用者輸入的數量 Count 等於猜測數字的數量 Number 之時,就呼叫 GameResult() 進行處理。 |
3. 承上題,設計另一個 GameResult() 方法,在按鈕的連動方法中,當使用者輸入的數量 Count 等於猜測數字的數量 Number 之時,就呼叫 GameResult() 進行處理。 |
4. 承上題,想一想,怎麼樣在遊戲結束後讓按下阿拉伯數字按鈕沒有動作,像是可以利用 State 屬性,當 State 為 true 的時候才進行按鈕工作。 |
5. 承上題,想一想,還可以怎麼優化這個遊戲。 |