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