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