福利篇:快速入門Android編程

第一週【UI基礎】

第1天: Android環境搭建及工程目錄介紹

1.1 Android開發(版本:SDK21及以上版本)環境搭建

1.2 Android發展史、移動設備操作系統、四層系統架構等理論知識

1.2.1 Android發展史介紹

1.2.2 移動設備操作系統介紹

1.2.3 Android四層系統架構的介紹

1.3 HelloWorld程序

1.3.1 編寫HelloWorld程序

1.3.2 APP的目錄結構介紹

1.4 adb shell簡介(install uninstall)

第2天: 常用UI佈局與控件

2.1 View與ViewGroup

2.1.1 View 的概念

2.1.2 ViewGroup 的概念

2.1.3 View的樹形結構

2.2 LinearLayout【重點講解】

2.2.1 View常用屬性

android:id

android:background

android:onClick

android:padding

android:visibility

android:alpha

android:layout_height

android:layout_width

android:layout_margin

2.2.2 Android中長度單位的概念、區別及轉換公式(sp、dp、dip、px、dpi)

2.2.3 LinearLayout特有屬性

android:orientation

android:layout_weight

android:gravity

android:layout_gravity

android:weightSum(權重總和)

2.3 RelativeLayout

2.3.1 RelativeLayout內的子控件特有屬性(16個)

A、第一組:指兄弟控件之間的相對位置。該組屬性的值是另一個控件的id。

layout_toRightOf

layout_toLeftOf

layout_above

layout_below

B、第二組:指兄弟控件之間的對齊關係。該組屬性的值是另一個控件的id。

layout_alignRight

layout_alignLeft

layout_alignTop

layout_alignBottom

layout_alignBaseline

C、第三組:指控件與父佈局之間的對齊關係。該組屬性的值是true或者false。

layout_alignParentRight

layout_alignParentLeft

layout_alignParentTop

layout_alignParentBottom

layout_centerInParent

layout_centerVertical

layout_centerHorizontal

2.4 FrameLayout

2.5 GridLayout

2.5.1 GridLayout 特有屬性

android:layout_column

android:layout_row

android:layout_columnSpan

android:layout_rowSpan

android:layout_gravity

2.6 TextView

2.6.1 TextView屬性

android:text

android:textColor

android:textSize

android:singleLine

android:gravity

android:drawableLeft

android:drawableRight

android:drawableTop

android:drawableBottom

android:autoLink

第3天: 表單UI控件及控件的事件處理

3.1 EditText、Button、ImageView

3.1.1 EditText常用屬性介紹

android:inputType

android:hint

android:imeOptions

3.1.2 Button常用屬性介紹及監聽器使用

android:onClick

Button綁定監聽器方式

3.1.3 ImageView常用屬性介紹

andorid:src

android:adjustViewBounds

android:maxHeight

andorid:maxWidth

android:scaleType

3.2 RadioButton及RadioGroup的用法

3.2.1 RadioButton、RadioGroup的常用屬性

3.2.2 綁定RadioGroup特有監聽器

3.3 CheckBox的多選效果及監聽

3.3.1 CheckBox的常用屬性

3.3.2 綁定CheckBox特有監聽器

3.4 Toast的基本用法

第4天: Spinner、AutoCompleteTextView、ScrollView及適配器、數組資源

4.1 Spinner

4.1.1 Spinner的常用屬性

android:entries=""

4.1.2 Spinner的常用方法

4.2 適配器

4.2.1 適配器的介紹

4.2.2 ArrayAdapter的介紹及使用

4.3 數組資源

4.3.1 定義數組資源

4.3.2 獲取數組資源

4.4 AutoCompleteTextView

4.4.1 AutoCompleteTextView的常用屬性

4.4.2 AutoCompleteTextView的常用方法

4.5 ScrollView

4.5.1 垂直ScrollView的使用

4.5.2 HorizontalScrollView的使用

4.6 ProgressBar、SeekBar、RatingBar

4.6.1 ProgressBar的基本用法

4.6.2 SeekBar的基本用法及美化

4.6.3 RatingBar的基本用法及美化

