- Android應用程式設計:基礎篇 章節目錄
- Unit 0: 課程簡介
- 000-01- Android MOOCs 課程宣傳_3m41s
- 000-02- Android MOOCs 課程簡介_14m28s
- Unit 1: Android開發環境介紹
- 001-01-Android Developers網站介紹_13m16s
- 001-02-安裝Android Studio開發環境_10m11s
- 001-03-Android SDK與模擬器安裝_25m56s
- 001-04-Intel HAXM安裝_3m59s
- 001-05-開發人員選項設置_7m26s
- Unit 2: Android專案結構
- 002-01-Android Studio使用者介面介紹_6m40s
- 002-02-Android Studio專案結構_11m28s
- 002-03-學習心得與專案管理_13m41s
- Unit 3: Android程式開發邏輯
- 003-01-1-Android程式開發邏輯(1)_12m12s
- 003-01-2-Android程式開發邏輯(2)_8m52s
- 003-02-十分鐘物件導向程式設計_13m49s
- 003-03-變數與記憶體(Java)_20m28s
- 003-04-Android中的Java程式結構_19m11s
- 003-05-設置監聽器的三種方法_16m30s
003-06-線框圖、視覺稿、與雛形設計
- Unit 4: Android User Interface
- 004-01-Android UI的基礎知識_27m22s [註1]
- 004-02-1-Android Layout Editor_13m05s [註4]
- 004-02-2-Android ConstraintLayout (1)_17m32s[註5][註7]
- 004-02-3-Android ConstraintLayout (2)_23m12s
- 004-02-4-Android ConstraintLayout (3)_9m04s
- 004-02-5-Android xml檔案結構_18m24s
- 004-03-1-bookkeeping_layout (1)_載入資源_10m01s
- 004-03-2-bookkeeping_layout (2)_28m25s
004-04-Display Image inside TextView004-05-1-traditional layout methods004-05-2-LinearLayout004-05-3-RelativeLayout
- Unit 5: Version Control System (VCS)
- 005-01-Git and GitHub (1) _17m40s
- 005-02-Git and GitHub (2) _9m49s
- 005-03-Git and GitHub (3) _19m25s
- 005-04-Android Studio and Git (1) _16m12s
- 005-04-Android Studio and Git (2) _12m43s [註6]
- Unit 6: Android Resources Management
- Unit 7: App Fundamentals and Life-Cycle
- 007-01-App Fundamentals (1)_18m32s
- 007-02-App Fundamentals (2)_14m24s
- 007-03-Life-Cycle (1)_5m45s
- 007-04-Recap of Unit 3_10m45s
- 007-05-Life-Cycle (2)_16m12s
- 007-06-Life-Cycle (3)_12m21s
- 007-07-Life-Cycle (4)_21m25s
- 007-08-Life-Cycle (5)_2m50s
- 007-09-Activity to Activity (1)_8m29s
- 007-10-Activity to Activity (2)_22m26s
- 007-11-應用程式堆疊_16m27s
- 007-12-靜態變數與方法_13m12s
- 007-13-自動切換啟動畫面_15m58s
- 007-14-Handler, Looper, and HandlerThread_20m44s
- 007-15-Handler Example-Image Switcher_15m59s
- 007-15-1-移除佇列中未執行的訊息 _6m26s
- Unit 8: Using Templates
- 008-01-Introduction to Android Templates_2m08s
- 008-02-Basic Activity (1)_13m39s
- 008-03-Basic Activity (2)_16m46s
- 008-04-Tabbed Activity (1)_9m00s
- 008-05-Tabbed Activity (2)_2m24s
- 008-06-Tabbed Activity (3) _23m02s
- 008-07-Fragment Life Cycle_12m17s
- 008-08-Build Your Own Tabbed Activity (1) _12m36s
- 008-09-Build Your Own Tabbed Activity (2) _3m28s
- 008-10-Build Your Own Tabbed Activity (3) _4m47s
- Uint 9: Conditionals & Loops in Java
- 009-01-程式敘述 _2m19s
- 009-02-if條件敘述 _10m29s
- 009-03-switch條件敘述 _3m22s
- 009-04-while重複敘述 _6m03s
- 009-05-for重複敘述 _9m08s
- 009-06-程式練習 _6m29s
- Unit 10: 日期與時間的處理,對話視窗
- 010-01-單元介紹_3m33s
- 010-02-日期與時間的處理 (1) _11m18s [註8]
- 010-03-日期與時間的處理 (2) _8m17s
- 010-04-日期與時間的處理 (3) _5m04s
- 010-05-Date and TimePickerDialog _24m24s
- 010-06-DialogFragment _7m46s
- 010-07-輸入參數到DialogFragment _15m56s
- 010-08-由DialogFragment回傳參數給Activity_15m10s [註9]
- 010-09-程式碼封裝與註解_6m31s
- 010-10-A Little UX _17m31s
- Unit 11: Java Collections
- 011-01-Java Collections (1) _9m45s
- 011-02-Java Collections (2) _7m52s
- 011-03-Java Collections (3) _3m10s
- Unit 12: AdapterView & Adapter
- 012-0-專案結構變更:改用AndroidX _5m40s
- 012-01-AdapterView簡介_4m12s
- 012-02-Spinner _11m09s
- 012-03-Adapter功能介紹 _7m34s
- 012-04-動態變更列表內容 _27m52s
- Unit 13: 資料儲存
- 013-01-Android資料儲存空間 _4m16s
- 013-02-課程設計與單元簡介_3m49s
- 013-03-SQLite與與關聯式資料庫基礎 _12m51s
- 013-04-1-SQL語法(一) _10m05s
- 013-04-2-SQL語法(二) _6m24s
- 013-05-單元介紹:可再用程式碼 _3m27s
- 013-06-0-Database Navigator Plung的安裝 _2m08s
- 013-06-1-使用SQLiteOpenHelper建構資料庫應用 _30m00s
- 013-06-2-單例模式 (Singleton) _12m42s
- 013-07-1-認識Room _5m26s
- 013-07-2-Room Dependencies _2m58s
- 013-07-3-Room: Entity _15m22s
- 013-07-4-Room: DAO _18m27s
- 013-07-5-Room: Database _9m07s
- 013-07-6-Room: Testing _11m38s
- 013-08-1-偏好設定:預設值設計 _16m47s
- 013-08-2-偏好設定:程式調用介面 _4m20s
- 013-08-3-偏好設定:使用者介面設計 _8m16s
- 013-08-4-偏好設定:使用範例 _7m35s
- Unit 14: RecyclerView
- 014-01-RecyclerView (1) _26m47s
- 014-02-RecyclerView (2) _10m08s
- 014-03-RecyclerView: Click事件處理 _6m58s
- 014-04-RecyclerView: 拖曳與滑動事件處理 _13m51s
- 014-05-RecyclerView + Cursor Adapter _21m23s
- Unit 15: Permissions權限系統
- 015-01-Permissions (1) _4m19s
- 015-02-Permissions (2) _6m23s
- 015-03-Runtime Permission權限取得程序 _6m17s
- 015-04-Runtime Permission實作與測試 _7m
- Unit 16: 使用照相機
- 016-01-使用系統照相機(1) _3m19s
- 016-02-使用系統照相機(2) _5m13s
- Unit 17: 第三方函示庫的使用 _37m05s
[註1]
1. 影片中提到可以查詢手機尺寸與解析度的網址Material.io/tools/devices已經被移除了。
2. 關於004-01影片中所提到的Support Library,在Android Studio 3.2之改用AndroidX support library了,像是“com.android.support:appcompat-v7:$appcompat_version” 已經改成了”androidx.appcompat:appcompat:$appcompat_version”,在根據影片操作的時候請留意這些變化,自行調整。
[註2]
關於006-03影片22分鐘處所提到的Theme Editor,在Android Studio 3.3之後就被取消掉了,不再包含於Android Studio中,所以你們在學習的時候不會找到這項工具了。想要修改Theme或Styles的屬性值只能用xml程式碼修改。
[註3]
關於006-05影片16分鐘處所提到的Selector Editor,現在(Android Studio 4.1)已經沒有了。不確定是在哪一個版本之後被取消,現在只能靠程式編輯的方式來完成。不過,在效果檢視方面提供了即時檢視的效果,可以馬上觀察到所寫的程式碼是否正確。
[註4]
關於004-02影片中在UI介面設計左下角的design|text按鈕,在Android Studio 4.0以後移到了右上角的位置,成為code|Split|Design三個選項。
[註5]
關於004-02-2影片10分26秒中在UI的屬性視窗中的textAlignment按鈕,在Android Studio 4.0以後被取消,要調整文字位置需要使用gravity屬性來設定。
Android Studio 4.0版以後在Layout Editor做了很多的變動,原則上還是朝向著越來越方便的方向前進
[註6]
關於005-05影片1分鐘處所提到的輸入帳號密碼的程序已經被修改了,需要由File -> Settings… -> Version Control -> GitHub去產生token,事先跟Github要求授權。
[註7]
在使用Button的時候,發現他的背景顏色無法被更改,這是由於新版本Android Studio預設使用了Theme.MaterialComponent所帶來的限制。詳細的說明需要去參考https://material.io/components/buttons的內容。一般處理的方式有三種,可任選一種使用:
- 在xml裡面,將Button元件改成使用androidx.appcompat.widget.AppCompatButton
- 在xml裡面,將app:backgroundTint屬性改成”@null”。(i.e., app:backgroundTint=”@null”)
- 將Theme改成使用parent=”Theme.MaterialComponents.DayNight.NoActionBar.Bridge”
[註8]
目前Android可使用的Calandar類別有三個,課程中使用的java.util.Calandar現在幾乎被廢棄不用。API 24以後可以使用android.icu.util.Calendar。我們的範例可以被用在API 19之後,為了方便講解,先忽略掉版本差異所帶來的程式碼撰寫問題,所以使用java.util.Calandar。API 26之後還有一個新的類別java.time能夠使用。新的類別當然是改進了舊類別的缺點,但如果不是重大安全性問題,或是嚴重影響效能,用用舊類別也沒關係。
[註9]
目前的Android Studio 的 Fragment Template (Android Studio Dolphin | 2021.3.1 Patch 1),已經沒有自動幫忙建立callback function了,所以這個部分的操作需要你們自己看影片的內容學習自行建立interface跟callback function。