一、Java基礎(chǔ)
1 . 面向?qū)ο蟮娜筇匦裕?Java 作為面向?qū)ο缶幊陶Z言,你得知道OOP的的三大特性 封裝、繼承、多態(tài)。
2 . 程序設(shè)計的6大原則:
- 單一職責原則
- 里氏替換原則
- 依賴倒置原則
- 接口隔離原則
- 迪米特法則
- 開閉原則
3 . 設(shè)計模式
- 單例模式 :double check 雙重加鎖方式、靜態(tài)內(nèi)部類方式、枚舉方式。
- 構(gòu)造器模式
- 模板方法模式
- 裝飾器模式
- 觀察者模式
- 責任鏈模式
- 策略模式
4 . Java 字符串相關(guān) Java 字符串相關(guān)的三個類:String、StringBuilder、StringBuffer
5 . Java 線程池 線程池方面,JDK 為我們內(nèi)置了幾種線程池:
- newFixedThreadPool:newFixedThreadPool,創(chuàng)建固定大小的線程池,poolCoreSize和maxPoolSize 相等,到達coreSize,則將新的任務(wù)放到緩存隊列,有線程執(zhí)行完畢,直接去取。
- newSingleThreadExecutor:newSingleThreadExecutor,創(chuàng)建一個單線程的線程池,核心池的大小和最大池大小都為1.
- newCacheThreadPool:newCacheThreadPool,無大小限制的線程池,提交一個任務(wù)就創(chuàng)建一個線程執(zhí)行。
6 . Java 集合
Collection (1) List:
- LinkedList
- ArrayList
- Vector
(2) Set
- HashSet
- TreeSet
Map:
- HashMap
- TreeMap
- HashTable
7 . Java 內(nèi)存模型
Java 內(nèi)存模型這一塊非常重要,因為它涉及到我們程序的性能,我們需要知道,內(nèi)存是如何分配的,成員變量、靜態(tài)變量、局部變量、對象等各自分配到哪一個區(qū):
- 棧內(nèi)存
- 堆內(nèi)存
垃圾回收機制:
- 年輕代:1 Eden 區(qū) 和2個Survivor 區(qū)
- 年老代
- 永久代
Java 基礎(chǔ)總結(jié):關(guān)于Java基礎(chǔ)暫時就總結(jié)了這些,這些都是Android 開發(fā)中比較常用或者常常需要關(guān)心的一些東西。如果你想比較系統(tǒng)的學習Java基礎(chǔ)相關(guān)的東西,推薦你去看一下經(jīng)典書籍《Thinking in Java》。
二、Android 基礎(chǔ)
1 . Android 四大組件
- Activity
- Service
- BroadcastReceiver
- ContentProvider
Activity:
- Activity 的生命周期
- Activity 的幾種啟動方式:standardSingleTaskSingleTopSingleInstance
- Activity 間傳如何遞數(shù)據(jù)?
- Activity 橫豎屏切換生命周期有哪些變化?
- 顯示Intent 和隱式Intent 有和區(qū)別?
Service:
- Service 的生命周期
- Service 的兩種啟動方式:
- 1, startService 2, bindService
- 2種啟動方式 所走的生命周期方法是不一樣的
- Service vs IntentService: Service 和IntentService 個自用于不同的場景,各自的場景和區(qū)別嗎?
BroadcastReceiver:
ContentProvider ContentProvider 可能用得不是很多,可以用于共享數(shù)據(jù),提供數(shù)據(jù)源,掌握會寫增刪改查就好了。
Android 常用的幾種布局
- 幀布局 FrameLayout
- 線性布局 LinearLayout
- 相對布局 RelativeLayout
- Google 新出的約束布局ConstraintLayout
3 . Android Studio
Android Studio 是我們Android開發(fā)的常用工具,熟練操作和使用上面的快捷鍵和一些插件,對我們的開發(fā)效率有很大的幫助。
4 . Fragment
- Fragment 的生命周期
- Fragment 與fragment 之間的通訊方式
- Fragment 與Activity 之間的通訊方式
- Fragment + ViewPager 懶加載
- Fragment +TabLayout 選項卡
5 . 數(shù)據(jù)庫相關(guān) Android 自帶數(shù)據(jù)庫 Sqlite, 關(guān)于數(shù)據(jù)庫,我們應(yīng)該熟悉:
- 數(shù)據(jù)庫和表的創(chuàng)建
- 數(shù)據(jù)的增刪、改、查。
- 數(shù)據(jù)庫升級:
- 三方庫:GreenDao
6 . 常用控件基礎(chǔ)控件
- RecyclerView & ListView
- ViewPager
- TextView
- ImageView
- Button
- Checkbox
- RadioButton
三、Android 進階
1 . View
自定義View:
自定義view 的三種方式:
- 組合基礎(chǔ)控件
- 繼承基礎(chǔ)控件,做相應(yīng)的更改。
- 繼承View 或 ViewGroup
2.View事件分發(fā)機制
App 的幾種架構(gòu)
- MVC
- MVP
- MVVM
3 . Android 動畫
(1) Android 中的5種基礎(chǔ)動畫
- 平移動畫
- 縮放動畫
- 旋轉(zhuǎn)動畫
- Alpha 動畫
- 幀動畫
(2) 屬性動畫
- ObjectAnimator
- ValueAnimator
- AnimatorSet
(3)矢量動畫
- svg
- VectorDrawable
- AnimatedVectorDrawable
4 . Material Design 系列
- Toolbar 的使用
- AppbarLayout+CollapsingToolbarLayout
- Behavior 相關(guān):
- (1)BottomSheetBehavior (2)BottomSheetDialog (3)SwipeDismissBehavior (4)自定義Behavior
- TextInputLayout + TextInputEditText
- TabLayout
- BottomNavigationView
- CardView 陰影卡片
- Snackbar , FloatActionButton
5 . Android 多媒體
相機開發(fā):
1, 使用自帶的相機APP 拍照 2,系統(tǒng)相冊選擇照片 3,系統(tǒng)相機或相冊獲取的照片裁剪 4,使用相機API 開發(fā)相機: (1), Android 5.0 (API 21 )以下 使用Camera API (2) , Android 5.0 以上使用 Camera2 API 5 ,自定義相冊開發(fā) 6 , 自定義裁剪界面
Android視頻開發(fā):
(1)視頻播放 MediaPlayer VideoView
(2)視頻編解碼
音頻開發(fā):
AudioPlayer
音樂播放器
音視頻開發(fā)這一塊門檻較高,但是這也是比較吃香的一個領(lǐng)域,把這一塊吃透了,你的優(yōu)勢就很大了,現(xiàn)在的直播這么火,對于這一塊的需求還是比較大的。
6 . Git Git 版本控制 也是我們常用的,熟悉各種Git 命令。
7. Android 權(quán)限適配
Android 6.0 以上權(quán)限適配。
8 . Gradle
- 自定義Gradle插件
- Gradle 多渠道打包
四、學習了解開源庫
圖片加載框架:
- Universal-Imageloader
- Picasso
- Glide
- Frecssco
網(wǎng)絡(luò)相關(guān)框架:
- Retrofit
- Okhttp
- Volley
RxJava :
- RxJava
- RxAndroid
數(shù)據(jù)庫方面:
- GreenDao
- OrmLite
- Realm
五、文末
關(guān)于Java基礎(chǔ)、Android 基礎(chǔ)、Android 進階 ,只是作了知識點梳理,沒有解答,點到為止。要詳細學習這些知識點需自行學習資料。 本文所列出的知識點還不完全,要比較系統(tǒng)的學習,可以前往領(lǐng)取私信發(fā)送“核心筆記”或“手冊”即可領(lǐng)取《Android核心進階技術(shù)資料》學習。