第5天: UI美化及Android資源

5.1 Style的簡單用法

5.1.1 style的基本使用

5.1.2 style的繼承

5.1.3 利用selector及shape修改多選框的顯示效果

5.1.4 利用selector實現選中與否、改變默認RadioButton的顯示效果

5.2 Android資源彙總

5.2.1 id、字符串資源、顏色資源、尺寸資源、佈局資源、字符數組資源、樣式和主題資源

5.2.2 菜單資源、圖像資源、動畫資源

5.2.3 其他資源

原生xml資源

raw資源

特殊Drawable資源

動畫資源

自定義屬性資源

第2周:【應用核心組件初識】

第6天:Activity及頁面跳轉

6.1 Activity的聲明和使用

6.1.1 創建Activity

6.1.2 在清單文件中配置Activity

6.1.3 啓動Activity

6.2 Activity生命週期

6.2.1 Activity生命週期的作用

6.2.2 Activity生命週期方法

6.2.3 Activity生命週期方法執行順序

6.2.4 橫豎屏切換時Activity生命週期變化(Manifest.xml設置configChange)

6.3 Activity現場保護

6.4 Activity基本頁面跳轉及傳值

6.4.1 使用Intent實現頁面跳轉

6.4.2 使用Bundle實現傳遞對象

6.4.3 使用Application全局對象傳值

6.5 Activity具有返回值的頁面跳轉

6.5.1 啓動Activity回傳數據

第7天:Activity啓動模式及Intent

7.1 Task和Back Stack的基本概念

7.1.1 Task的介紹

7.1.2 Back Stack的介紹

7.1.3 Task和Back Stack的關係

7.1.4 退出APP時銷燬回退棧中所有Activity(context.finishAffinity())

7.2 Activity的啓動模式

7.2.1 啓動模式的簡介

7.2.2 啓動模式的應用

7.3 Intent屬性的特點及用法

7.3.1 Intent中的ComponentName屬性

7.3.2 Intent中Action屬性

7.3.3 Intent中Category屬性

7.3.4 Intent中Data屬性

7.3.5 Intent中Type屬性

7.3.6 Intent中Extra屬性

7.3.7 Intent中Flags屬性

第8天: AsyncTask異步任務

8.1 使用異步任務的原因

8.1.1 Android中線程使用規則

8.1.2 異步任務使用步驟

8.2 異步任務的應用

8.2.1 AsyncTask中範型參數說明

8.2.2 AsyncTask中方法的說明

8.2.3 異步任務與線程池

8.2.4 異步任務的取消

第9天: ListView基本用法及適配器介紹

9.1 AdapterView與Adapter簡介

9.1.1 AdapterView的範疇

9.1.2 Adapter的作用

9.2 ListView基本用法

9.2.1 ListView常用屬性

9.2.2 ListView常用方法

setEmptyView()

addHeaderView()

addFooterView()

9.2.3 ListView常用監聽方法

9.3 SimpleAdapter

9.3.1 ListView與ArrayAdapter的使用

9.3.2 ListView與SimpleAdapter的使用

9.3.3 SimpleAdapter與ViewBinder結合使用

9.4 BaseAdapter

9.4.1 BaseAdapter中的四個方法的說明

9.4.2 ListView的ConvertView複用

第10天:ListView優化及分頁、GridView

10.1 ListView優化

10.1.1 內存空間優化(ConvertView)

10.1.2 運行時間優化(ViewHolder)

10.1.3 ListView的item多佈局的複用

10.2 ListView滾動監聽實現分頁加載數據

10.2.1 ListView滾動事件OnScrollListener

10.2.2 ListView實現分頁效果

10.3 GridView加載圖片

10.3.1 GridView的常用屬性

10.3.2 GridView的基本用法

10.3.3 GridView的事件

擴展部分- ExpandableListView – 錄視頻

第3周:【Menu、Dialog、數據存儲】

第11天:菜單及對話框

11.1 OptionsMenu

11.1.1 OptionsMenu創建方式(菜單資源、Java程序)

11.1.2 菜單項點擊事件(onMenuItemSelected()、onOptionsItemSelected())

11.2 ContextMenu

11.2.1 ContextMenu創建方式

11.2.2 上下文菜單項點擊事件

11.2.3 上下文菜單綁定註冊

11.3 PopupMenu

11.3.1 PopupMenu的創建

11.4 PopupWindow

11.4.1 PopupWindow實現自定義菜單

11.4.2 PopupWindow常用方法(showAsLocation()、showAsDropDown())

11.5 AlertDialog

11.5.1 AlertDialog的創建及點擊事件

11.6 ProgressDialog

11.6.1 ProgressDialog的創建及樣式

11.7 列表對話框

11.7.1 列表對話框的創建

11.8 自定義Dialog

11.8.1 自定義Dialog的實現

第12天:數據存儲

12.1 SharedPreferences

12.1.1 SharedPreferences使用場景;

12.1.2 SharedPreferences的常用方法

12.2 內部存儲

12.2.1 內部存儲的概念

12.2.2 內部存儲的實現

12.3 外部存儲

12.3.1 外部存儲的概念

12.3.2 外部存儲的存儲目錄

12.3.3 外部存儲的實現

12.4 存儲Bitmap圖片到外部存儲

12.4.1 封裝外部存儲工具類

12.4.2 存儲圖片到外部存儲空間

12.4.3 對圖片存儲質量進行設置

第13天:SQLite數據庫與CursorAdapter適配器

13.1 回顧SQLite

13.1.1 SQLite數據庫的特點

13.1.2 SQL常用語法

13.2 SQLiteOpenHelper的用法

13.2.1 SQLiteOpenHelper類介紹

13.2.2 數據庫和表的創建

13.2.3 SQLiteDatabase數據庫的升級

13.2.4 SQLiteDatabase實現CRUD的少參方法(rawQuery、execSQL)

13.2.5 SQLiteDatabase實現CRUD的多參方法

13.3 CursorAdapter

13.3.1 CursorAdapter的用法

13.3.2 CursorAdapter結合ViewBinder

第14天:ContentProvider

14.1 ContentResolver實現系統數據庫的操作

14.1.1 ContentProvider與ContentResolver的概念及關係

14.1.2 利用ContentResolver實現系統數據的操作(聯繫人【查詢】、媒體庫文件、通話記錄、短信記錄);

14.2 自定義ContentProvider

14.2.1 自定義ContentProvider的實現步驟

第15天:Loader

15.1 CursorLoader的用法

15.1.1 CursorLoader的使用場景

15.1.2 CursorLoader的用法

15.2 AsyncTaskLoader加載本地數據

15.2.1 AsyncTaskLoader與CursorLoader對比

15.2.2 AsyncTaskLoader的用法

週末案例:對本週知識點綜合練習【帶離線閱讀的新聞系統】

第4周: 【移動開發主流界面實現】

第16天:動畫資源

16.1 幀動畫

16.1.1 幀動畫的具體實現

16.2 補間動畫

16.2.1 補間動畫的類型(透明度、縮放、旋轉、平移、AnimationSet)

16.2.2 補間動畫的動畫資源的常用屬性及實現方法

16.2.3 補間動畫的Java代碼實現方法

16.2.4 補間動畫的監聽方法

16.3 屬性動畫

16.3.1 屬性動畫介紹

16.3.2 屬性動畫與補間動畫的區別

16.3.3 屬性動畫資源文件的常用屬性

16.3.4 屬性動畫的具體實現方法

第17天:Fragment

17.1 Fragment基本用法

17.1.1 Fragment簡介

17.1.2 Fragment生命週期

17.1.3 靜態Fragment

17.1.4 動態Fragment

17.1.5 FragmentTransaction

17.1.6 Fragment的回退棧

17.2 Fragment傳值

17.2.1 Fragment與Activity之間的傳值

17.2.2 Fragment之間傳值

17.3 Fragment性能優化

17.3.1 Fragment優化的必要

17.3.2 Fragment優化相關方法

add、remove、show、hide、attach、detach

第18天:ViewPager

18.1 ViewPager與適配器

18.1.1 ViewPager的基本使用(ViewPager實現歡迎引導頁)

