本書以講述如何開發Android?智慧型移動設備和基於?8051?單片機晶片的智慧型設備進行通訊、控制和互動的設備兩端的應用程式為主要內容,同時也介紹了8051設備端硬體的設定和固件的開發。 本書共分三大部分。第一部分介紹Android應用程式開發;第二部分講述8051單片機晶片的介紹以及彙編和C語言開發;第三部分是結合兩者的內容,講述如何進一步在Android智慧型手機和基於8051單片機晶片的智慧型設備之間進行通訊、控制和互動的軟硬體開發。
內容簡介,目錄,
內容簡介
全書涵蓋了建立Android開發環境、基礎組件的使用、Android應用程式項目結構的分析、版面布局的分析、用戶接口組件、信息視窗與對話視窗、ListView接口組件的使用,應用程式重要組件(Activity活動、Broadcast?Receiver廣播接收、Service服務)、命令行的使用;Android藍牙與藍牙模組;專題案例講解則以發光二極體LED、七段顯示器、8X8點矩陣LED顯示器以及LCD液晶顯示器為例;內容由淺入深,方便學習與運用。最後,介紹了AT89S51刻錄原理,並介紹使用手機把HEX檔案的數據寫入AT89S51晶片。
目錄
第1章Android開發環境的建立及其基本使用方法 1
1.1安裝JDK 1
1.2ADTBundle的安裝 3
1.3Eclipse的使用基礎 6
1.3.1創建第一個HelloWorld程式 6
1.3.2Eclipse編輯程式文字設定 13
1.3.3模似器的建立與開啟 14
1.3.4 開啟USB調試 18
1.3.5 在模擬器或手機上運行HelloWorld項目 21
1.3.6 導入項目到Eclipse 23
1.3.7 在Eclipse中刪除項目 25
1.3.8 項目在Eclipse中調試 26
1.3.9 項目版本的問題 27
1.3.10 重新連線模擬器或手機 29
1.3.11 解決程式亂碼的問題 29
1.3.12 刪除不要的workspace 30
1.3.13 appcompat_v7的資源 31
第2章Android應用程式項目結構分析 32
2.1 src目錄 32
2.2 gen目錄 33
2.3 res/drawable目錄 34
2.4 res/values目錄 34
2.4.1 文字資源 34
2.4.2 顏色資源 35
2.4.3 格式資源 35
2.5.4 尺寸大小資源 38
2.4.5 多國語言資源 40
2.5 res/layout目錄 42
2.6 AndroidManifest.xml 43
第3章版面布局(Layout)分析 45
3.1 線性版面布局(LinearLayout) 45
3.1.1 LinearLayout常用屬性 45
3.1.2 修改版面布局 46
3.1.3 組件或版面拖曳 48
3.1.4 顯示屬性表 48
3.1.5 修改組件的屬性 49
3.2 框架版面布局(FrameLayout) 52
使用FrameLayout版面布局,拖動兩個ImageView分別放入兩張圖 52
3.3 相對版面布局(RelativeLayout) 54
3.4 表格版面布局(TableLayout) 57
3.5 格線版面布局(GridLayout) 60
3.6 絕對位置版面布局(AbsoluteLayout) 64
第4章用戶接口(UI)組件的使用 67
4.1 常用接口組件(TextView、EditText和Button) 68
4.1.1 TextView接口組件的使用 70
4.1.2 EditText接口組件的使用 70
4.1.3 Button接口組件的使用 71
4.2 Button按鈕組件與監聽事件 71
Button組件onClick(Viewv)的監聽事件設定模式 71
4.3 其他監聽事件 77
4.3.1 長按監聽事件 77
4.3.2 onTouch()監聽事件 79
4.3.3 Gesture手勢識別 82
4.4 CheckBox複選組件 85
範例示範 85
4.5 RadioGroupRadioButton單選組件 90
範例示範 91
4.6 ToggleButton按鈕組件 93
範例示範 94
4.7 SeekBar組件 96
第5章信息視窗與對話視窗 99
5.1 Toast顯示信息 99
5.2 對話視窗(AlertDialog) 103
5.2.1 無按鈕對話視窗AlertDialog 103
5.2.2 帶按鈕的對話視窗AlertDialog 105
5.3 日期與時間選擇器 107
5.3.1 DatePicker日期選擇器 108
5.3.2 TimePicker時間選擇器 110
5.4 日期與時間對話視窗 113
5.4.1 DatePickerDialog日期對話視窗 113
5.4.2 TimePickerDialog時間對話視窗 115
第6章ListView接口組件的使用 118
6.1 ListView組件與ListActivity類的使用 119
6.1.1 第一個範例:使用ListActivity搭配ArrayAdapter 119
6.1.2 第二個範例:使用ListActivity搭配SimpleAdapter 120
6.1.3 第三個範例:使用ListActivity搭配SimpleAdapter 121
6.2 ListView組件與Activity類的使用 123
6.2.1 第一個範例:使用Activity搭配ArrayAdapter 123
6.2.2 第二個範例:使用Activity搭配SimpleAdapter 124
6.3 ListView事件的處理 128
第一個範例:ListView事件的使用 128
第7章APP應用程式重要組件 132
7.1 Activity活動 132
7.1.1 Activity生命周期 132
7.1.2 Activity啟動第二個Activity 135
7.1.3 啟動可回傳數據的Activity 143
7.2 BroadcastReceiver廣播接收組件 148
7.2.1 SystemBroadcast:系統廣播 149
7.2.2 sendBroadcast:傳送廣播 151
7.2.3 registerReceiver:動態註冊廣播接收器 154
7.2.4 unregisterReceiver:註銷廣播接收器 156
7.2.5 BroadcastReceiver順序型廣播 158
7.2.6 registerReceiver順序關係 162
7.3 Service服務組件 166
7.3.1 Service被啟動服務與生命周期 166
7.3.2 Service被綁定(bind)服務 170
7.3.3 Service服務與Handler 173
7.3.4 Service與AIDL 177
第8章執行緒的使用 190
8.1 執行緒的Thread類 190
8.1.1 單個執行緒範例 191
8.1.2 兩個執行緒範例 192
8.1.3 兩個執行緒範例變數不會共享 193
8.2 執行緒實現Runnable界面 195
8.2.1 通過Runnable接口的單個執行緒範例 195
8.2.2 通過Runnable接口的兩個執行緒範例 196
8.3 執行緒Thread類與Handler的關係 197
8.3.1 執行緒Thread類與Handler的關係 198
8.3.2 通過Handler對象去執行與關閉Thread 202
8.4 Timer類的使用 206
Timer與TimerTask類使用的範例 206
第9章Android藍牙與藍牙模組 209
9.1 藍牙(Buletoooth)的基本概念 209
9.2 偵測手機藍牙設備與許可權的設定 210
9.3 藍牙設備的數據傳輸 218
第10章8051晶片簡介 225
10.1 單片機晶片簡介 225
10.1.1 8051晶片家族比較 225
10.1.2 程式存儲器分類 227
10.2 8051晶片引腳 227
10.3 8051晶片內部的暫存器 230
10.3.1 暫存器組 230
10.3.2 可按位定址的存儲器區 231
10.3.3 一般存儲器區 231
10.3.4 特殊功能的暫存器 231
10.3.5 ACC、B 232
10.3.6 程式狀態字PSW 232
10.3.7 堆疊指針SP 232
10.3.8 數據指針暫存器DPTR 233
10.3.9 SCON、SBUF 233
第11章8051彙編語言與C語言 234
11.1 8051彙編語言指令分類說明 234
11.1.1 數據複製指令 234
11.1.2 邏輯運算指令 237
11.1.3 算術運算指令 240
11.1.4 A暫存器特殊指令 245
11.1.5 堆疊指令 247
11.1.6 跳轉分支指令 247
11.1.7 比較跳轉分支指令 249
11.1.8 調用與返回指令 251
11.1.9 位運算指令 252
11.2 彙編程式開發過程 252
彙編語言編寫形式 253
11.3 8051C語言說明 258
11.3.1 C語言程式的基本結構 258
11.3.2 C語言變數名稱 259
11.3.3 C語言數據類型 259
11.3.4 C語言記憶體類型 262
11.3.5 C語言的運算符 262
11.3.6 C語言的流程控制 264
11.3.7 C語言數組的聲明 267
11.3.8 C語言函式(function)的聲明 268
11.3.9 C語言中斷函式(function)聲明 269
第12章串列傳輸 271
12.1 串列控制暫存器SCON的說明 272
12.2 串列傳輸緩衝器SBUF的說明 274
12.3 串列傳輸的工作模式 274
12.4 計時/計數器的設定 275
12.5 模式1波特率的設定 276
第13章發光二極體LED 278
13.1 發光二極體LED工作原理 278
13.2 送出一個數據到單片機晶片Port0的LED 279
13.3 由單片機晶片Port2的撥碼開關輸入一筆數據到手機里 288
13.4 設計一個程式由單片機晶片Port0的LED左右移 292
13.5 複選按鈕的套用 297
13.6 比較使用執行緒和不用執行緒的不同 305
13.7 使用執行緒隨時偵測單片機晶片Port2再把其值送到Port0 311
13.8 偵測單片機晶片Port2的位0 320
13.9 設定時間執行應用程式 326
13.10 使用單選按鈕改變LED左右移 334
第14章七段顯示器 341
14.1 七段顯示器工作原理 341
單一個七段顯示器的顯示方式 342
14.2 送出一個數據到單片機晶片Port2的七段顯示器 343
14.3 七段顯示器二位數的計數 351
14.4 七段顯示器四位數的計數 355
第15章8X8點陣LED顯示器 363
15.1 8X8點陣LED顯示器的工作原理 364
15.2 8×8點陣LED顯示器字形左右移 372
第16章LCD液晶顯示器 381
16.1 LCM模組結構 381
16.1.1 LCD引腳功能說明 382
16.1.2 LCM控制晶片內部暫存器的說明 383
16.1.3 LCM指令控制說明表 385
16.2 LCD基礎顯示的設定 386
16.3 LCD自創字形的顯示 394
16.4 LCD電子時鐘的顯示 402
16.5 LCD字元串左右移和LED的移動 410
第17章AT89S51刻錄與讀取 421
17.1 AT89S51刻錄原理 421
17.1.1 AT89S51串列刻錄引腳的使用說明 422
17.1.2 AT89S51串列刻錄指令的設定 422
17.2 兩個單片機晶片間程式刻錄與讀取 424
17.2.1 以彙編語言編寫刻錄數據程式 425
17.2.2 以C語言編寫刻錄數據程式 427
17.2.3 以C語言編寫讀取數據程式 430
17.3 手機刻錄一個LED向左移的程式 432
把檔案刻錄在AT89S51晶片里 432
17.4 隨地址全段區域刻錄程式的製作 456
17.5 讀取一段數據 465
17.6 讀取2048個位元組的數據 470