新一輪科技革命和產(chǎn)業(yè)變革帶動(dòng)了傳統(tǒng)產(chǎn)業(yè)的升級(jí)改造。黨的二十大報(bào)告強(qiáng)調(diào)必須堅(jiān)持科技是第一生產(chǎn)力、人才是第一資源、創(chuàng)新是第一動(dòng)力,深入實(shí)施科教興國(guó)戰(zhàn)略、人才強(qiáng)國(guó)戰(zhàn)略、創(chuàng)新驅(qū)動(dòng)發(fā)展戰(zhàn)略,開辟發(fā)展新領(lǐng)域新賽道,不斷塑造發(fā)展新動(dòng)能新優(yōu)勢(shì)。建設(shè)高質(zhì)量高等教育體系是擺在高等教育面前的重大歷史使命和政治責(zé)任。高等教育要堅(jiān)持國(guó)家戰(zhàn)略引領(lǐng),聚焦重大需求布局,推進(jìn)新工科、新醫(yī)科、新農(nóng)科、新文科建設(shè),加快培養(yǎng)緊缺型人才。
當(dāng)前,國(guó)內(nèi)多數(shù)應(yīng)用型人才培養(yǎng)本科院校和專科院校的計(jì)算機(jī)、軟件工程、電子信息等專業(yè)均會(huì)開設(shè)移動(dòng)開發(fā)相關(guān)課程,而Android開發(fā)占據(jù)移動(dòng)開發(fā)課程的主流?紤]到高校目前Java課程比Kotlin課程普及度高,盡管Android開發(fā)主推Kotlin語(yǔ)言,本書依然堅(jiān)持使用Java語(yǔ)言,這是為了更好地銜接現(xiàn)有的課程體系。在內(nèi)容編排上,本書不僅講述Android基礎(chǔ)開發(fā),還特別注重Java知識(shí)的滲透,讓讀者通過(guò)各任務(wù)的臨摹學(xué)習(xí),掌握數(shù)據(jù)的封裝、接口回調(diào)、類的繼承與改寫、多線程開發(fā)、異步編程、數(shù)據(jù)庫(kù)編程、UI交互編程等相關(guān)知識(shí)和開發(fā)技巧,以提高Java開發(fā)能力,可作為Java后繼課程的延伸。
本書主要內(nèi)容
第1章開發(fā)環(huán)境及項(xiàng)目的基本信息,介紹Android Studio(2021版)開發(fā)環(huán)境的安裝、虛擬機(jī)的設(shè)置,并考慮Intel和AMD CPU的安裝設(shè)置。此外,還介紹開發(fā)項(xiàng)目的結(jié)構(gòu),以及Android Studio開發(fā)過(guò)程中常用的快捷鍵。
第2章Android的布局與基本UI,通過(guò)9個(gè)任務(wù)的講解,使讀者掌握Android開發(fā)中各UI組件如何布局在容器上,著重使用LinearLayout以及布局權(quán)重和布局對(duì)齊等特性,并以
相對(duì)布局(RelativeLayout)和
約束布局(ConstraintLayout)為補(bǔ)充,涉及文本框(TextView)、可編輯文本框(EditText)、按鈕(Button)、多選框(CheckBox)、單選框(RadioButton)等UI的使用和事件處理。
第3章列表與適配器,通過(guò)9個(gè)任務(wù)的講解,使讀者掌握批量數(shù)據(jù)的UI顯示方法和事件處理,尤其是下拉列表(Spinner)、列表視圖(ListView)、網(wǎng)格視圖(GridView)以及RecyclerView的使用方法,強(qiáng)調(diào)自定義視圖適配器的靈活應(yīng)用,尤其是適配器的改寫。
第4章菜單與對(duì)話框,通過(guò)7個(gè)任務(wù)的講解,使讀者掌握數(shù)據(jù)在可視化界面下配合菜單與對(duì)話框?qū)崿F(xiàn)增、刪、改方法,尤其是選項(xiàng)菜單(OptionsMenu)、上下文菜單(ContextMenu)、彈出菜單(PopupMenu)以及對(duì)話框(AlertDialog)的使用方法,強(qiáng)調(diào)自定義接口實(shí)現(xiàn)模塊解耦的編程技巧。
第5章多線程與網(wǎng)絡(luò)應(yīng)用,通過(guò)9個(gè)任務(wù)的講解,使讀者掌握Handler、自定義接口以及LiveData等不同方法實(shí)現(xiàn)的后臺(tái)線程與前端UI的數(shù)據(jù)交互方法,通過(guò)實(shí)例驗(yàn)證數(shù)據(jù)的多線程安全性問(wèn)題,提高多線程開發(fā)能力。在網(wǎng)絡(luò)應(yīng)用上,引入OkHttp、Gson、RxHttp等第三方庫(kù)用于實(shí)現(xiàn)基于Web API的JSON數(shù)據(jù)解析與數(shù)據(jù)顯示,并探討Activity多種啟動(dòng)模式的差異。最后,引入Jsoup第三方庫(kù)爬取HTML數(shù)據(jù),自定義適配器異步解析網(wǎng)頁(yè)和Glide加載網(wǎng)絡(luò)圖片,實(shí)現(xiàn)圖書資訊App的基礎(chǔ)開發(fā)。
第6章數(shù)據(jù)存儲(chǔ)與內(nèi)容提供,通過(guò)7個(gè)任務(wù)的講解,使讀者掌握SharedPreferences輕量化存儲(chǔ)、Sqlite數(shù)據(jù)庫(kù)應(yīng)用以及內(nèi)容提供器組件ContentProvider數(shù)據(jù)讀寫操作、系統(tǒng)相冊(cè)讀取、運(yùn)行時(shí)權(quán)限等相關(guān)知識(shí)和編程技巧。
第7章Fragment與導(dǎo)航,通過(guò)3個(gè)任務(wù)的講解,使讀者掌握底部導(dǎo)航、碎片F(xiàn)ragment的使用、Fragment跳轉(zhuǎn)、基于視圖模型的數(shù)據(jù)維持與數(shù)據(jù)傳遞、自定義導(dǎo)航控制Fragment的隱藏與顯示等相關(guān)編程技巧。
本書特色
(1) 任務(wù)驅(qū)動(dòng)式教學(xué)。各任務(wù)學(xué)習(xí)目標(biāo)明確,將應(yīng)用場(chǎng)景的沉浸與知識(shí)點(diǎn)融合,讀者通過(guò)臨摹各任務(wù),可掌握相關(guān)知識(shí)和開發(fā)技巧,提高知識(shí)的靈活應(yīng)用能力。
(2) 適合碎片化學(xué)習(xí)。各章任務(wù)盡可能地保持獨(dú)立性和代碼完整性,
有利于初學(xué)者利用閑余時(shí)間碎片化學(xué)習(xí),也有利于高校老師開展線上和線下混合式教學(xué)。
(3) 由淺入深,循序漸進(jìn)。在內(nèi)容安排上按難易程度合理安排章節(jié)順序,各任務(wù)既保持獨(dú)立性,又承上啟下,符合讀者的學(xué)習(xí)規(guī)律。
(4) 注重代碼的解耦和通用性。本書中的所有任務(wù)均通過(guò)Android 5.0和Android 10.0測(cè)試,所寫的部分工具類可直接應(yīng)用于其他Android應(yīng)用的項(xiàng)目開發(fā)。
配套資源
為便于教與學(xué),本書配有微課視頻(1360分鐘)、源代碼、教學(xué)課件、教學(xué)大綱。
(1) 獲取微課視頻的方式: 先刮開并用手機(jī)版微信App掃描本書封底的文泉云盤防盜碼,授權(quán)后再掃描書中相應(yīng)的視頻二維碼,觀看教學(xué)視頻。
(2) 獲取源代碼、全書網(wǎng)址的方式: 先刮開并用手機(jī)版微信App掃描本書封底的文泉云盤防盜碼,授權(quán)后再掃描下方二維碼,即可獲取。
源代碼
全書網(wǎng)址
(3) 其他配套資源可以掃描本書封底的書圈二維碼,關(guān)注后回復(fù)本書書號(hào)即可下載。
讀者對(duì)象
本書可作為全國(guó)高等學(xué)校計(jì)算機(jī)及相關(guān)專業(yè)的教材和相關(guān)培訓(xùn)及培訓(xùn)機(jī)構(gòu)的教學(xué)用書,同時(shí)也適合作為Android編程愛好者的入門讀物。
本書作者在編寫過(guò)程中參考了諸多相關(guān)資料,在此對(duì)相關(guān)資料的作者表示衷心的感謝。限于個(gè)人水平和時(shí)間倉(cāng)促,書中難免存在疏漏之處,歡迎廣大讀者批評(píng)指正。
作者
2023年6月
第1章開發(fā)環(huán)境及項(xiàng)目的基本信息
1.1開發(fā)環(huán)境及系統(tǒng)要求
1.2Android Studio的安裝過(guò)程
1.3Android Studio虛擬機(jī)的設(shè)置
1.4項(xiàng)目的基本信息
1.4.1初步認(rèn)識(shí)項(xiàng)目聲明文件AndroidManifest.xml
1.4.2項(xiàng)目的資源引用方式
1.4.3項(xiàng)目的代碼和布局文件
1.4.4項(xiàng)目的Gradle文件
1.5Android Studio的常用快捷鍵
第2章Android的布局與基本UI
2.1按鈕與文本框的互動(dòng)
2.1.1任務(wù)說(shuō)明
2.1.2任務(wù)相關(guān)知識(shí)點(diǎn)
2.1.3任務(wù)實(shí)現(xiàn)
2.1.4Android項(xiàng)目的存儲(chǔ)備份與瘦身
2.1.5Android項(xiàng)目的調(diào)試
2.2控制布局對(duì)齊
2.2.1任務(wù)說(shuō)明
2.2.2任務(wù)相關(guān)知識(shí)點(diǎn)
2.2.3任務(wù)實(shí)現(xiàn)
2.3控制布局占比權(quán)重
2.3.1任務(wù)說(shuō)明
2.3.2任務(wù)相關(guān)知識(shí)點(diǎn)
2.3.3任務(wù)實(shí)現(xiàn)
2.4單選框
2.4.1任務(wù)說(shuō)明
2.4.2任務(wù)相關(guān)知識(shí)點(diǎn)
2.4.3任務(wù)實(shí)現(xiàn)
2.5多選框
2.5.1任務(wù)說(shuō)明
2.5.2任務(wù)實(shí)現(xiàn)
2.6獲取并顯示EditText文本
2.6.1任務(wù)說(shuō)明
2.6.2任務(wù)實(shí)現(xiàn)
2.7控制文本顏色以及UI邊距
2.7.1任務(wù)說(shuō)明
2.7.2任務(wù)實(shí)現(xiàn)
2.8相對(duì)布局
2.8.1任務(wù)說(shuō)明
2.8.2任務(wù)實(shí)現(xiàn)
2.9約束布局
2.9.1任務(wù)說(shuō)明
2.9.2任務(wù)相關(guān)知識(shí)點(diǎn)
2.9.3任務(wù)實(shí)現(xiàn)
2.10本章綜合作業(yè)
第3章列表與適配器
3.1下拉列表
3.1.1任務(wù)說(shuō)明
3.1.2任務(wù)相關(guān)知識(shí)點(diǎn)
3.1.3任務(wù)實(shí)現(xiàn)
3.2使用Spinner控制文本顏色
3.2.1任務(wù)說(shuō)明
3.2.2任務(wù)實(shí)現(xiàn)
3.3使用Spinner控制文本大小
3.3.1任務(wù)說(shuō)明
3.3.2任務(wù)實(shí)現(xiàn)
3.4使用ListView切換ImageView圖片
3.4.1任務(wù)說(shuō)明
3.4.2任務(wù)實(shí)現(xiàn)
3.5使用SimpleAdapter生成復(fù)雜視圖
3.5.1任務(wù)說(shuō)明
3.5.2任務(wù)實(shí)現(xiàn)
3.6改寫ArrayAdapter生成復(fù)雜視圖
3.6.1任務(wù)說(shuō)明
3.6.2任務(wù)實(shí)現(xiàn)
3.7使用網(wǎng)格視圖
3.7.1任務(wù)說(shuō)明
3.7.2任務(wù)實(shí)現(xiàn)
3.8列表視圖與網(wǎng)格視圖的動(dòng)態(tài)切換
3.8.1任務(wù)說(shuō)明
3.8.2任務(wù)實(shí)現(xiàn)
3.9使用RecyclerView
3.9.1任務(wù)說(shuō)明
3.9.2任務(wù)實(shí)現(xiàn)
3.10本章綜合作業(yè)
第4章菜單與對(duì)話框
4.1使用選項(xiàng)菜單
4.1.1任務(wù)說(shuō)明
4.1.2任務(wù)實(shí)現(xiàn)
4.2使用上下文菜單
4.2.1任務(wù)說(shuō)明
4.2.2任務(wù)實(shí)現(xiàn)
4.3使用彈出菜單
4.3.1任務(wù)說(shuō)明
4.3.2任務(wù)實(shí)現(xiàn)1: 注冊(cè)兩個(gè)ContextMenu
4.3.3任務(wù)實(shí)現(xiàn)2: 巧用PopupMenu
4.4使用對(duì)話框AlertDialog
4.4.1任務(wù)說(shuō)明
4.4.2任務(wù)實(shí)現(xiàn)
4.5使用自定義視圖對(duì)話框
4.5.1任務(wù)說(shuō)明
4.5.2任務(wù)實(shí)現(xiàn)
4.6使用對(duì)話框?qū)崿F(xiàn)多選
4.6.1任務(wù)說(shuō)明
4.6.2任務(wù)實(shí)現(xiàn)
4.7實(shí)現(xiàn)多選適配器與動(dòng)態(tài)菜單
4.7.1任務(wù)說(shuō)明
4.7.2針對(duì)ListView的多選適配器實(shí)現(xiàn)方法
4.7.3針對(duì)RecyclerView的多選適配器實(shí)現(xiàn)方法
4.8本章綜合作業(yè)
第5章多線程與網(wǎng)絡(luò)應(yīng)用
5.1使用多線程與Handler
5.1.1任務(wù)說(shuō)明
5.1.2任務(wù)相關(guān)知識(shí)點(diǎn)
5.1.3任務(wù)實(shí)現(xiàn)
5.1.4驗(yàn)證變量的線程安全性
5.2使用多線程與自定義接口
5.2.1任務(wù)說(shuō)明
5.2.2任務(wù)實(shí)現(xiàn)
5.3使用多線程與LiveData
5.3.1任務(wù)說(shuō)明
5.3.2任務(wù)實(shí)現(xiàn)
5.4使用Okhttp和Gson獲取Web API數(shù)據(jù)
5.4.1任務(wù)說(shuō)明
5.4.2任務(wù)實(shí)現(xiàn)
5.5Activity的頁(yè)面跳轉(zhuǎn)與數(shù)據(jù)傳遞
5.5.1任務(wù)說(shuō)明
5.5.2任務(wù)實(shí)現(xiàn)
5.6使用RxHttp獲取Web API數(shù)據(jù)
5.6.1任務(wù)說(shuō)明
5.6.2任務(wù)實(shí)現(xiàn)
5.7使用Jsoup實(shí)現(xiàn)網(wǎng)頁(yè)數(shù)據(jù)提取
5.7.1任務(wù)說(shuō)明
5.7.2任務(wù)實(shí)現(xiàn)
5.8使用Jsoup和Glide實(shí)現(xiàn)網(wǎng)頁(yè)數(shù)據(jù)渲染
5.8.1任務(wù)說(shuō)明
5.8.2任務(wù)實(shí)現(xiàn)
5.9使用SwipeRefreshLayout和WebView
5.9.1任務(wù)說(shuō)明
5.9.2任務(wù)實(shí)現(xiàn)
5.10本章綜合作業(yè)
第6章數(shù)據(jù)存儲(chǔ)與內(nèi)容提供
6.1使用SharedPreferences實(shí)現(xiàn)輕量化存儲(chǔ)
6.1.1任務(wù)說(shuō)明
6.1.2任務(wù)實(shí)現(xiàn)
6.2Sqlite數(shù)據(jù)庫(kù)的創(chuàng)建
6.2.1任務(wù)說(shuō)明
6.2.2任務(wù)實(shí)現(xiàn)
6.3使用pinyin4j實(shí)現(xiàn)拼音模糊查詢
6.3.1任務(wù)說(shuō)明
6.3.2面向多音字的漢字轉(zhuǎn)拼音
6.3.3任務(wù)實(shí)現(xiàn)
6.4面向UI交互的Sqlite數(shù)據(jù)庫(kù)增刪改操作
6.4.1任務(wù)說(shuō)明
6.4.2任務(wù)實(shí)現(xiàn)
6.5使用ContentProvider寫系統(tǒng)通訊錄
6.5.1任務(wù)說(shuō)明
6.5.2運(yùn)行時(shí)權(quán)限
6.5.3系統(tǒng)通訊錄的寫入方法
6.5.4任務(wù)實(shí)現(xiàn)
6.6使用ContentProvider讀系統(tǒng)通訊錄
6.6.1任務(wù)說(shuō)明
6.6.2系統(tǒng)通訊錄的讀取方法
6.6.3任務(wù)實(shí)現(xiàn)
6.7選取系統(tǒng)相冊(cè)圖片
6.7.1任務(wù)說(shuō)明
6.7.2任務(wù)實(shí)現(xiàn)
6.8本章綜合作業(yè)
第7章Fragment與導(dǎo)航
7.1使用底部導(dǎo)航
7.1.1任務(wù)說(shuō)明
7.1.2使用向?qū)?chuàng)建底部導(dǎo)航
7.1.3認(rèn)識(shí)Fragment
7.1.4認(rèn)識(shí)導(dǎo)航組件Navigation
7.1.5任務(wù)實(shí)現(xiàn)
7.2Fragment的數(shù)據(jù)維持與數(shù)據(jù)傳遞
7.2.1任務(wù)說(shuō)明
7.2.2任務(wù)實(shí)現(xiàn)
7.3Fragment的隱藏與顯示
7.3.1任務(wù)說(shuō)明
7.3.2任務(wù)實(shí)現(xiàn)
7.4本章綜合作業(yè)
參考文獻(xiàn)