18.1.2 ViewPager的適配器

PagerAdapter

FragmentPagerAdapter

FragmentStatePagerAdapter

18.2 ViewPager加載網絡圖片

18.2.1 ViewPager加載網絡圖片實現廣告效果

18.3 PagerAdapter的優化

18.3.1 PagerAdapter優化的必要和實現

第19天:書籤導航

19.1 書籤導航多種實現效果展示

19.1.1 Fragment + FragmentTabHost

19.1.2 Fragment + RadioGroup

19.1.3 Fragment + ActionBar

19.1.4 Fragment + ViewPager + ActionBar

19.1.5 Fragment + ViewPager + PagerTabStrip

19.1.6 Fragment + ViewPager + TabLayout(5.0新技術)

19.1.7 ViewPageIndicator(第三方技術)

19.2 RadioGroup + ViewPager + Fragment實現導航

19.3 HorizontalScrollView + ViewPager + Fragment實現導航

第20天:Handler、Looper消息傳遞機制

20.1 Handler、Looper消息傳遞機制的原理

20.1.1 Handler簡介

20.1.2 Handler具體用法

20.1.3 Handler、Looper消息傳遞機制的原理分析

20.2 Handler、Looper源碼

20.2.1 Handler、Looper源碼分析

週末綜合練習【涵蓋前四周所有知識點】

週末作業包括:安裝Android Studio。

第5周:【應用核心組件進階】

【注】必須使用Android Studio開發環境教學

第21天:ActionBar (Action View、SearchView)+ ToolBar

21.1 ActionBar

21.1.1 ActionBar介紹(支持V7的ActionBar:android.support.v7.app.ActionBar)

21.1.2 AppCompatActivity、ActionBarActivity介紹

21.1.3 ActionBar的用法

21.1.4 Action View的介紹

21.1.5 SearchView的用法

21.2 ToolBar

21.2.1 ToolBar介紹

21.2.2 ToolBar的用法

第22天:BroadcastReceiver及Notification

22.1 Notification (普通通知、大視圖通知、進度條通知、自定義通知)

22.1.1 Notification的作用

22.1.2 普通通知的用法

22.1.3 PendingIntent的用法

22.1.4 Notification的Flag屬性

22.1.5 大視圖通知

22.1.6 進度條通知

22.1.7 自定義通知

22.2 廣播接收器

22.2.1 廣播接收器的概念、作用及註冊

22.2.2 廣播的分類(粘性廣播、非粘性廣播、設置廣播外部APP是否可接收、有序廣播、無序廣播)

22.2.3 本地廣播 LocalBroadcastReceiver

22.2.4 廣播接收器實現系統開機監聽

22.2.5 廣播接收器實現來短信監聽

22.2.6 廣播接收器實現來電和播出電話監聽

22.2.7 廣播接收器實現耳機插入及拔出監聽

22.2.8 廣播接收器實現網絡狀態改變監聽

22.2.9 廣播接收器實現電量改變監聽

22.3 自定義發送廣播

22.3.1 自定義發送廣播的做法

22.3.2 動態註冊廣播

第23天: Service基礎

23.1 Service介紹

23.1.1 Service的概念及使用場景

23.1.2 Service的分類

23.1.3 Service生命週期

23.1.4 Service註冊

23.2 Start Service

23.2.1 Start Service實現音樂播放器

23.2.2 粘性服務與非粘性服務

23.3 IntentService

23.3.1 IntentService介紹

23.3.2 IntentService實現網絡視頻文件下載

23.3.3 DownloadManager實現網絡視頻文件下載(系統下載)

23.4 Bind Service

23.4.1 Bind Service實現音樂播放器

23.5 兩種服務混合使用實現MediaPlayer音樂播放

第24天: 跨進程的Service

24.1 AIDL

24.1.1 AIDL的概念

24.1.2 AIDL的用法(Parcelable)AS上面的案例

24.2 Messenger

24.2.1 Messenger的概念

24.2.2 Messenger的用法

第25天:LruCache與Bitmap二次採樣

25.1 LruCache

25.1.1 LruCache的概念

