Java與Android移動(dòng)應(yīng)用開發(fā):技術(shù)、方法與實(shí)踐
定 價(jià):79 元
叢書名:高等學(xué)校計(jì)算機(jī)基礎(chǔ)教育教材精選
- 作者:曹化宇
- 出版時(shí)間:2018/8/1
- ISBN:9787302505907
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP312JA
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書是一線程序員多年開發(fā)經(jīng)驗(yàn)的結(jié)晶之作,深入淺出地講解Android移動(dòng)應(yīng)用開發(fā)所需要的幾乎全部基礎(chǔ)內(nèi)容,幫助讀者快速進(jìn)入Android應(yīng)用開發(fā),在項(xiàng)目中靈活應(yīng)用各種開發(fā)技術(shù)和方法。
本書共29章,第1章討論全書的知識(shí)架構(gòu)及在學(xué)習(xí)和工作中如何使用本書。第2~12章主要討論Java編程語(yǔ)言基礎(chǔ)知識(shí),涉及Java編程語(yǔ)言、數(shù)據(jù)處理、常用JDK應(yīng)用與設(shè)計(jì)模式等內(nèi)容。第13~29章主要討論Android移動(dòng)應(yīng)用開發(fā)知識(shí),首先討論Android SDK中各種基本組件的應(yīng)用;然后對(duì)Android應(yīng)用中的一些常用功能開始進(jìn)行討論;*后創(chuàng)建一個(gè)完整的示例項(xiàng)目,討論如何應(yīng)用不同版本的圖標(biāo)、布局、語(yǔ)言等資源,并討論應(yīng)用發(fā)布所需要做的工作和注意事項(xiàng)。
本書內(nèi)容安排合理,架構(gòu)清晰,注重理論與實(shí)踐相結(jié)合,適合作為零基礎(chǔ)學(xué)習(xí)Android移動(dòng)應(yīng)用開發(fā)的初學(xué)者的教程,也適合作為有一定編程基礎(chǔ)的程序員的參考用書。
一線程序員多年開發(fā)經(jīng)驗(yàn)的結(jié)晶之作,深入淺出講解Android移動(dòng)應(yīng)用開發(fā)所需要的幾乎全部基礎(chǔ)內(nèi)容
前 言
無(wú)論是否有過(guò)編程的經(jīng)歷,相信你已經(jīng)在關(guān)注Android應(yīng)用開發(fā)。手機(jī)、平板電腦、車載設(shè)備等市場(chǎng)中,Android設(shè)備的占有率是無(wú)法撼動(dòng)的,所以選擇Android平臺(tái)就是選擇了一個(gè)巨大的移動(dòng)應(yīng)用市場(chǎng)。目標(biāo)沒這么大?沒關(guān)系,給自己的Android設(shè)備開發(fā)一些應(yīng)用也是非常有趣的。
軟件開發(fā)是充滿樂趣和挑戰(zhàn)的工作,其中,至少需要掌握一種編程語(yǔ)言和相應(yīng)的開發(fā)資源。在Android平臺(tái)中,Java語(yǔ)言和Android SDK就是最基本的開發(fā)工具。
本書為所有需要進(jìn)行Android應(yīng)用開發(fā)的讀者而準(zhǔn)備,無(wú)論是編程新手,還是從其他平臺(tái)轉(zhuǎn)換到Android平臺(tái),本書都能幫你順利進(jìn)入Android的精彩世界。
本書特點(diǎn)
從技術(shù)點(diǎn)到應(yīng)用開發(fā)
本書從基本的Java代碼開始,逐漸介紹常用的JDK和Android SDK開發(fā)資源,并討論了軟件開發(fā)的一些基本方法,通過(guò)編程語(yǔ)言、功能介紹、開發(fā)流程和完整的項(xiàng)目,綜合演示了Android應(yīng)用開發(fā)的方方面面。
突出實(shí)用性
書中介紹了大量的Java和Android開發(fā)資源,如各種Android組件、SQLite數(shù)據(jù)庫(kù)、傳感器等方面的應(yīng)用和開發(fā),從基本的使用方法到功能特點(diǎn)的演示,詳盡地展現(xiàn)了開發(fā)技術(shù)在項(xiàng)目中的綜合應(yīng)用。
精心組織,隨時(shí)參考
從Java語(yǔ)言、JDK到Android SDK資源,從代碼到結(jié)構(gòu),從技術(shù)應(yīng)用到項(xiàng)目開發(fā),從不同的角度精心組織內(nèi)容,不但可以幫助讀者循序漸進(jìn)學(xué)習(xí),而且在實(shí)際開發(fā)工作中也能夠快速參考相關(guān)內(nèi)容。
讀者對(duì)象
本書面向Android平臺(tái)開發(fā)者,幫助讀者真正零基礎(chǔ)起步。無(wú)論是初學(xué)者,還是正在開發(fā)Android應(yīng)用的朋友,本書都能提供從Java語(yǔ)言、JDK到Android SDK等方面的參考和幫助。重要的是,讀者可以從本書開始,邁向無(wú)限可能的移動(dòng)應(yīng)用開發(fā)世界。
如何閱讀本書
本書包含了Java編程語(yǔ)言、常用的JDK和大量的Android SDK資源、SQLite數(shù)據(jù)庫(kù)、高德地圖和百度地圖開發(fā),以及項(xiàng)目的綜合演示和發(fā)布等,第1章分別介紹了后面各章的內(nèi)容。
Java部分(第2~12章)主要討論Java編程語(yǔ)言和常用JDK資源的使用,包括數(shù)據(jù)類型及轉(zhuǎn)換、數(shù)據(jù)運(yùn)算、面向?qū)ο缶幊、?shù)組與集合、日期與時(shí)間、設(shè)計(jì)模式等。對(duì)于Java初學(xué)者,可以從第2章開始,逐漸學(xué)習(xí)Java編程語(yǔ)言和JDK的應(yīng)用,并掌握使用設(shè)計(jì)模式優(yōu)化代碼結(jié)構(gòu)的基本方法;對(duì)于已經(jīng)掌握J(rèn)ava的讀者,可以再次熟悉這些知識(shí),并在實(shí)際開發(fā)工作中隨時(shí)參考相關(guān)內(nèi)容。
Android部分(第13~29章)詳細(xì)介紹了Android應(yīng)用開發(fā)的方方面面,包括基本組件、布局、網(wǎng)絡(luò)應(yīng)用、SQLite數(shù)據(jù)庫(kù)、傳感器、高德地圖和百度地圖SDK的應(yīng)用、項(xiàng)目綜合演示和發(fā)布準(zhǔn)備等內(nèi)容。掌握了這些內(nèi)容,就可以開發(fā)并發(fā)布實(shí)用的Android應(yīng)用了;對(duì)于這部分內(nèi)容。讀者可以系統(tǒng)地學(xué)習(xí),也可以在工作中隨時(shí)參考。
進(jìn)一步學(xué)習(xí)建議
通過(guò)本書的學(xué)習(xí),讀者應(yīng)該能夠掌握J(rèn)ava編程語(yǔ)言和Android應(yīng)用的開發(fā),如果感興趣,還可以在本書的基礎(chǔ)上深入學(xué)習(xí)更多、更有趣的開發(fā)技術(shù)和方法。
比如移動(dòng)游戲的開發(fā),雖然Android SDK中包含了一些圖像和音頻處理資源,但它們更加接近系統(tǒng)底層的實(shí)現(xiàn)。對(duì)于游戲開發(fā),還有太多的工作要做,所以建議使用一些成熟的游戲開發(fā)框架,如Unity等。
勘誤和支持
由于作者水平有限,書中難免會(huì)出現(xiàn)一些錯(cuò)誤或不太合理的地方,而讀者的批評(píng)和指正,正是我們共同進(jìn)步的強(qiáng)大動(dòng)力?梢詫械腻e(cuò)誤或建議與作者直接交流,作者的郵箱是chydev@163.com。
致謝
感謝清華大學(xué)出版社編輯老師耐心的交流與指導(dǎo),使得本書能夠順利地與讀者見面。
感謝我的家人,他們?yōu)槲覄?chuàng)造了一個(gè)溫暖的家、一個(gè)安心的工作環(huán)境。特別是我的孩子們,他們總是說(shuō):爸爸在工作,我不打擾他。這些正是我快樂生活和努力工作的力量源泉。
謹(jǐn)以本書獻(xiàn)給我的家人,以及熱愛軟件開發(fā)的朋友!
曹化宇
目 錄
第1章 導(dǎo)讀 1
第2章 Java開發(fā)基礎(chǔ) 4
2.1 安裝JDK和NetBeans 4
2.2 第一個(gè)Java程序 6
2.2.1 語(yǔ)句與語(yǔ)句塊 8
2.2.2 注釋內(nèi)容 9
2.3 保留字與標(biāo)識(shí)符 10
2.4 基本數(shù)據(jù)類型 12
2.5 整數(shù) 13
2.5.1 算術(shù)運(yùn)算 13
2.5.2 增量與減量運(yùn)算 14
2.5.3 位運(yùn)算 14
2.6 浮點(diǎn)數(shù) 16
2.7 類型轉(zhuǎn)換 17
2.8 char類型 19
2.9 boolean類型 20
2.10 枚舉類型 20
2.11 代碼的組織 21
第3章 面向?qū)ο缶幊?23
3.1 類與對(duì)象 23
3.1.1 構(gòu)造函數(shù)與對(duì)象釋放 25
3.1.2 getter()和setter()方法 27
3.1.3 靜態(tài)成員與靜態(tài)初始化 28
3.2 方法 30
3.2.1 可變長(zhǎng)參數(shù) 31
3.2.2 重載 31
3.3 繼承 32
3.3.1 java.lang.Object類 34
3.3.2 擴(kuò)展與重寫 34
3.3.3 訪問級(jí)別 36
3.3.4 instanceof運(yùn)算符 37
3.3.5 抽象類與抽象方法 37
3.4 數(shù)據(jù)類型處理 39
3.4.1 基本數(shù)據(jù)類型與包裝類 40
3.4.2 數(shù)據(jù)的傳遞 41
3.4.3 類型的動(dòng)態(tài)處理 43
3.5 java.lang.Math類 44
3.6 java.util.Random類 45
第4章 接口 47
4.1 創(chuàng)建接口類型 47
4.2 實(shí)現(xiàn)接口 47
4.3 接口的繼承 48
4.4 對(duì)象復(fù)制 50
4.4.1 實(shí)現(xiàn)Cloneable接口 50
4.4.2 實(shí)現(xiàn)Serializable接口 51
第5章 流程控制 54
5.1 比較運(yùn)算符 54
5.2 if-else語(yǔ)句和 :運(yùn)算符 54
5.3 switch語(yǔ)句 56
5.4 循環(huán)語(yǔ)句 58
5.4.1 for語(yǔ)句 58
5.4.2 while語(yǔ)句 59
5.4.3 do-while語(yǔ)句 60
5.4.4 break語(yǔ)句與標(biāo)簽 60
5.4.5 continue語(yǔ)句 61
5.5 異常處理 62
5.5.1 異常類 62
5.5.2 try-catch-finally語(yǔ)句 63
5.5.3 throw語(yǔ)句 64
5.5.4 throws關(guān)鍵字 64
5.5.5 try()語(yǔ)句結(jié)構(gòu) 65
第6章 字符串 67
6.1 String類 67
6.1.1 字符串的運(yùn)算與比較 67
6.1.2 常用方法 67
6.1.3 將字符串轉(zhuǎn)換為其他類型 70
6.2 StringBuffer類 71
6.2.1 基本操作 71
6.2.2 添加內(nèi)容 72
6.2.3 刪除內(nèi)容 72
6.2.4 查詢 73
6.2.5 替換 73
6.2.6 反向排列 73
6.3 StringBuilder類 74
6.4 正則表達(dá)式 74
6.5 獲取MD5和SHA-1編碼 75
6.6 獲取GUID 76
第7章 泛型 77
7.1 泛型類 77
7.2 泛型方法 78
7.3 泛型接口 79
7.4 泛型限制 79
第8章 數(shù)組與集合 82
8.1 數(shù)組 82
8.2 List接口及相關(guān)類型 84
8.3 Map接口及相關(guān)類型 86
第9章 日期與時(shí)間 89
9.1 傳統(tǒng)的日期和時(shí)間處理方法 89
9.1.1 Date類 89
9.1.2 格式化日期和時(shí)間 90
9.1.3 Calendar類 91
9.1.4 TimeZone類 92
9.1.5 Locale類 93
9.2 使用java.time包 93
9.2.1 獲取本地日期與時(shí)間 93
9.2.2 處理年、月、日數(shù)據(jù) 95
9.2.3 處理時(shí)區(qū) 95
9.3 封裝CDateTime類 96
第10章 輸入輸出 103
10.1 文件與目錄 103
10.2 文件的讀寫操作 104
10.2.1 流 104
10.2.2 讀寫文本內(nèi)容 105
10.3 使用java.nio資源 107
第11章 多線程與定時(shí)器 109
11.1 線程 109
11.2 定時(shí)器 110
第12章 設(shè)計(jì)模式 112
12.1 策略模式 112
12.2 單件模式 115
12.3 訪問者模式 116
第13章 Android應(yīng)用開發(fā)基礎(chǔ) 119
13.1 Android Studio的安裝 119
13.2 項(xiàng)目創(chuàng)建與測(cè)試 120
13.2.1 使用AVD測(cè)試 122
13.2.2 使用真實(shí)設(shè)備測(cè)試 124
13.2.3 判斷Android版本 124
13.3 再看Android Studio開發(fā)環(huán)境 127
13.3.1 項(xiàng)目資源的組織 127
13.3.2 代碼字體設(shè)置 128
13.3.3 查看日志 128
13.4 第一次修改應(yīng)用配置(隱藏標(biāo)題欄) 129
13.5 Android應(yīng)用的基本要素 131
第14章 Activity 132
14.1 基本應(yīng)用 132
14.2 運(yùn)行周期 135
14.3 Activity的啟動(dòng)與關(guān)閉 136
14.3.1 啟動(dòng)Activity 136
14.3.2 Activity返回棧 139
14.3.3 Activity的啟動(dòng)模式 140
14.4 數(shù)據(jù)傳遞 142
14.4.1 使用Intent 142
14.4.2 接收返回?cái)?shù)據(jù) 144
14.4.3 Bundle(數(shù)據(jù)自動(dòng)保存與載入) 147
14.5 Intent的更多應(yīng)用 148
第15章 常用組件 151
15.1 按鈕與事件響應(yīng) 151
15.1.1 響應(yīng)單擊操作 153
15.1.2 響應(yīng)長(zhǎng)按操作并振動(dòng) 154
15.1.3 響應(yīng)觸摸事件 156
15.2 文本組件 157
15.2.1 TextView 157
15.2.2 EditText 157
15.3 消息與對(duì)話框 158
15.3.1 Toast 159
15.3.2 AlertDialog 159
15.3.3 ProgressDialog 161
15.4 菜單 162
15.5 單選按鈕 165
15.6 復(fù)選框 168
15.7 下拉列表 171
15.8 圖像組件 177
15.9 列表 178
15.9.1 綁定列表數(shù)據(jù) 178
15.9.2 響應(yīng)列表項(xiàng)單擊 180
15.9.3 獲取正確的項(xiàng)目索引 182
15.10 進(jìn)度條 184
15.11 滑塊 186
15.12 選擇日期和時(shí)間對(duì)話框 188
15.13 更多組件 191
15.14 圖像處理 192
15.14.1 Bitmap和Matrix類 193
15.14.2 縮放 193
15.14.3 旋轉(zhuǎn) 195
15.14.4 扭曲 195
第16章 布局與容器 197
16.1 尺寸單位 197
16.2 線性布局 197
16.3 相對(duì)布局 201
16.4 ScrollView和HorizontalScrollView 204
16.5 搜索功能 204
16.6 自定義組件 206
16.6.1 創(chuàng)建布局 207
16.6.2 創(chuàng)建組件類 209
16.6.3 使用9-Patch圖片 212
第17章 通知與服務(wù) 214
17.1 通知 214
17.1.1 創(chuàng)建簡(jiǎn)單的通知 214
17.1.2 響應(yīng)通知操作 216
17.1.3 更多設(shè)置 217
17.2 服務(wù) 218
17.2.1 Service類 218
17.2.2 IntentService類 222
17.2.3 循環(huán)服務(wù)(使用AlarmManager) 224
第18章 廣播 228
18.1 接收廣播(判斷網(wǎng)絡(luò)狀態(tài)) 228
18.2 發(fā)送廣播 230
18.3 有序廣播 232
18.4 本地廣播 234
第19章 網(wǎng)絡(luò)應(yīng)用 236
19.1 配置IIS網(wǎng)站 236
19.2 獲取網(wǎng)絡(luò)資源 238
19.2.1 使用HttpURLConnection對(duì)象 240
19.2.2 讀取文本內(nèi)容(GET方式) 240
19.2.3 使用參數(shù)(GET方式) 242
19.2.4 使用POST方式 243
19.2.5 將獲取的內(nèi)容顯示到TextView中 244
19.3 處理JSON數(shù)據(jù) 245
19.3.1 處理JSONObject對(duì)象 246
19.3.2 處理JSONArray對(duì)象 248
19.4 處理XML數(shù)據(jù) 249
19.5 將文件上傳到服務(wù)器 252
19.5.1 準(zhǔn)備接收服務(wù)器(ASP.NET) 252
19.5.2 上傳文件 253
19.6 封裝CHttp類 256
19.6.1 使用GET方式獲取文本 256
19.6.2 使用POST方式獲取文本 257
19.6.3 獲取JSON數(shù)據(jù) 259
19.6.4 測(cè)試 261
第20章 保存數(shù)據(jù) 263
20.1 使用Context保存數(shù)據(jù) 263
20.1.1 保存文件 265
20.1.2 讀取文件 266
20.2 使用SharedPreferences保存數(shù)據(jù) 266
20.2.1 保存數(shù)據(jù) 268
20.2.2 載入數(shù)據(jù) 269
第21章 SQLite數(shù)據(jù)庫(kù) 270
21.1 數(shù)據(jù)庫(kù) 270
21.1.1 打開與關(guān)閉數(shù)據(jù)庫(kù) 272
21.1.2 SQLiteOpenHelper類 272
21.2 數(shù)據(jù)表與字段 276
21.2.1 字段類型 276
21.2.2 創(chuàng)建表 277
21.2.3 刪除表 278
21.2.4 修改表結(jié)構(gòu) 278
21.2.5 索引 279
21.3 添加記錄 279
21.3.1 insert語(yǔ)句 279
21.3.2 參數(shù) 280
21.3.3 SQLiteDatabase.insert()方法 281
21.4 查詢記錄 282
21.4.1 select語(yǔ)句 282
21.4.2 SQLiteDatabase.rawQuery()方法 283
21.4.3 使用Cursor類讀取數(shù)據(jù) 285
21.4.4 查詢練習(xí) 286
21.5 修改記錄 287
21.5.1 update語(yǔ)句 287
21.5.2 SQLiteDatabase.update()方法 287
21.6 刪除記錄 288
21.6.1 delete語(yǔ)句 288
21.6.2 SQLiteDatabase.delete()方法 288
21.7 高級(jí)查詢 289
21.7.1 函數(shù) 289
21.7.2 排序 290
21.7.3 分組 291
21.8 主鍵與外鍵 292
21.8.1 創(chuàng)建一對(duì)多數(shù)據(jù)結(jié)構(gòu) 292
21.8.2 join關(guān)鍵字 294
21.9 視圖 295
21.10 使用DB Browser練習(xí)SQL語(yǔ)句 297
第22章 Android SDK定位功能 299
22.1 獲取權(quán)限與基本位置信息 299
22.2 跟蹤位置變化 303
22.3 獲取一次最新位置信息 306
第23章 高德地圖SDK 307
23.1 準(zhǔn)備工作 307
23.2 封裝RequestPermission ActivityBase類 312
23.3 定位 315
23.4 顯示地圖 319
23.5 小結(jié) 324
第24章 百度地圖SDK 325
24.1 準(zhǔn)備工作 325
24.2 定位 329
24.3 顯示地圖 332
第25章 傳感器 338
25.1 傳感器對(duì)象 338
25.2 加速計(jì)(制作水平儀) 339
25.3 陀螺儀 342
25.4 亮度傳感器(控制相機(jī)閃光燈) 343
第26章 應(yīng)用之間的數(shù)據(jù)傳遞 346
26.1 向其他應(yīng)用提供數(shù)據(jù) (ContentProvider) 346
26.1.1 訪問內(nèi)容的Uri 347
26.1.2 數(shù)據(jù)初始化onCreate()方法 349
26.1.3 添加數(shù)據(jù)insert()方法 349
26.1.4 更新數(shù)據(jù)update()方法 350
26.1.5 刪除數(shù)據(jù)delete()方法 350
26.1.6 查詢數(shù)據(jù)query()方法 351
26.1.7 數(shù)據(jù)類型(MIME)getType()方法 351
26.2 操作外部數(shù)據(jù)(ContentResolver) 352
26.3 路徑處理 358
26.4 相機(jī)和圖庫(kù) 360
26.4.1 保存照片 364
26.4.2 讀取照片 364
26.5 播放音頻(極簡(jiǎn)音樂播放器) 366
26.6 播放視頻 371
26.7 讀取通訊錄(打電話與發(fā)短信) 373
第27章 資源與本地化 378
27.1 資源應(yīng)用限定符 378
27.2 應(yīng)用圖標(biāo) 380
27.3 豎屏與橫屏 381
27.4 語(yǔ)言 384
27.5 顏色 385
第28章 項(xiàng)目演示:迷你賬本 387
28.1 數(shù)據(jù)庫(kù)操作(CAccount類) 389
28.1.1 初始化 389
28.1.2 添加記錄 391
28.1.3 刪除記錄 391
28.1.4 賬目查詢 391
28.1.5 賬目統(tǒng)計(jì) 394
28.2 主界面 395
28.2.1 自定義賬目顯示組件 398
28.2.2 基本查詢 401
28.2.3 賬目刪除 402
28.3 添加賬目 403
28.4 查詢 407
28.5 統(tǒng)計(jì) 412
28.6 其他工作 415
第29章 應(yīng)用發(fā)布 416
29.1 創(chuàng)建Key與APK文件 416
29.2 發(fā)布應(yīng)用的多個(gè)版本 419