《Android 6 套用開發案例精解(第三版)》是2017年5月電子工業出版社出版的圖書,作者是張君施。
基本介紹
- 書名:Android 6 套用開發案例精解(第三版)
- 作者:張君施
- ISBN:9787121314292
- 頁數:372頁
- 定價:69元
- 出版社:電子工業出版社
- 出版時間:2017年5月
- 開本:16開
內容簡介,圖書目錄,
內容簡介
本書是美國知名編程教材的作者針對Android系統下進行套用開發而編寫的一本入門級教程,全書以""套用驅動的方法”為基礎,詳細講解了17個完整的Android套用的開發過程,並提供了8個APP套用的完整的原始碼。這些套用經過精心挑選,從不同側面展現了Android系統各個功能模組的編程方法。這些功能包括音頻、視頻、動畫、電話、藍牙、語音識別、加速度計、GPS、指北針、套用窗件、3D圖形等, 它們都是從事Android套用開發所必須熟知的基本技術。
圖書目錄
第1章 Android簡介 1
1.1 簡介 2
1.2 Android——世界領先的移動作業系統 2
1.3 Android的特點 3
1.4 Android作業系統 5
1.4.1 Android 2.2 (Froyo) 5
1.4.2 Android 2.3 (Gingerbread) 6
1.4.3 Android 3.0~3.2 (Honeycomb) 6
1.4.4 Android 4.0~4.0.4 (Ice Cream Sandwich) 6
1.4.5 Android 4.1~4.3 (Jelly Bean) 7
1.4.6 Android 4.4 (KitKat) 8
1.4.7 Android 5.0和5.1 (Lollipop) 8
1.4.8 Android 6 (Marshmallow) 9
1.5 從Google Play下載套用 9
1.6 包 10
1.7 Android軟體開發工具集(SDK) 11
1.8 面向對象編程:簡短回顧 13
1.8.1 汽車作為對象 13
1.8.2 方法與類 13
1.8.3 實例化 14
1.8.4 復用 14
1.8.5 訊息與方法調用 14
1.8.6 屬性與實例變數 14
1.8.7 封裝 14
1.8.8 繼承 14
1.8.9 面向對象的分析與設計(OOAD) 14
1.9 在AVD中測試Tip Calculator套用 15
1.9.1 在Android Studio中打開Tip Calculator套用的工程 15
1.9.2 創建Android虛擬設備(AVD) 16
1.9.3 在Nexus 6 AVD中運行Tip Calculator套用 18
1.9.4 在Android設備上運行Tip Calculator套用 20
1.10 創建好的Android套用 21
1.11 Android開發資源 22
1.12 小結 23
第2章 Welcome套用 24
2.1 簡介 25
2.2 技術概覽 26
2.2.1 Android Studio 26
2.2.2 LinearLayout,TextView和ImageView 26
2.2.3 可擴展標記語言(XML) 26
2.2.4 套用的資源 26
2.2.5 輔助性 26
2.2.6 國際化 27
2.3 創建套用 27
2.3.1 啟動Android Studio 27
2.3.2 創建新工程 27
2.3.3 Create New Project對話框 28
2.3.4 Target Android Devices步驟 28
2.3.5 Add an Activity to Mobile步驟 29
2.3.6 Customize the Activity步驟 30
2.4 Android Studio視窗 31
2.4.1 Project視窗 31
2.4.2 編輯器視窗 32
2.4.3 Component Tree視窗 33
2.4.4 套用的資源檔案 33
2.4.5 布局編輯器 33
2.4.6 默認GUI 33
2.4.7 默認GUI的XML 34
2.5 用布局編輯器構建套用的GUI 35
2.5.1 向工程添加圖像 35
2.5.2 添加套用圖示 36
2.5.3 將RelativeLayout 改成LinearLayout 37
2.5.4 改變LinearLayout的id和orientation屬性 38
2.5.5 配置TextView的id和text屬性 39
2.5.6 配置TextView的textSize屬性 40
2.5.7 設定TextView的textColor屬性 41
2.5.8 設定TextView的gravity屬性 41
2.5.9 設定TextView的layout:gravity屬性 41
2.5.10 設定TextView的layout:weight屬性 43
2.5.11 添加ImageView,顯示圖像 43
2.5.12 預覽設計的效果 46
2.6 運行Welcome套用 46
2.7 為套用增加輔助功能 48
2.8 使套用國際化 49
2.8.1 本地化 49
2.8.2 為本地化資源命名資料夾 49
2.8.3 將字元串譯文添加到工程中 49
2.8.4 本地化字元串 50
2.8.5 在AVD中測試西班牙語的套用 50
2.8.6 在設備中測試西班牙語的套用 51
2.8.7 TalkBack與本地化 51
2.8.8 本地化清單 52
2.8.9 專業翻譯 52
2.9 小結 52
第3章 Tip Calculator套用 53
3.1 簡介 54
3.2 測試驅動的Tip Calculator套用 55
3.3 技術概覽 56
3.3.1 Activity類 56
3.3.2 Activity類的生命周期方法 56
3.3.3 AppCompat庫與AppCompatActivity類 57
3.3.4 安排GridLayout中的視圖 57
3.3.5 利用布局編輯器、Component Tree和Properties視窗創建並定製GUI 58
3.3.6 格式化數字,表示本地貨幣和百分比字元串 58
3.3.7 實現TextWatcher接口,處理EditText中的文本變化 58
3.3.8 實現OnSeekBarChangeListener接口,處理SeekBar中的滑塊位置變化 58
3.3.9 材料主題 58
3.3.10 材料設計:高度和陰影 59
3.3.11 材料設計:顏色 59
3.3.12 AndroidManifest.xml 60
3.3.13 在Properties視窗中搜尋 60
3.4 構建GUI 60
3.4.1 GridLayout簡介 60
3.4.2 創建TipCalculator工程 61
3.4.3 改成GridLayout布局 61
3.4.4 添加TextView,EditText和SeekBar 62
3.4.5 定製視圖 64
3.5 默認主題及定製主題顏色 66
3.5.1 parent主題 66
3.5.2 定製主題顏色 67
3.5.3 樣式的常用View屬性值 70
3.6 添加套用的邏輯功能 70
3.6.1 package聲明和import聲明 70
3.6.2 AppCompatActivity的MainActivity子類 71
3.6.3 類變數與實例變數 71
3.6.4 重寫Activity方法onCreate 72
3.6.5 MainActivity方法calculate 74
3.6.6 實現OnSeekBarChangeListener接口的匿名內部類 74
3.6.7 實現TextWatcher接口的匿名內部類 75
3.7 AndroidManifest.xml 76
3.7.1 manifest元素 77
3.7.2 application元素 77
3.7.3 activity元素 77
3.7.4 intent-filter元素 78
3.8 小結 79
第4章 Flag Quiz套用 80
4.1 簡介 81
4.2 測試驅動的Flag Quiz套用 83
4.2.1 配置套用的設定 83
4.2.2 運行套用 84
4.3 技術概覽 86
4.3.1 選單 86
4.3.2 Fragment 86
4.3.3 Fragment生命周期方法 87
4.3.4 管理Fragment 88
4.3.5 首選項 88
4.3.6 assets資料夾 88
4.3.7 資源資料夾 89
4.3.8 支持不同螢幕尺寸和解析度 89
4.3.9 確定設備方向 90
4.3.10 用於顯示訊息的Toast 90
4.3.11 使用Handler在未來執行一個Runnable對象 90
4.3.12 將動畫用於View 90
4.3.13 使用ViewAnimationUtils創建環形縮放動畫 90
4.3.14 通過顏色狀態表根據視圖狀態確定顏色 90
4.3.15 AlertDialog 91
4.3.16 為異常訊息做日誌 91
4.3.17 通過顯示Intent啟動另一個活動 91
4.3.18 Java數據結構 92
4.3.19 Java SE 7特性 92
4.3.20 AndroidManifest.xml 93
4.4 創建工程、資源檔案和另外的類 93
4.4.1 創建工程 93
4.4.2 Blank Activity模板布局 94
4.4.3 配置對Java SE 7的支持 94
4.4.4 向工程添加國旗圖像 95
4.4.5 strings.xml與格式化字元串資源 95
4.4.6 arrays.xml 96
4.4.7 colors.xml 97
4.4.8 button_text_color.xml 98
4.4.9 編輯menu_main.xml 98
4.4.10 創建國旗飄揚動畫 99
4.4.11 指定套用設定的preferences.xml 100
4.4.12 添加SettingsActivity類和SettingsActivityFragment類 101
4.5 構建套用的GUI 102
4.5.1 用於縱向模式設備的activity_main.xml布局 102
4.5.2 設計fragment_main.xml布局 102
4.5.3 Graphical Layout編輯器工具列 106
4.5.4 用於橫向設備的content_main.xml布局 107
4.6 MainActivity類 108
4.6.1 package聲明和import聲明 109
4.6.2 欄位 109
4.6.3 重寫的Activity方法onCreate 109
4.6.4 重寫的Activity方法onStart 111
4.6.5 重寫的Activity方法onCreateOptionsMenu 112
4.6.6 重寫的Activity方法onOptionsItemSelected 112
4.6.7 實現OnSharedPreferenceChangeListener的匿名內部類 113
4.7 MainActivityFragment類 114
4.7.1 package聲明和import聲明 114
4.7.2 欄位 114
4.7.3 重寫的Fragment方法onCreateView 116
4.7.4 updateGuessRows方法 118
4.7.5 updateRegions方法 118
4.7.6 resetQuiz方法 119
4.7.7 loadNextFlag方法 120
4.7.8 getCountryName方法 122
4.7.9 animate方法 122
4.7.10 實現OnClickListener的匿名內部類 123
4.7.11 disableButtons方法 126
4.8 SettingsActivity類 126
4.9 SettingsActivityFragment類 127
4.10 AndroidManifest.xml 127
4.11 小結 129
第5章 Doodlz套用 130
5.1 簡介 131
5.2 在AVD中測試Doodlz套用 132
5.3 技術概覽 135
5.3.1 Activity和Fragment的生命周期方法 135
5.3.2 定製視圖 136
5.3.3 使用SensorManager監聽加速計事件 136
5.3.4 定製的DialogFragment 136
5.3.5 使用Canvas,Paint和Bitmap畫圖 137
5.3.6 處理多點觸事件並在Path中保存線信息 137
5.3.7 保存圖形 138
5.3.8 列印功能及Android支持庫的PrintHelper類 138
5.3.9 Android 6.0的新許可模型 138
5.3.10 利用Gradle構建系統添加依賴性 138
5.4 創建工程和資源 138
5.4.1 創建工程 139
5.4.2 Gradle:向工程添加支持庫 139
5.4.3 strings.xml 139
5.4.4 為選單項導入材料設計圖示 140
5.4.5 MainActivityFragment選單 140
5.4.6 在AndroidManifest.xml中添加許可 142
5.5 構建套用的GUI 142
5.5.1 MainActivity的content_main.xml布局 142
5.5.2 MainActivityFragment的fragment_main.xml布局 143
5.5.3 ColorDialogFragment的fragment_color.xml布局 143
5.5.4 LineWidthDialogFragment的fragment_line_width.xml布局 145
5.5.5 添加EraseImageDialogFragment類 146
5.6 MainActivity類 146
5.7 MainActivityFragment類 147
5.7.1 package聲明、import聲明與欄位 147
5.7.2 重寫的Fragment方法onCreateView 148
5.7.3 onResume方法和enableAccelerometerListening方法 149
5.7.4 onPause方法和disableAccelerometerListening方法 150
5.7.5 用於處理加速計事件的匿名內部類 150
5.7.6 confirmErase方法 151
5.7.7 重寫的Fragment方法onCreateOptionsMenu和onOptionsItemSelected 152
5.7.8 saveImage方法 153
5.7.9 重寫的onRequestPermissionsResult方法 154
5.7.10 getDoodleView方法和setDialogOnScreen方法 155
5.8 DoodleView類 155
5.8.1 package聲明和import聲明 155
5.8.2 靜態變數和實例變數 156
5.8.3 構造方法 156
5.8.4 重寫的View方法onSizeChanged 156
5.8.5 clear, setDrawingColor,getDrawingColor,setLineWidth和getLineWidth方法 157
5.8.6 重寫的View方法onDraw 158
5.8.7 重寫的View方法onTouchEvent 158
5.8.8 touchStarted方法 159
5.8.9 touchMoved方法 160
5.8.10 touchEnded方法 161
5.8.11 saveImage方法 161
5.8.12 printImage方法 162
5.9 ColorDialogFragment類 163
5.9.1 重寫的DialogFragment方法onCreateDialog 163
5.9.2 getDoodleFragment方法 165
5.9.3 重寫的Fragment生命周期方法onAttach和onDetach 165
5.9.4 回響alpha, red, green和blue SeekBar事件的匿名內部類 165
5.10 LineWidthDialogFragment類 166
5.10.1 onCreateDialog方法 168
5.10.2 回響widthSeekBar事件的匿名內部類 168
5.11 EraseImageDialogFragment類 169
5.12 小結 170
第6章 Cannon Game套用 171
6.1 簡介 172
6.2 測試驅動的Cannon Game套用 173
6.3 技術概覽 173
6.3.1 使用res/raw資源資料夾 173
6.3.2 Activity和Fragment的生命周期方法 173
6.3.3 重寫View方法onTouchEvent 174
6.3.4 用SoundPool和AudioManager添加聲音 174
6.3.5 用Thread,SurfaceView和SurfaceHolder實現逐幀動畫 174
6.3.6 簡單的衝突檢測 175
6.3.7 沉浸模式 175
6.4 構建套用的GUI和資源檔案 175
6.4.1 創建工程 175
6.4.2 調整主題,刪除套用標題和套用欄 175
6.4.3 strings.xml 176
6.4.4 顏色 176
6.4.5 為套用添加聲音 176
6.4.6 添加MainActivityFragment類 176
6.4.7 編輯activity_main.xml 177
6.4.8 將CannonView添加到fragment_main.xml 177
6.5 套用中各個類的概述 178
6.6 Activity的MainActivity子類 178
6.7 Fragment的MainActivityFragment子類 179
6.8 GameElement類 180
6.8.1 實例變數與構造方法 181
6.8.2 update, draw和playSound方法 181
6.9 GameElement的Blocker子類 181
6.10 GameElement的Target子類 182
6.11 Cannon類 183
6.11.1 實例變數與構造方法 183
6.11.2 align方法 183
6.11.3 fireCannonball方法 184
6.11.4 draw方法 184
6.11.5 getCannonball和removeCannonball方法 185
6.12 GameElement的Cannonball子類 185
6.12.1 實例變數與構造方法 185
6.12.2 getRadius,collidesWith,isOnScreen和reverseVelocityX方法 186
6.12.3 update方法 187
6.12.4 draw方法 187
6.13 SurfaceView的CannonView子類 187
6.13.1 package聲明和import聲明 187
6.13.2 常量與實例變數 188
6.13.3 構造方法 189
6.13.4 重寫View方法onSizeChanged 191
6.13.5 getScreenWidth,getScreenHeight和playSound方法 191
6.13.6 newGame方法 192
6.13.7 updatePositions方法 194
6.13.8 alignAndFireCannonball方法 195
6.13.9 showGameOverDialog方法 195
6.13.10 drawGameElements方法 196
6.13.11 testForCollisions方法 197
6.13.12 stopGame和releaseResources方法 197
6.13.13 實現SurfaceHolder.Callback方法 199
6.13.14 重寫View方法onTouchEvent 199
6.13.15 CannonThread:使用Thread實現遊戲的循環 200
6.13.16 hideSystemBars和showSystemBars方法 201
6.14 小結 202
第7章 WeatherViewer套用 203
7.1 簡介 204
7.2 測試驅動的WeatherViewer套用 204
7.3 技術概覽 205
7.3.1 Web服務 205
7.3.2 JSON與org.json包 206
7.3.3 調用REST Web服務的HttpUrlConnection 208
7.3.4 使用AsyncTask執行GUI執行緒以外的網路請求 208
7.3.5 ListView,ArrayAdapter與View-Holder模式 209
7.3.6 FloatingActionButton 210
7.3.7 TextInputLayout 210
7.3.8 Snackbar 210
7.4 構建套用的GUI和資源檔案 210
7.4.1 創建工程 210
7.4.2 AndroidManifest.xml 211
7.4.3 strings.xml 211
7.4.4 colors.xml 211
7.4.5 activity_main.xml 212
7.4.6 content_main.xml 212
7.4.7 list_item.xml 213
7.5 Weather類 214
7.5.1 package聲明、import聲明與實例變數 214
7.5.2 構造方法 215
7.5.3 convertTimeStampToDay方法 216
7.6 WeatherArrayAdapter類 216
7.6.1 package聲明和import聲明 216
7.6.2 嵌套類ViewHolder 217
7.6.3 實例變數與構造方法 217
7.6.4 重寫的ArrayAdapter方法getView 218
7.6.5 用於在獨立執行緒中下載圖像的AsyncTask子類 219
7.7 MainActivity類 221
7.7.1 package聲明和import聲明 221
7.7.2 實例變數 222
7.7.3 重寫的Activity方法onCreate 222
7.7.4 dismissKeyboard方法和createURL方法 223
7.7.5 調用Web服務的AsyncTask子類 224
7.7.6 convertJSONtoArrayList方法 226
7.8 小結 227
第8章 Twitter Searches套用 228
8.1 簡介 229
8.2 測試驅動的套用 230
8.2.1 添加一個搜尋 230
8.2.2 查看搜尋Twitter的結果 231
8.2.3 編輯搜尋 232
8.2.4 共享搜尋 233
8.2.5 刪除搜尋 234
8.2.6 滾動瀏覽保存的搜尋 234
8.3 技術概覽 234
8.3.1 將鍵/值對數據保存到SharedPreferences檔案 234
8.3.2 隱式Intent和意圖選擇器 235
8.3.3 RecyclerView 235
8.3.4 RecyclerView.Adapter和RecyclerView.ViewHolder 236
8.3.5 RecyclerView.ItemDecoration 236
8.3.6 在AlertDialog中顯示選項清單 236
8.4 構建套用的GUI和資源檔案 236
8.4.1 創建工程 236
8.4.2 AndroidManifest.xml 237
8.4.3 添加RecyclerView庫 237
8.4.4 colors.xml 237
8.4.5 strings.xml 237
8.4.6 arrays.xml 237
8.4.7 dimens.xml 238
8.4.8 添加Save按鈕圖示 238
8.4.9 activity_main.xml 238
8.4.10 content_main.xml 239
8.4.11 RecyclerView項的布局:list_item.xml 241
8.5 MainActivity類 242
8.5.1 package聲明和import聲明 242
8.5.2 MainActivity類 242
8.5.3 重寫的Activity方法onCreate 243
8.5.4 TextWatcher事件處理器和updateSaveFAB方法 245
8.5.5 saveButton的OnClickListener接口 246
8.5.6 addTaggedSearch方法 247
8.5.7 實現View.OnClickListener,顯示搜尋結果的匿名內部類 247
8.5.8 實現View.OnLongClickListener的匿名內部類 248
8.5.9 shareSearch方法 250
8.5.10 deleteSearch方法 251
8.6 RecyclerView.Adapter的SearchesAdapter子類 252
8.6.1 package聲明、import聲明、實例變數和構造方法 252
8.6.2 RecyclerView.ViewHolder的嵌套ViewHolder子類 252
8.6.3 重寫RecyclerView.Adapter方法 253
8.7 RecyclerView.ItemDecoration的ItemDivider 子類 254
8.8 Fabric:Twitter的新移動開發平台 255
8.9 小結 256
第9章 Address Book套用 257
9.1 簡介 258
9.2 測試驅動的Address Book套用 260
9.2.1 添加聯繫人信息 260
9.2.2 查看聯繫人信息 260
9.2.3 編輯聯繫人信息 260
9.2.4 刪除聯繫人信息 262
9.3 技術概覽 262
9.3.1 用FragmentTransaction顯示Fragment 262
9.3.2 在Fragment與宿主Activity之間交換數據 263
9.3.3 操作SQLite資料庫 263
9.3.4 ContentProvider和ContentResolver 263
9.3.5 Loader和LoaderManager——異步資料庫訪問 264
9.3.6 定義樣式並套用於GUI組件 264
9.3.7 指定TextView背景 265
9.4 構建套用的GUI和資源檔案 265
9.4.1 創建工程 265
9.4.2 創建套用的類 265
9.4.3 添加套用圖示 266
9.4.4 strings.xml 266
9.4.5 styles.xml 266
9.4.6 textview_border.xml 267
9.4.7 MainActivity的布局 268
9.4.8 ContactsFragment的布局 270
9.4.9 DetailFragment的布局 270
9.4.10 AddEditFragment的布局 271
9.4.11 DetailFragment的選單 273
9.5 套用中各個類的概述 273
9.6 DatabaseDescription類 274
9.6.1 靜態欄位 274
9.6.2 嵌套Contact類 275
9.7 AddressBookDatabaseHelper類 275
9.8 AddressBookContentProvider類 277
9.8.1 AddressBookContentProvider欄位 277
9.8.2 重寫的onCreate和getType方法 278
9.8.3 重寫的query方法 279
9.8.4 重寫的insert方法 281
9.8.5 重寫的update方法 282
9.8.6 重寫的delete方法 283
9.9 MainActivity類 284
9.9.1 超類及實現的接口和欄位 284
9.9.2 重寫的onCreate方法 285
9.9.3 ContactsFragment.ContactsFragmentListener方法 285
9.9.4 displayContact方法 286
9.9.5 displayAddEditFragment方法 287
9.9.6 DetailFragment.DetailFragmentListener方法 288
9.9.7 AddEditFragment.AddEditFragmentListener方法 288
9.10 ContactsFragment類 289
9.10.1 超類及實現的接口 289
9.10.2 ContactsFragmentListener 289
9.10.3 欄位 290
9.10.4 重寫的Fragment方法onCreateView 290
9.10.5 重寫的Fragment方法onAttach和onDetach 291
9.10.6 重寫的Fragment方法onActivityCreated 291
9.10.7 updateContactList方法 292
9.10.8 LoaderManager.LoaderCallbacks方法 292
9.11 ContactsAdapter類 293
9.12 AddEditFragment類 296
9.12.1 超類及實現的接口 296
9.12.2 AddEditFragmentListener 297
9.12.3 欄位 297
9.12.4 重寫的Fragment方法onAttach,onDetach和onCreateView 298
9.12.5 TextWatcher nameChangedListener和updateSaveButtonFAB方法 299
9.12.6 View.OnClickListener saveContactButtonClicked和saveContact方法 300
9.12.7 LoaderManager.LoaderCallbacks方法 301
9.13 DetailFragment類 302
9.13.1 超類及實現的接口 303
9.13.2 DetailFragmentListener 303
9.13.3 欄位 303
9.13.4 重寫的onAttach,onDetach和onCreateView方法 304
9.13.5 重寫的onCreateOptionsMenu和onOptionsItemSelected方法 305
9.13.6 deleteContact方法和DialogFragment confirmDelete 306
9.13.7 LoaderManager.LoaderCallback方法 306
9.14 小結 308
第10章 Google Play及套用的商業問題 309
10.1 簡介 309
10.2 為發布套用做準備 310
10.2.1 測試套用 310
10.2.2 最終用戶協定 311
10.2.3 圖示與卷標 311
10.2.4 為套用定義版本 311
10.2.5 為已付費套用提供訪問控制授權 312
10.2.6 弄亂原始碼 312
10.2.7 獲取密鑰,對套用進行數字簽名 312
10.2.8 有特色的圖像和螢幕截圖 312
10.2.9 用於推廣套用的視頻 313
10.3 為套用定價:免費或收費 314
10.3.1 付費套用 314
10.3.2 免費套用 314
10.4 利用In-App Advertising貨幣化套用 315
10.5 貨幣化套用:通過套用內計費功能銷售虛擬商品 315
10.6 註冊Google Play 316
10.7 設定Google Payments商家賬號 317
10.8 將套用上載到Google Play 317
10.9 在套用里啟動Play Store 319
10.10 管理Google Play中的套用 319
10.11 其他的Android套用市場 319
10.12 其他移動套用平台及套用移植 320
10.13 套用的市場推廣 320
10.14 小結 323
索引 324