25.1.2 LruCache的用法

25.2 二次採樣

25.2.1 二次採樣的意義

25.2.2 封裝二次採樣生成縮略圖工具類

週末綜合作業 音樂播放器

第6周:【View深入探究】

第26天: 百度地圖

26.1 百度地圖基本用法

26.1.1 百度地圖API概述

26.1.2 百度地圖密鑰申請

26.1.3 百度地圖配置

26.1.4 顯示基本地圖(交通地圖、衛星地圖、熱力地圖)

26.1.5 百度地圖定位

26.1.6 百度地圖覆蓋物基本用法

26.1.7 混淆的意義及地圖的混淆配置

26.2 百度地圖搜索

26.2.1 POI檢索

26.2.2 出行線路規劃(公交、步行、自駕)

26.2.3 公交路線查詢

第27天: 自定義View(一)

27.1 自定義View介紹

27.1.1 爲什麼自定義View

27.1.2 View和ViewGroup的職責回顧

27.1.3 自定義View的常規做法

27.1.4 自定義View的構造方法規則

27.2 NotePad 繼承已有控件方式的自定義View

27.2.1 繪製 onDraw的說明

27.2.2 onDraw方法的注意事項 不要創建對象

27.2.3 Canvas, Paint, drawLine 簡介

27.2.4 自定義屬性

第28天:自定義View(二)

28.1 繼承於ViewGroup的自定義View

28.1.1 重寫View中的onLayout()方法

28.1.2 實現自定義流式佈局FlowLayout

28.2 自繪製的自定義View

28.2.1 重寫View中的onDraw()方法

28.2.2 畫布畫筆(Canvas、Paint)

28.2.3 重寫View中的onMeasure()方法

第29天:滑動視圖

29.1 PullToRefresh框架

29.1.1 配置

29.1.2 事件回調

29.1.3 多種控件

29.1.4 PullToRefreshBase重寫

29.2 SlidingPaneLayout

29.2.1 左側或右側滑動

29.3 DrawerLayout 使用

第30天: 機型適配及Git

30.1 機型適配介紹

30.1.1 Android中機型適配出現的原因(系統碎片和屏幕碎片)

30.1.2 機型適配的思路

30.2 屏幕相關重要概念回顧

30.2.1 屏幕尺寸

30.2.2 屏幕分辨率

30.2.3 屏幕像素密度及密度比值

30.2.4 dp、dpi、sp、px

30.2.5 mdpi、hdpi、xhdpi、xxhdpi

30.3 機型適配的解決方案

30.3.1 屏幕適配

相對佈局、尺寸限定符、最小寬度限定符、屏幕方向限定符、自動拉伸位圖

30.3.2 版本適配

30.3.3 語言自適應

30.4 Git的使用

30.4.1 Git介紹

30.4.2 使用Git的必要性

30.4.3 Git的使用

二、Android項目實戰階段:

1. 32.1 MVC與MVP設計模式

2. 開發流程

3. glide圖片加載

4. JSON

5. AsyncTask

6. HTTP( okHttp+Handler)

7. SQLite

8. ListView 多佈局

9. Service

10. MediaPlayer

11. Notification

12. ViewPager

13. Fragment

14. TabLayout

14.1 與ViewPager配合

14.2 自定義Tab

15. BroadcastReceiver 耳機拔出

16. SharedPreferences

17. 打包,混淆、多渠道打包

第8周:【Android新技術】

第36天:視頻播放器

36.1 視頻播放器VideoView

36.2 SurfaceView及MediaPlayer

36.2.1 SurfaceView介紹與View區別

36.2.2 SurfaceHolder與CallBack

36.2.3 MediaPlayer.setDisplay

36.2.4 MediaPlayer加載網絡視頻

36.3 播放器全屏顯示與恢復

36.3.1 VideoView 全屏顯示 onMeasure重寫

36.3.2 Activity 點擊切換橫屏方法

36.4 ListView的item實現視頻播放

36.4.1 Item顯示視頻

36.4.2 單Item播放

36.4.3 Item滾出時停止播放

第37天:RecyclerView

37.1 5.0新技術介紹(Material Design)

