本書從基本的Java語(yǔ)法開始講解,通過具體的實(shí)例介紹Android開發(fā)的全過程,從零基礎(chǔ)到進(jìn)階全覆蓋。全書共14章,首先闡述Java語(yǔ)言的基礎(chǔ)知識(shí),然后介紹有關(guān)活動(dòng)、碎片等Android中的重要概念,為讀者進(jìn)行Android開發(fā)打下扎實(shí)的基礎(chǔ)。接下來介紹有關(guān) Android UI 控件開發(fā)以及GitHub開源庫(kù)使用的知識(shí),可以讓讀者在開源的世界中繼續(xù)進(jìn)行更深層次的探索。
本書兼具基礎(chǔ)知識(shí)與實(shí)戰(zhàn)案例講解,內(nèi)容循序漸進(jìn),零基礎(chǔ)和有一定基礎(chǔ)的Android開發(fā)人員均可進(jìn)行參考和閱讀。
在科技高速發(fā)展的今天,各種計(jì)算機(jī)技術(shù)層出不窮,而在軟件開發(fā)中,筆者覺得最有意思的莫過于Android開發(fā)了。學(xué)會(huì)了Android移動(dòng)端開發(fā),就能夠迅速通過編程實(shí)現(xiàn)自己的想法。同時(shí),正是移動(dòng)端開發(fā)引領(lǐng)了本次的互聯(lián)網(wǎng)革命,在本次互聯(lián)網(wǎng)革命中也孕育了不少巨無霸企業(yè),比如阿里巴巴、美團(tuán)、騰訊、百度、谷歌、亞馬遜、臉書等;ヂ(lián)網(wǎng)將不同地方的人和事物聯(lián)系了起來。阿里巴巴改變了我們購(gòu)物的方式,美團(tuán)改變了我們吃飯的方式,騰訊則改變了我們和朋友、家人聯(lián)系的方式。我們足不出戶就可以和萬里之外的朋友進(jìn)行交流,也可以購(gòu)買千里之外的物品。互聯(lián)網(wǎng)技術(shù)還通過一系列的算法對(duì)物流進(jìn)行最優(yōu)配置,這樣快遞能夠在幾天之內(nèi)送往全國(guó)各地。而這些技術(shù)的直觀體現(xiàn)就是我們平時(shí)使用的移動(dòng)端上的軟件。在移動(dòng)端上,Android和iOS共分天下,截至2020年年底,Android已經(jīng)占據(jù)了85%的市場(chǎng)份額,可見其市場(chǎng)價(jià)值的巨大。因此,一旦涉及移動(dòng)端應(yīng)用,首先要開發(fā)的就是Android應(yīng)用。Android為全球上億的移動(dòng)設(shè)備提供計(jì)算能力,是全世界所有移動(dòng)平臺(tái)中安裝量最大的,并且仍然在飛速增長(zhǎng),每天都平均有100萬用戶啟動(dòng)Android設(shè)備,并從Android設(shè)備商那里尋找自己想要的應(yīng)用。
基于Linux內(nèi)核而設(shè)計(jì)的Android操作系統(tǒng)主要用于具有觸摸屏的移動(dòng)智能設(shè)備,例如智能手機(jī)和平板電腦。同樣,Android提供了用于用戶與應(yīng)用程序交互的觸摸屏事件。Android的用戶界面主要提供基于用戶的觸摸操作,我們可以使用觸摸手勢(shì)(例如滑動(dòng)、單擊等)來操控屏幕上的對(duì)象。此外,還有一個(gè)可以進(jìn)行自定義的鍵盤,用于輸入文字。Android還支持通過藍(lán)牙或USB連接的游戲控制器和全尺寸物理鍵盤。Android旨在對(duì)用戶的輸入進(jìn)行即時(shí)響應(yīng),除了可立即對(duì)觸摸做出響應(yīng)的動(dòng)態(tài)界面外,由Android驅(qū)動(dòng)的設(shè)備還可以通過振動(dòng)為用戶提供觸覺反饋。許多Android應(yīng)用都利用了Android移動(dòng)智能設(shè)備中諸如加速度計(jì)、陀螺儀和接近傳感器之類的內(nèi)部硬件來響應(yīng)用戶的其他操作。這些傳感器還可以檢測(cè)到屏幕的旋轉(zhuǎn),例如,對(duì)于賽車游戲,用戶可以像操縱方向盤一樣旋轉(zhuǎn)Android設(shè)備。由于Android設(shè)備的供電通常是通過電池,因此Android旨在通過管理系統(tǒng)的運(yùn)行流程將設(shè)備功耗保持在最低水平,從而延長(zhǎng)Android設(shè)備中電池的續(xù)航時(shí)間。
其實(shí)開發(fā)基于Android的應(yīng)用非常容易,一般使用Java語(yǔ)言來進(jìn)行Android應(yīng)用的開發(fā),使用XML來描述數(shù)據(jù)資源,也就是使用XML來編寫用戶界面。為了幫助開發(fā)者有效地開發(fā)移動(dòng)應(yīng)用,谷歌公司提供了一個(gè)名為Android Studio的集成開發(fā)環(huán)境。這個(gè)集成開發(fā)環(huán)境提供了程序代碼的編寫、程序代碼的調(diào)試和將Android應(yīng)用程序打包等功能。盡管Android平臺(tái)為移動(dòng)應(yīng)用程序提供了豐富的功能,但是目前還面臨很多挑戰(zhàn)。比如,在一個(gè)應(yīng)用中實(shí)現(xiàn)多屏功能,提高Android軟件的性能,正確地執(zhí)行代碼和保證用戶的信息安全,保證新版本應(yīng)用程序和舊版本Android系統(tǒng)的兼容,等等。
本書既適用于初學(xué)者,又適用于有一定開發(fā)經(jīng)驗(yàn)的人員。本書對(duì)初學(xué)者非常友好,在前面的章節(jié)提供了Android開發(fā)所需要的Java知識(shí),即第1~4章著重講解Java語(yǔ)言,為讀者打好編程語(yǔ)言的基礎(chǔ),有了這個(gè)基礎(chǔ),在學(xué)習(xí)Android開發(fā)的時(shí)候會(huì)更加輕松。第5~8章帶領(lǐng)大家實(shí)現(xiàn)Android中一些酷炫的展示界面,對(duì)各種UI控件以及Android開源框架進(jìn)行講解,讓讀者在短時(shí)間內(nèi)快速實(shí)現(xiàn)一個(gè)漂亮的App。第9~14章介紹Android的一些高級(jí)應(yīng)用,讓讀者了解Android中的動(dòng)畫操作、一些更加強(qiáng)大的UI控件、網(wǎng)絡(luò)訪問技術(shù)以及多媒體技術(shù),最后還添加了有關(guān)人工智能的內(nèi)容,將人工智能技術(shù)和Android結(jié)合,在移動(dòng)應(yīng)用上啟用當(dāng)前流行的人工智能技術(shù)。比如,抖音中就啟用了一系列的人工智能技術(shù),我們制作好的視頻可以通過Android系統(tǒng)自動(dòng)計(jì)算,從而改變被拍攝者的顏值、身材、身高等。
希望讀者在學(xué)習(xí)本書的過程中,能夠?qū)系脑创a親自實(shí)現(xiàn)一遍,以加深對(duì)代碼的理解。
本書提供資源文件下載,讀者可以登錄機(jī)械工業(yè)出版社華章公司的網(wǎng)站(www.hzbook.com),先搜索到本書,然后在頁(yè)面上的“資料下載”模塊下載即可。如果下載有問題,請(qǐng)發(fā)送電子郵件到booksaga@126.com。
編 者 2021年2月
前言
第1章 歡迎來到Android的世界 1
1.1 Android簡(jiǎn)介 1
1.2 Android和Linux 1
1.3 Android系統(tǒng)目錄簡(jiǎn)介 2
1.4 學(xué)習(xí)路徑推薦 4
第2章 Java基礎(chǔ)環(huán)境搭建 8
2.1 IntelliJ IDEA簡(jiǎn)介 8
2.2 JDK簡(jiǎn)介 8
2.3 JDK的安裝 9
2.4 IntelliJ IDEA的安裝 11
第3章 Java語(yǔ)言基礎(chǔ) 17
3.1 基本數(shù)據(jù)類型 17
3.2 循環(huán) 19
3.3 條件語(yǔ)句 22
3.3.1 if語(yǔ)句 22
3.3.2 if-else語(yǔ)句 23
3.3.3 if-else if語(yǔ)句 24
3.3.4 switch語(yǔ)句 25
3.4 數(shù)組 26
第4章 面向?qū)ο缶幊?29
4.1 面向?qū)ο蠛?jiǎn)介 29
4.2 定義類 30
4.3 方法簡(jiǎn)介 32
4.4 方法的語(yǔ)法 34
4.5 方法的重載 35
4.6 編寫屬于自己的類——Cat 36
4.7 類的繼承 38
4.8 構(gòu)造器 41
4.9 構(gòu)造器的重載 44
第5章 Android開發(fā)環(huán)境搭建 47
5.1 Android Studio簡(jiǎn)介 47
5.2 準(zhǔn)備所需的工具 47
5.3 安裝Android Studio并配置環(huán)境 48
第6章 活動(dòng) 58
6.1 活動(dòng)簡(jiǎn)介 58
6.2 手工創(chuàng)建第一個(gè)活動(dòng) 58
6.3 詳解AndroidManifest文件 65
6.4 Android目錄結(jié)構(gòu)res簡(jiǎn)介 68
6.5 Button控件 69
6.6 Toast的使用 71
6.7 實(shí)現(xiàn)Button按鈕事件的常見方法 73
6.8 活動(dòng)的跳轉(zhuǎn) 74
6.9 活動(dòng)的生命周期 76
第7章 反編譯 79
7.1 破解工具簡(jiǎn)介 79
7.2 解析AndroidManifest.xml文件 80
7.3 將APK文件轉(zhuǎn)化為DEX文件 84
7.4 將DEX文件轉(zhuǎn)化為JAR文件 84
7.5 將JAR文件轉(zhuǎn)化為Java文件 85
第8章 常用UI控件 87
8.1 線性布局 87
8.2 相對(duì)布局 96
8.3 TextView 100
8.4 EditText 105
8.5 ImageView 115
8.6 使用GitHub開源庫(kù)實(shí)現(xiàn)動(dòng)態(tài)開關(guān)按鈕 119
8.7 實(shí)現(xiàn)圓形ImageView 123
8.8 AlertDialog 125
8.9 CheckBox 132
8.10 ScrollView 134
8.11 技術(shù)實(shí)戰(zhàn):仿寫騰訊QQ登錄注冊(cè)界面 136
第9章 碎片 140
9.1 碎片簡(jiǎn)介 140
9.2 FrameLayout 142
9.3 靜態(tài)添加碎片 145
9.4 動(dòng)態(tài)添加碎片 150
9.5 技術(shù)實(shí)戰(zhàn):仿寫微信 156
第10章 更為強(qiáng)大的UI控件 165
10.1 ListView的使用 165
10.2 ViewPager的使用 170
10.3 CardView的使用 174
10.4 Splash快速開屏實(shí)現(xiàn) 177
第11章 讓你的應(yīng)用動(dòng)起來——?jiǎng)赢?179
11.1 幀動(dòng)畫 179
11.2 補(bǔ)間動(dòng)畫 184
第12章 訪問網(wǎng)絡(luò) 190
12.1 Webview控件的使用 190
12.2 Get請(qǐng)求的實(shí)現(xiàn) 193
12.3 Post請(qǐng)求的實(shí)現(xiàn) 202
12.4 JSON請(qǐng)求的實(shí)現(xiàn) 203
12.5 ImageRequest請(qǐng)求的實(shí)現(xiàn) 204
12.6 技術(shù)實(shí)戰(zhàn):輕松搞定向女朋友表白的軟件 205
第13章 多媒體技術(shù) 227
13.1 調(diào)用攝像頭進(jìn)行拍照 227
13.2 編寫視頻播放器 236
第14章 計(jì)算機(jī)視覺和圖像識(shí)別技術(shù)在Android開發(fā)中的應(yīng)用 240
14.1 人工智能與計(jì)算機(jī)視覺 240
14.2 人工神經(jīng)網(wǎng)絡(luò) 241
14.3 全連接神經(jīng)網(wǎng)絡(luò) 241
14.4 卷積神經(jīng)網(wǎng)絡(luò) 243
14.5 圖像的池化 246
14.6 圖像識(shí)別 247
14.7 Android實(shí)現(xiàn)圖像識(shí)別 248