Android 6 應用開發案例精解(第三版)[Android 6 for Programmers: An App-Driven Approach]pdf

圖書網
圖書網
圖書網
10905
文章
1658
評論
2018年10月20日10:39:21 評論 415
摘要

適讀人群 :本書適合希望從事 Android 應用開發的初學者, 也適合作為該領域中高級開發者的參考書。
*書中采用了以應用為中心的方法,包含8個完整編碼的Android應用。
*專業的程序員開發者指南,講解如何利用Android 6和Android Studio開發用于智能手機和平板電腦的應用。
*實用、例子豐富的Android教程。

Android 6 應用開發案例精解(第三版)[Android 6 for Programmers: An App-Driven Approach] 內容簡介

本書是美國知名編程教材的作者針對Android系統下進行應用開發而編寫的一本入門級教程,全書以"應用驅動的方法”為基礎,詳細講解了17個完整的Android應用的開發過程,并提供了8個APP應用的完整的源代碼。這些應用經過精心挑選,從不同側面展現了Android系統各個功能模塊的編程方法。這些功能包括音頻、視頻、動畫、電話、藍牙、語音識別、加速度計、GPS、指北針、應用窗件、3D圖形等, 它們都是從事Android應用開發所必須熟知的基本技術。

Android 6 應用開發案例精解(第三版)[Android 6 for Programmers: An App-Driven Approach] 目錄

第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<Cursor>方法 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<Cursor>方法 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<Cursor>方法 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

Android 6 應用開發案例精解(第三版)[Android 6 for Programmers: An App-Driven Approach] 精彩文摘

前 言

歡迎來到使用Android軟件開發工具集(SDK)、Java編程語言以及快速發展的Android Studio集成開發環境(IDE)的充滿活力的世界,進行Android智能手機和平板電腦應用的開發。書中講解的許多Android開發技術,同樣適用于Android Wear和Android TV應用的開發。這樣在學習完本書之后,就為這些平臺下的應用開發做好了充分準備。

本書將為專業軟件開發人員提供前沿的移動計算技術。本書是以開發完整的、可運行的應用來講解各種概念的,而沒有采用只分析代碼段的方式。第2~9章中的每一章都給出了一個應用。這些章的開頭是應用的介紹,并通過測試給出了一個或者多個執行樣本的結果,還給出了一個技術概覽。然后,會詳細分析源代碼。全部源代碼都可以從以下站點下載:

學習本書時,建議在IDE中打開相應的源代碼。

對Android應用開發人員而言,機會無處不在。Android設備的銷售以及應用的下載量,正呈現出指數級的增長。第一代Android手機于2008年10月面世。根據IDC公布的數據,到2015年3月底,全球智能手機市場Android占據78%的份額,Apple為18.3%,而Blackberry只有0.3% 。在2014年 ,Android設備的出貨量超過10億。2015年Google I/O開發者大會上,Google宣布在過去12個月中,Google Play已經有500億的應用安裝量。Google Play是Google的Android應用市場 。主流的移動平臺以及運營商之間激烈的市場競爭,導致了技術的快速更新和價格的下滑。此外,數百個Android設備廠商之間的競爭,也推動了Android社區里硬件和軟件的創新。

關于版權以及代碼許可的說明

本書中的全部代碼以及Android應用的版權都由Deitel & Associates公司所有,書中樣本程序的授權許可遵循Creative Commons Attribution 3.0 Unported License(http://creativecommons.org/ licenses/by/3.0),但是它們不能在教育性的其他教程和課本中使用(書本格式或者數字化格式)。此外,作者及出版方并不以任何形式、明確或暗示地保證書中的程序或文檔的正確性。對于使用這些程序而導致的直接或間接損失,作者和出版方不承擔任何責任。歡迎讀者將書中的這些應用作為你自己的應用的起點,在已有的這些功能上進行改動(需滿足前述版權條款)。如果有任何問題,可聯系deitel@deitel.com。

讀者對象

本書假定讀者已經具備一定的Java編程基礎,并了解面向對象編程。同時,讀者還需熟悉XML。Android工程中包含許多XML文件,但通常是通過編輯器與它們交互,從而無須直接了解它們。書中使用的是完整的、可運行的應用,所以如果不了解Java,但具有以C語言為基礎的面向對象編程語言的經驗,比如C++,C#,Swift或者Objective-C,則應當能夠很快熟悉這些材料,學習到大量的Java知識以及Java風格的面向對象編程。

圖書網:Android 6 應用開發案例精解(第三版)[Android 6 for Programmers: An App-Driven Approach]pdf

繼續閱讀

說出你想要的,我們幫你找→→→社區

  • 我的微信
  • 掃一掃加好友
  • weinxin
  • 微信公眾號
  • 掃一掃關注
  • weinxin
Docker源碼分析pdf 操作系統/系統開發

Docker源碼分析pdf

Docker源碼分析 作者:孫宏亮 Docker源碼分析 出版社:機械工業出版社 Docker源碼分析 內容簡介 《Docker源碼分析》是一本引導讀者深入了解Docker實現原理的技術普及讀物,主要...
匿名

發表評論

匿名網友 填寫信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: