--- title: Android 開發知識樹 (Java) tags: 書本, 共筆, 研究, APP 組 GA: UA-54884750-6 --- <!-- Tag 規範:https://hackmd.io/@cmrdb/tags --> # Android 開發知識樹 (Java) [TOC] # 入門 ## Roadmap (學習路線) - [Android Developer Roadmap](https://roadmap.sh/android) - [APP 組 Gitmind ](https://gitmind.com/app/doc/a1a607975) ## 建議課程 - ## 環境設定 (開發的第一步) - [Android Studio 官網下載](https://developer.android.com/studio) - [Android Studio 安裝教學](https://developer.android.com/studio/install) - [寫程式一定要會使用的工具](https://www.google.com.tw/?hl=zh_TW) - ## 初學 (如何使用 Android Studio) ### 本節目標 - 了解如何使用 Android Studio - 了解 Android 各資料夾意義與分類 - 了解遇到錯誤時如何除錯 ### 教學文章 - [安裝 Android Studio、虛擬機安裝、開發 Hello World APP](https://welsen.medium.com/2020-android-develop-%E8%B6%85%E6%96%B0%E6%89%8B%E6%96%87%E7%AB%A0%E7%B3%BB%E5%88%97-hello-android-a469e26ff08b) - [Android Studio 版面概述](https://vocus.cc/article/5ff091b3fd89780001655707) - [Android Studio 版面介紹](https://www.youtube.com/watch?v=Sfl8RfmkEeQ&list=PL9muXAsyRXOGzRFXKUeOVfEsrwS9i3Q08&index=9) - [Android Studio 詳細結構介紹 - Bilibili](https://www.bilibili.com/video/BV13y4y1E7pF?p=2&spm_id_from=pageDriver) - [Android Studio findViewById](https://vocus.cc/article/5ff0b4d9fd89780001659578) - [Android 常用控制元件介紹](https://www.itread01.com/content/1545501264.html) # 基礎 ## 109 教學簡報 (待完善) - [Android Studio 介紹](https://docs.google.com/presentation/d/1NzYZ7ZxSzrOumFKkl0Amtn_wTyVMQjx7/edit?usp=sharing&ouid=112790736309147367879&rtpof=true&sd=true) - [Button、TextView、ConstraintLayout](https://docs.google.com/presentation/d/1wrLohI5dsRCKEOb84jcL2-tWjfA-hp8i/edit?usp=sharing&ouid=112790736309147367879&rtpof=true&sd=true) - [LinearLayout、EditText](https://docs.google.com/presentation/d/1pjkrmNd79cvuPyQAe184EcomiTYmuZQy/edit?usp=sharing&ouid=112790736309147367879&rtpof=true&sd=true) - [RelativeLayout、RadioButton](https://docs.google.com/presentation/d/1VihYN_CA4FyfxbnRjMRy3nWg2p2BjeCO/edit?usp=sharing&ouid=112790736309147367879&rtpof=true&sd=true) - [CheckBox](https://docs.google.com/presentation/d/1xs-NRoNMek5xbggulwkL2G8jrFMLaKQO/edit?usp=sharing&ouid=112790736309147367879&rtpof=true&sd=true) - [ListView](https://docs.google.com/presentation/d/14SpnT3tKUIcn-VbZhCmVvtwDzGlvSrln/edit?usp=sharing&ouid=112790736309147367879&rtpof=true&sd=true) - [Intent、Toast](https://drive.google.com/file/d/1CrbED5QIbYfIGchVTnUkoHhm93uwVM8e/view?usp=sharing) - [Sensor、Acitvity LifeCycle](https://docs.google.com/presentation/d/16kLWcAz6sVw-hJo9QHNdSqqC2AwvRmk7/edit?usp=sharing&ouid=112790736309147367879&rtpof=true&sd=true) - [Spinner、AlertDialog](https://docs.google.com/presentation/d/1hcbHTtYkT3o0CFIqXryUB_8QDpd2FZyU/edit?usp=sharing&ouid=112790736309147367879&rtpof=true&sd=true) - [Fragment](https://drive.google.com/file/d/1vBaBD0tS3HDhBMji4dZFxR_MP1tLisOC/view?usp=sharing) - [RecyclerView](https://drive.google.com/file/d/1QBhXPNjsQEU7i3w4zaaX5M3RHZMSqPB4/view?usp=sharing) - [TabLayout、View Pager](https://drive.google.com/file/d/13gP-qLrc4PxAPbrisYB2cpZtog60GJvz/view?usp=sharing) - [API](https://drive.google.com/file/d/1SAXeX3D7QhGZWiaZVGJ_IysWbPbAi8ZK/view?usp=sharing) - [接 API](https://drive.google.com/file/d/1QqgM4pnFtF0rrOzBZoZ7JBQj3ZSRhK-g/view?usp=sharing) ## 0 ~ 100 的簡易 APP 實作 - ## 基礎元件的介紹及用法 ### Text - [Text 全系列介紹 Part 1](https://ithelp.ithome.com.tw/articles/10218619) - [Text 全系列介紹 Part 2](https://ithelp.ithome.com.tw/articles/10218620) - [Text 全系列介紹 Part 3](https://ithelp.ithome.com.tw/articles/10218642) - [Android TextView 最全的 XML 屬性](https://www.twblogs.net/a/5c4adfc5bd9eee6e7d81cb91) ### Buttons - [元件介紹 - Button](https://ithelp.ithome.com.tw/articles/10217496) ### ListView - [元件介紹 - ListView](https://ithelp.ithome.com.tw/articles/10219065) ### RecyclerView - [IT30](https://ithelp.ithome.com.tw/articles/10220196) ### Widgets - [元件介紹 - Spinner](https://ithelp.ithome.com.tw/articles/10220610) ## 常用技術 ### Toast - [元件介紹 - Toast](https://ithelp.ithome.com.tw/articles/10246269) ### Alert Dialog - [Alert 1](https://thumbb13555.pixnet.net/blog/post/310777160) - [Alert 2](https://xnfood.com.tw/android-alertdialog/) ### Log - [LOG 介紹](https://ithelp.ithome.com.tw/articles/10253142) ### Intent - [Intent 跳轉頁面](https://ithelp.ithome.com.tw/articles/10246886) ## UI ### Prototype - [為什麼你應該把原型設計(Prototyping)放進你的 UI/UX 設計流程中?](https://medium.com/as-a-product-designer/a7fc5902c630) ### Layouts - [Layout 元件介紹](https://ithelp.ithome.com.tw/articles/10189264) - [LinearLayout、RelativeLayout 介紹](https://ithelp.ithome.com.tw/articles/10241966) - [TableLayout、AbsoluteLayout、FrameLayout 介紹](https://ithelp.ithome.com.tw/articles/10242546) - [ConstraintLayout 介紹](https://ithelp.ithome.com.tw/articles/10243182) - ### Animation - [Lottie介紹](https://airbnb.design/introducing-lottie/) - [Lottie Docs](https://airbnb.io/lottie/#/) - [Lottie 初學者教學指南](https://www.appcoda.com.tw/lottie-beginner-guide/) ## 接 API - [什麼是 API?](https://www.youtube.com/watch?v=zvKadd9Cflc) - [Volley 與 API](https://blog.cmrdb.cs.pu.edu.tw/?p=981) - [使用 Retrofit 與 API 連線](https://ithelp.ithome.com.tw/articles/10188660) ## 資料庫基本操作 - [SQLite 資料庫建立、資料表建立與操作](https://thumbb13555.pixnet.net/blog/post/317439792-android_studio_sqlite_stetho) - [w3schools - SQL (SQL 語言學習)](https://www.w3schools.com/sql/default.asp) - [SQLBolt (SQL 語言學習)](https://www.w3schools.com/sql/default.asp) ## Coding Style - https://gitlab.cmrdb.cs.pu.edu.tw/android-coding-style/android-coding-style - https://source.android.com/setup/contribute/code-style?hl=zh-tw - [javadoc](https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html) # 進階 ## MVP、MVI、MVVM 架構概念 - [三種開發架構 MVC、MVP、MVVM](https://www.youtube.com/watch?v=nViX8m7gS7I) ## 依賴注入(Dependency Injection) - [依賴注入簡短介紹(英文)](https://www.youtube.com/watch?v=yunF2PgJlHU&ab_channel=PhilippLackner) ## Android Clean Code - [SOLID Priciples(英文)](https://www.youtube.com/watch?v=t8VTLxMsufU&t=23s&ab_channel=PhilippLackner) - [如何用Kotlin Sealed Class讓程式更易讀(英文)](https://www.youtube.com/watch?v=t8VTLxMsufU&t=23s&ab_channel=PhilippLackner) ## 官方文件 (關於 Android Studio 最詳細知識都在這) - [官方文件](https://developer.android.com/docs) - [recycler](https://developer.android.com/guide/topics/ui/layout/recyclerview) - [alert dialog 介紹](https://developer.android.com/guide/topics/ui/dialogs) - [toast 介紹](https://developer.android.com/guide/topics/ui/notifiers/toasts#:~:text=A%20toast%20provides%20simple%20feedback,automatically%20disappear%20after%20a%20timeout) ## 其他 - [美化編譯器](https://blog.csdn.net/yy1300326388/article/details/45825123)