37.1.1 設計理念

37.1.2 新增控件

37.2 CardView 用法

37.2.1 CardView: cardElevation, cardMaxElevation, cardCornerRadius

37.3 RecyclerView的用法

37.3.1 RecyclerView:LayoutManager, Adapter, Adapter.ViewHolder

37.4 RecyclerView與ListView比較

37.4.1 setOnItemClickListener

37.4.2 ViewHolder, Adapter

37.5 SwipeRefreshLayout

37.5.1 配置

37.5.2 事件回調

37.5.3 與RecyclerView的配合

擴展部分:第三方 UltimateRecycerView

第38天:Material Design全新設計風格

38.1 TextInputLayout

38.1.1 錯誤監聽

38.2 CoordinatorLayout

38.2.1 Toolbar與CoordinatorLayout

38.2.2 Behavior

38.2.3 AppBarLayout

38.2.4 NestedScrollView

38.2.5 CollapsingToolbarLayout

38.3 Snackbar

38.3.1 監聽Action

38.4 FloatingActionButton

38.4.1 屬性介紹

38.4.2 onClick事件處理

第39天:拍照、傳感器、ZXing二維碼

39.1 利用Intent實現攝像頭拍照

39.1.1 Intent拍照返回Bitmap方式

39.1.2 Intent拍照保存文件方式

39.2 加速度傳感器實現《搖一搖》

39.2.1 傳感器獲取:傳感器類型、默認傳感器、傳感器列表

39.2.2 傳感器監聽註冊

39.2.3 加速度傳感 搖一搖

39.3 ZXing實現生成二維碼(容錯等級、二維碼正中心Logo)

39.3.1 二維碼生成,生成BitMatrix轉Bitmap

39.3.2 配置生成時的容錯等級

39.3.3 形成帶有中心Logo的二維碼

39.4 ZXing實現二維碼掃描

39.4.1 導包

39.4.2 附加代碼包含掃描Activity

39.4.3 ZXing Activity ACTION 與 掃描操作;

第三方框架 zxing-android-embedded

第40天:JPush推送、第三方登錄、友盟統計分析

40.1 JPush極光推送的原理及用法

40.1.1 [官方文檔](http://jpush.cn)

40.1.2 通知推送

40.1.3 消息推送

40.1.4 推送原理

40.2 第三方登錄

40.2.1 第三方登錄說明

40.2.2 友盟API的使用

40.3 友盟統計分析

40.3.1 應用的創建與申請

40.3.2 統計API的說明,啓動統計與頁面統計

【第8周綜合案例】

第9周:【流行技術雜項】

第41天:加密解密

41.1 對稱加密(AES 、DES、3DES)

41.2 非對稱加密(RSA)

41.3 消息摘要(MD5、 SHA-1 )

41.4 編碼解碼(Base64、URLEncode、URLDecode)

第42天:網絡支付

42.1購物車

42.2 [Alipay支付](https://b.alipay.com/newIndex.htm)

42.3 [微信支付](http://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=11_1)

第43天: 事件分發原理

43.1 事件分發消費機制原理

43.1.1 事件分發消費機制的原理分析

43.1.2 事件分發三大方法

43.2 事件分發消費機制的應用場景

43.2.1 如何解決ScrollView、ListView的嵌套

43.2.2 解決ListView中item的Button事件衝突

43.2.3 DrawerLayout及其中的事件衝突問題的解決

第44天: 高性能ORM框架與WebApp

44.1 ORM框架

44.1.1 Dagger2/ormlite

44.1.2 Dagger2與Retrofit組合應用— 選講

擴展 greenDao —錄視

44.2 Android WebView 應用

44.2.1 網頁的加載

44.2.2 WebClient 網址攔截

44.2.3 WebChrome 網址進度、標題接收 簡介

44.2.4 網址導航 前進、後退、歷史管理

44.2.5 Web頁面與本地代碼的通信

44.2.6 JS 與 Java 間的交互

44.2.7 WebApp 混淆的配置

第45天 項目管理工具

45.1 SVN、抓包工具

45.2 項目前分組與選型

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章