Android是Google公司在2007年11月推出的移動終端操作系統,由于它的開源、免費,短短幾年就得到了大規模的推廣,使用量一直保持高速增長,不僅在智能手機和平板電腦上得到了廣泛應用,還拓展到智能電視、智能手表、智能汽車等智能硬件的應用領域。
隨著Android系統的流行,基于Android的應用需求也在迅速升溫,很多高校開設了Android應用技術開發課程。本書旨在幫助高等院校的教師比較系統地進行Android教學,以及初學者盡快掌握Android平臺的開發,使讀者對Android的開發有一個基本了解。
本書基于Android 5.0,以Android Studio為集成開發環境,詳細介紹Android應用開發所涉及的相關知識。全書圍繞一個綜合項目—學生空間展開,劃分為初識Android、基本界面設計及優化、主界面及列表信息、廣播及服務、數據持久化等8個具體任務,穿插講解知識點,由淺入深地將理論知識融入項目開發中,讓讀者快速理解Android項目開發的基本知識,為進一步深入學習Android的應用開發打下堅實的基礎。
全書分為8個任務,各任務的具體內容如下:
任務1有2個子任務,分別介紹智能手機及Android系統的發展、Android的總體架構、版本演變及Android模擬器的使用;Android的應用程序結構,以及ADT的應用。
任務2有4個子任務,通過學生空間App的登錄界面、個人信息界面的設計,分別介紹基本控件的使用,包括TextView、EditText、Button、CheckBox、ImageView、RadioButton等的屬性和使用方法;Android的事件和鍵盤事件;菜單和對話框的使用。
任務3有2個子任務,通過學生空間App主界面的布局設計,介紹常用界面布局的使用,包括LinearLayout、FrameLayout、RelativeLayout、GridLayout等;并介紹Android的常用資源,包括style、string、color等values資源的使用及應用場景,以及drawable資源的使用和動態增加layout資源的方法。
任務4有2個子任務,通過學生空間App從登錄界面到主界面的跳轉,介紹Activity的生命周期、多界面跳轉、數據傳遞等;通過學生空間App的工具箱設計,介紹Fragment的基本概念、生命周期、使用方法及應用場景。
任務5有2個子任務,通過學生空間App的課程管理界面,介紹Android的常用高級控件的應用,如ListView、GridView、Spinner等的屬性、使用方法及應用場景。
任務6有2個子任務,重點介紹Android的組件BroadcastReceiver、Service的概念、注冊、收發方法、應用場景,以及如何訪問系統核心服務。
任務7有4個子任務,通過學生空間App的設置功能、課程信息存儲,介紹SharedPreference、SDCard和SQLite等數據存儲方法;在學生空間App的音樂播放模塊設計中,介紹ContentProvider數據共享的概念和應用場景。
任務8有2個子任務,重點介紹Android 5.0中Snackbar和Floating Action Butotn兩個常用組件的使用方法和應用場景。
書末附錄A和附錄B分別介紹Android Studio集成開發環境的一些使用技巧和Android的常用編碼規范。
另外,本書還提供了豐富的教學資源,包括項目源代碼、課件資源、習題答案等,可以到華信教育資源網(www.hxedu.com.cn)免費下載使用。
本書的參考學時為72學時,其中各任務的學時分配推薦如下:
序 號 任 務 推 薦 學 時
理 論 實 踐
0 任務0 學生空間App項目總覽 1 1
1 任務1 開啟學生空間App的開發之旅 2 2
2 任務2 學生空間App的基本界面設計 6 8
3 任務3 學生空間App的界面優化 4 4
4 任務4 學生空間App的主界面設計 4 6
5 任務5 學生空間App的列表信息的展示 6 6
6 任務6 學生空間App的廣播和服務 4 4
7 任務7 學生空間App的數據存取及共享 4 4
8 任務8 學生空間App的高級控件的應用 2 4
合計: 33
39
本書可以作為應用型本科和高職院校的計算機及相關專業的Android開發技術課程的教材,也可作為Android應用開發初學者的自學用書和參考用書。
本書是“十二五”江蘇省高等學校重點教材(編號:2015-2-093),全部由一線任課教師執筆,由南京工業職業技術學院胡光永、南京工業職業技術學院查英華擔任主編,其他參編成員包括南京工業職業技術學院的張以利、王辰、曹曉燕、郭朝霞、夏立玲和張振峰老師,南京富士通南大軟件技術有限公司的工程師們進行了大量的代碼驗證工作。在本書編寫過程中,編者得到了電子工業出版社的大力支持,南京信息職業技術學院聶明、南京交通職業技術學院吳兆明、常州信息職業技術學院楊誠、南京工業職業技術學院丁龍剛等老師為本書提出了很多建設性的建議,在此謹向他們致以誠摯的謝意。
由于Android開發技術發展迅速,加之編者水平有限,書中難免存在疏漏和不足之處,懇請廣大讀者批評指正,有任何意見和建議請發郵件至編者郵箱。
編 者
胡光永,男,1974.5,碩士。現任南京工業職業技術學院計算機與軟件學院 院長,教師,副教授。長期從事軟件工程、移動互聯網應用技術開發和應用工作。近5年參與國家自然科學基金項目1項,主持市廳級課題2項,2014年獲江蘇省六大高峰人才項目資助;以**作者發表論文6篇,其中核心期刊2篇;社會服務項目累計到賬金額20余萬元。2013年獲江蘇省教學成果一等獎(排名1),2014年獲***教學成果二等獎(排名2),指導學生獲全國職業院校移動開發賽項一等獎等多項獲獎。
任務T0 學生空間App項目總覽 1
0.1.1 學生空間App項目背景 1
0.1.2 學生空間App項目概述 1
任務T1 開啟學生空間App的開發之旅 4
任務T1-1 什么是Android 4
任務目標 4
任務分析 4
知識準備 5
1.1.1 Android系統概述 5
1.1.2 Android的歷史與發展 5
1.1.3 Android體系架構及Dalvik 6
1.1.4 Android版本 9
1.1.5 Android開發環境搭建 10
1.1.6 Android模擬器及其使用 12
1.1.7 Android Market 14
任務實戰 15
技能訓練 18
任務T1-2 認識Android應用的結構 19
任務目標 19
知識準備 19
1.2.1 Android應用的目錄結構 19
1.2.2 ADT常用窗口 23
技能訓練 26
任務T2 學生空間App的界面設計 27
任務T2-1 基本控件(一) 27
任務目標 27
任務分析 27
知識準備 28
2.1.1 界面控件的基本結構 28
2.1.2 TextView控件 29
2.1.3 EditText控件 30
2.1.4 Button控件 30
任務實戰 31
技能訓練 33
任務T2-2 基本控件(二) 35
任務目標 35
任務分析 35
知識準備 36
2.2.1 ImageView控件 36
2.2.2 CheckBox控件 38
2.2.3 RadioButton控件 40
任務實戰 41
技能訓練 44
任務T2-3 觸屏與鍵盤事件 45
任務目標 45
任務分析 45
知識準備 45
2.3.1 Android常見事件 45
2.3.2 onTouchEvent事件 46
2.3.3 鍵盤事件 46
任務實戰 47
技能訓練 49
任務T2-4 菜單與消息通知 50
任務目標 50
任務分析 50
知識準備 51
2.4.1 菜單 51
2.4.2 對話框 53
2.4.3 消息通知 54
任務實戰 57
技能訓練 60
任務T3 學生空間App的界面優化 62
任務T3-1 學生空間App的界面設計 62
任務目標 62
任務分析 62
知識準備 63
3.1.1 LinearLayout布局 63
3.1.2 FrameLayout布局 65
3.1.3 RelativeLayout布局 66
3.1.4 TableLayout布局 70
3.1.5 GridLayout布局 70
任務實戰 71
技能訓練 75
任務T3-2 常用資源深入 77
任務目標 77
知識準備 77
3.2.1 Android資源目錄結構 78
3.2.2 樣式 78
3.2.3 Drawable資源 81
3.2.4 動態增加layout資源 83
技能訓練 84
任務T4 學生空間App的主界面設計 88
任務T4-1 深入理解Activity 88
任務目標 88
任務分析 88
知識準備 89
4.1.1 多Activity間的跳轉 89
4.1.2 多Activity間的數據傳遞 90
4.1.3 深入Intent應用 92
4.1.4 Activity生命周期進階 94
任務實戰 96
技能訓練 97
任務T4-2 Fragment 98
任務目標 98
任務分析 98
知識準備 99
4.2.1 Fragment簡介 99
4.2.2 Fragment生命周期 102
任務實戰 103
技能訓練 105
任務T5 學生空間App列表信息的展示 106
任務T5-1 ListView控件和Adapter 106
任務目標 106
任務分析 106
知識準備 107
5.1.1 ListView控件 107
5.1.2 Adapter 109
任務實戰 114
技能訓練 117
任務T5-2 Spinner控件和GridView控件 119
任務目標 119
任務分析 119
知識準備 120
5.2.1 Spinner控件 120
5.2.2 GridView控件 125
任務實戰 127
技能訓練 132
任務T6 Android的廣播和服務 133
任務T6-1 Android廣播接收器 133
任務目標 133
任務分析 133
知識準備 134
6.1.1 Android廣播機制 134
6.1.2 Android廣播的實現 135
任務實戰 136
技能訓練 137
任務T6-2 Android服務 138
任務目標 138
任務分析 138
知識準備 139
6.2.1 Service的基本概念 139
6.2.2 Service的生命周期 139
6.2.3 使用Service的方法 140
6.2.4 訪問系統核心服務 141
任務實戰 142
技能訓練 144
任務T7 學生空間App的數據存取及共享 146
任務T7-1 SharedPreferences存儲 146
任務目標 146
任務分析 146
知識準備 147
7.1.1 SharedPreferences的應用場景 147
7.1.2 SharedPreferences的使用方法 147
任務實戰 149
技能訓練 150
任務T7-2 文件存儲 151
任務目標 151
任務分析 151
知識準備 152
7.2.1 文件存儲 152
7.2.2 內部存儲 152
7.2.3 外部存儲 154
任務實戰 156
技能訓練 158
任務T7-3 SQLite存儲 159
任務目標 159
任務分析 159
知識準備 160
7.3.1 SQLite的基本概念 160
7.3.2 Android中SQLite的使用 160
7.3.3 SQLiteOpenHelper 161
任務實戰 162
技能訓練 169
任務T7-4 ContentProvider數據共享 170
任務目標 170
任務分析 170
知識準備 171
7.4.1 ContentProvider概述 171
7.4.2 Uri類 172
7.4.3 ContentResolver類 173
任務實戰 174
技能訓練 177
任務T8 學生空間App的高級控件的應用 178
任務T8-1 Snackbar 178
任務目標 178
任務分析 178
知識準備 179
8.1.1 Snackbar的應用場景 179
8.1.2 Snackbar的使用方法 179
8.1.3 Snackbar的使用示例 179
任務實戰 181
技能訓練 182
任務T8-2 FloatingActionButton 183
任務目標 183
任務分析 183
知識準備 183
8.2.1 FloatingActionButton的使用方法 183
8.2.2 FloatingActionButton的使用示例 184
任務實戰 186
技能訓練 187
附錄A Android Studio開發環境的應用技巧 188
附錄B Android編碼規范 198
參考文獻 202