第1章初識Android11.1Android發展史與現狀2
1.2Android系統架構與特性3
1.2.1Android系統架構3
1.2.2DalvikVM和JVM的區別5
1.2.3Android系統平臺的優勢6
1.3Android開發環境搭建7
1.3.1下載安裝Java并配置環境變量7
1.3.2下載安裝AndroidStudio和AndroidSDK10
1.4AndroidStudio的使用與工程目錄解析12
1.4.1建立新的Android應用12
1.4.2創建模擬器并使用模擬器運行應用14
1.4.3工程目錄分析17
1.4.4AndroidStudio常見問題19
1.5小結20
第2章界面組件Activity21
2.1從第一個工程開始22
2.1.1App是如何運行的22
2.1.2項目中的資源24
2.1.3理解Activity25
2.2Activity生命周期27
2.2.1Activity生命周期概述27
2.2.2Activity生命周期實例29
2.3Intent與Activity之間的跳轉33
2.3.1Intent簡介33
2.3.2使用Intent進行Activity跳轉34
2.4Activity啟動模式41
2.4.1standard模式41
2.4.2singleTop模式43
2.4.3singleTask模式44
2.4.4singleInstance模式45
2.5小結47
第3章用戶界面UI的開發48
3.1布局管理器概述49
3.2LinearLayout:線性布局管理器50
3.2.1LinearLayout實例及屬性詳解51
3.2.2使用代碼控制線性布局管理器52
3.3TableLayout:表格布局管理器54
3.3.1TableLayout實例與屬性詳解54
3.3.2使用代碼控制表格布局管理器56
3.4RelativeLayout:相對布局管理器57
3.4.1RelativeLayout實例及屬性詳解57
3.4.2使用代碼控制相對布局管理器59
3.5FrameLayout:幀布局管理器60
3.5.1FrameLayout布局實例60
3.5.2使用代碼控制幀布局管理器61
3.6AbsoluteLayout:絕對布局管理器62
3.7GridLayout:網格布局管理器63
3.7.1GridLayout實例及屬性詳解63
3.7.2使用代碼控制網格布局管理器65
3.8布局管理器之間互相嵌套67
3.9小結69
第4章基本控件與事件處理70
4.1常用基本控件的使用71
4.1.1基本控件的使用71
4.1.2Android中的尺寸問題79
4.2Android中的事件處理79
4.2.1點擊事件80
4.2.2長按事件83
4.2.3觸摸事件84
4.2.4按鍵事件85
4.2.5下拉列表的選中事件86
4.2.6單選按鈕的改變事件88
4.2.7焦點事件89
4.3ListView的使用90
4.3.1使用ArrayAdapter實現ListView90
4.3.2使用SimpleAdapter實現ListView92
4.3.3繼承BaseAdapter自定義Adapter來實現ListView94
4.3.4item的事件處理98
4.4小結100
第5章Fragment詳解101
5.1Fragment的創建與使用102
5.1.1靜態使用Fragment102
5.1.2動態使用Fragment105
5.1.3使用Fragment時常用的類和方法109
5.2Fragment生命周期110
5.3ListFragment的使用116
5.4用DialogFragment創建對話框118
5.4.1通過重寫onCreateView方法來實現對話框119
5.4.2通過重寫onCreateDialog方法來實現對話框121
5.5Fragment在開發中遇到的一些常見問題122
5.5.1旋轉屏幕問題122
5.5.2Fragment返回棧122
5.5.3Fragment與Activity之間的數據通信127
5.6小結130
第6章更多的控件與控件開發131
6.1ViewPager的使用132
6.1.1ViewPager的使用132
6.1.2ViewPager與Fragment135
6.1.3ViewPager與TabLayout137
6.2RecyclerView的使用140
6.2.1RecyclerView的實現140
6.2.2item分隔線及動畫效果145
6.2.3點擊事件的實現149
6.3自定義View控件151
6.3.1自繪控件151
6.3.2繼承控件156
6.3.3組合控件162
6.4小結165
第7章數據存儲166
7.1SharedPreferences167
7.2文件存儲173
7.2.1在應用私有文件夾中讀寫數據173
7.2.2向SDCard寫入數據176
7.3SQLite數據庫177
7.3.1SQLite簡介177
7.3.2SQLite操作的核心類SQLiteDatabase與SQLiteOpenHelper178
7.3.3SQLite操作實例184
7.4ContentProvider194
7.4.1ContentProvider常用類簡介195
7.4.2自定義ContentProvider197
7.5動態權限202
7.5.1動態權限簡介203
7.5.2讀取通話記錄204
7.6小結209
第8章Service詳解210
8.1Service綜述211
8.1.1Service的分類211
8.1.2為什么不使用線程212
8.1.3Service的創建與啟動212
8.1.4Service生命周期213
8.2Service的簡單實例214
8.2.1以start方式創建與啟動Service215
8.2.2以bind方式創建與綁定Service220
8.3Android消息處理機制227
8.3.1Handler機制核心類介紹227
8.3.2Handler機制使用實例231
8.3.3Handler機制與AsyncTask比較分析235
8.4前臺服務239
8.4.1Notification簡介與使用240
8.4.2前臺服務使用實例241
8.5IntentService245
8.6小結248
第9章Android廣播機制249
9.1廣播機制概述250
9.2使用系統廣播251
9.2.1動態注冊廣播實例251
9.2.2靜態注冊廣播實例256
9.3自定義廣播:普通廣播與有序廣播257
9.3.1普通廣播實例257
9.3.2有序廣播實例259
9.4使用本地廣播263
9.5小結265
第10章網絡開發266
10.1Android網絡通信概述267
10.1.1TCP/IP267
10.1.2HTTP與Socket267
10.2使用HTTP協議進行網絡通信268
10.2.1HttpURLConnection簡介269
10.2.2HttpURLConnection使用實例269
10.3客戶端類庫OkHttp277
10.3.1OkHttp簡介277
10.3.2OkHttp中各種請求的實現279
10.3.3OkHttp使用實例284
10.3.4JSON簡介289
10.4使用Socket進行網絡通信291
10.4.1Socket簡介291
10.4.2基于TCP的Socket292
10.5WebView297
10.5.1WebView的基本使用297
10.5.2使用HTML進行UI設計299
10.6小結303
第11章多媒體開發304
11.1撥號功能與短信功能305
11.1.1撥號的實現305
11.1.2短信發送310
11.1.3接收短信316
11.2再論Notification321
11.2.1普通Notification回顧與拓展321
11.2.2折疊式Notification325
11.2.3懸掛式Notification326
11.2.4Notification的其他應用326
11.3動畫330
11.3.1幀動畫330
11.3.2補間動畫332
11.3.3屬性動畫338
11.4相機與相冊340
11.4.1相機的使用340
11.4.2相冊的使用344
11.4.3圖片的裁剪346
11.5媒體播放器的開發351
11.5.1開發一個音頻播放器351
11.5.2開發一個視頻器359
11.6錄視頻與錄音頻366
11.6.1錄制音頻366
11.6.2錄制視頻371
11.7小結377
第12章傳感器與地理位置定位378
12.1傳感器379
12.1.1傳感器簡介379
12.1.2加速度傳感器381
12.1.3光線傳感器381
12.2地理位置定位385
12.2.1LocationManager的使用385
12.2.2使用高德地圖389
12.3小結398
第13章VR開發入門399
13.1詳解VR400
13.1.1VR是什么400
13.1.2VR的關鍵技術400
13.1.3VR發展歷程402
13.1.4VR在技術層面上的現狀402
13.1.5VR當前市場現狀403
13.1.6VR的市場前景403
13.1.7主流的硬件設備形態405
13.1.8誰會領銜VR內容制作406
13.2基于Unity3D的Android平臺VR應用開發406
13.2.1下載CardboardSDKforUnity408
13.2.2導入CardboardSDKForUnity.unitypackage408
13.2.3運行DemoScene409
13.2.4使用Unity3D創建一個自己的場景412
13.3小結414
第14章AndroidNDK開發入門415
14.1NDK簡介416
14.2使用AndroidStudio進行NDK開發416
14.2.1AndroidNDK開發環境搭建417
14.2.2第一個NDK應用420
14.3小結424
第15章完成并發布一個產品425
15.1功能需求分析426
15.2功能開發(上)427
15.2.1程序概覽427
15.2.2數據庫設計與開發427
15.2.3用戶登錄驗證431
15.2.4工具類437
15.3功能開發(下)441
15.3.1日記記錄441
15.3.2日記查詢456
15.3.3個人中心465
15.3.4AndroidManifest.xml及其他配置文件471
15.4將應用打包并發布到小米應用商店474
15.4.1應用打包474
15.4.2發布應用到小米應用商店476
15.5小結480