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