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