天天看點

第一行代碼第二版目錄

第一行代碼第二版目錄

本文說明:為了讓安卓工程師掃盲、回憶過去

第1章 開始啟程——你的第一行Android代碼  1

1.1 了解全貌——Android王國簡介  2

1.1.1 Android系統架構  2

1.1.2 Android已釋出的版本  3

1.1.3 Android應用開發特色  4

1.2 手把手帶你搭建開發環境  5

1.2.1 準備所需要的工具  5

1.2.2 搭建開發環境  5

1.3 建立你的第一個Android項目  9

1.3.1 建立HelloWorld項目  9

1.3.2 啟動模拟器  12

1.3.3 運作HelloWorld  15

1.3.4 分析你的第一個Android程式  16

1.3.5 詳解項目中的資源  22

1.3.6 詳解build.gradle檔案  23

1.4 前行必備——掌握日志工具的使用  26

1.4.1 使用Android的日志工具Log  26

1.4.2 為什麼使用Log而不使用System.out  27

1.5 小結與點評  29

第2章 先從看得到的入手——探究活動  30

2.1 活動是什麼  30

2.2 活動的基本用法  30

2.2.1 手動建立活動  31

2.2.2 建立和加載布局  32

2.2.3 在AndroidManifest檔案中注冊  35

2.2.4 在活動中使用Toast  37

2.2.5 在活動中使用Menu  38

2.2.6 銷毀一個活動  40

2.3 使用Intent在活動之間穿梭  41

2.3.1 使用顯式Intent  41

2.3.2 使用隐式Intent  44

2.3.3 更多隐式Intent的用法  46

2.3.4 向下一個活動傳遞資料  50

2.3.5 傳回資料給上一個活動  51

2.4 活動的生命周期  53

2.4.1 傳回棧  53

2.4.2 活動狀态  54

2.4.3 活動的生存期  55

2.4.4 體驗活動的生命周期  56

2.4.5 活動被回收了怎麼辦  62

2.5 活動的啟動模式  63

2.5.1 standard  64

2.5.2 singleTop  65

2.5.3 singleTask  67

2.5.4 singleInstance  68

2.6 活動的最佳實踐  71

2.6.1 知曉目前是在哪一個活動  71

2.6.2 随時随地退出程式  72

2.6.3 啟動活動的最佳寫法  74

2.7 小結與點評  75

第3章 軟體也要拼臉蛋——UI開發的點點滴滴  76

3.1 如何編寫程式界面  76

3.2 常用控件的使用方法  77

3.2.1 TextView  77

3.2.2 Button  80

3.2.3 EditText  82

3.2.4 ImageView  86

3.2.5 ProgressBar  88

3.2.6 AlertDialog  91

3.2.7 ProgressDialog  93

3.3 詳解4種基本布局  94

3.3.1 線性布局  94

3.3.2 相對布局  100

3.3.3 幀布局  103

3.3.4 百分比布局  105

3.4 系統控件不夠用?建立自定義控件  108

3.4.1 引入布局  109

3.4.2 建立自定義控件  111

3.5 最常用和最難用的控件——ListView  113

3.5.1 ListView的簡單用法  114

3.5.2 定制ListView的界面  115

3.5.3 提升ListView的運作效率  119

3.5.4 ListView的點選事件  120

3.6 更強大的滾動控件——RecyclerView  122

3.6.1 RecyclerView的基本用法  122

3.6.2 實作橫向滾動和瀑布流布局  125

3.6.3 RecyclerView的點選事件  130

3.7 編寫界面的最佳實踐  132

3.7.1 制作Nine-Patch圖檔  132

3.7.2 編寫精美的聊天界面  135

3.8 小結與點評  141

第4章 手機平闆要兼顧——探究碎片  142

4.1 碎片是什麼  142

4.2 碎片的使用方式  144

4.2.1 碎片的簡單用法  144

4.2.2 動态添加碎片  147

4.2.3 在碎片中模拟傳回棧  150

4.2.4 碎片和活動之間進行通信  151

4.3 碎片的生命周期  151

4.3.1 碎片的狀态和回調  151

4.3.2 體驗碎片的生命周期  153

4.4 動态加載布局的技巧  156

4.4.1 使用限定符  156

4.4.2 使用最小寬度限定符  159

4.5 碎片的最佳實踐——一個簡易版的新聞應用  160

4.6 小結與點評  169

第5章 全局大喇叭——詳解廣播機制  170

5.1 廣播機制簡介  170

5.2 接收系統廣播  171

5.2.1 動态注冊監聽網絡變化  171

5.2.2 靜态注冊實作開機啟動  174

5.3 發送自定義廣播  177

5.3.1 發送标準廣播  177

5.3.2 發送有序廣播  179

5.4 使用本地廣播  183

5.5 廣播的最佳實踐——實作強制下線功能  185

5.6 Git時間——初識版本控制工具  192

5.6.1 安裝Git  192

5.6.2 建立代碼倉庫  193

5.6.3 送出本地代碼  195

5.7 小結與點評  195

第6章 資料存儲全方案——詳解持久化技術  196

6.1 持久化技術簡介  196

6.2 檔案存儲  197

6.2.1 将資料存儲到檔案中  197

6.2.2 從檔案中讀取資料  201

6.3 SharedPreferences存儲  203

6.3.1 将資料存儲到SharedPreferences中  203

6.3.2 從SharedPreferences中讀取資料  206

6.3.3 實作記住密碼功能  208

6.4 SQLite資料庫存儲  211

6.4.1 建立資料庫  211

6.4.2 更新資料庫  216

6.4.3 添加資料  219

6.4.4 更新資料  222

6.4.5 删除資料  224

6.4.6 查詢資料  225

6.4.7 使用SQL操作資料庫  228

6.5 使用LitePal操作資料庫  229

6.5.1 LitePal簡介  229

6.5.2 配置LitePal  230

6.5.3 建立和更新資料庫  231

6.5.4 使用LitePal添加資料  236

6.5.5 使用LitePal更新資料  237

6.5.6 使用LitePal删除資料  240

6.5.7 使用LitePal查詢資料  241

6.6 小結與點評  243

第7章 跨程式共享資料——探究内容提供器  244

7.1 内容提供器簡介  244

7.2 運作時權限  245

7.2.1 Android權限機制詳解  245

7.2.2 在程式運作時申請權限  249

7.3 通路其他程式中的資料  254

7.3.1 ContentResolver的基本用法  254

7.3.2 讀取系統聯系人  256

7.4 建立自己的内容提供器  260

7.4.1 建立内容提供器的步驟  261

7.4.2 實作跨程式資料共享  265

7.5 Git時間——版本控制工具進階  275

7.5.1 忽略檔案  275

7.5.2 檢視修改内容  276

7.5.3 撤銷未送出的修改  278

7.5.4 檢視送出記錄  279

7.6 小結與點評  280

第8章 豐富你的程式——運用手機多媒體  281

8.1 将程式運作到手機上  281

8.2 使用通知  283

8.2.1 通知的基本用法  283

8.2.2 通知的進階技巧  289

8.2.3 通知的進階功能  291

8.3 調用攝像頭和相冊  293

8.3.1 調用攝像頭拍照  294

8.3.2 從相冊中選擇照片  298

8.4 播放多媒體檔案  303

8.4.1 播放音頻  303

8.4.2 播放視訊  307

8.5 小結與點評  311

第9章 看看精彩的世界——使用網絡技術  312

9.1 WebView的用法  312

9.2 使用HTTP協定通路網絡  314

9.2.1 使用HttpURLConnection  315

9.2.2 使用OkHttp  319

9.3 解析XML格式資料  321

9.3.1 Pull解析方式  324

9.3.2 SAX解析方式  326

9.4 解析JSON格式資料  329

9.4.1 使用JSONObject  330

9.4.2 使用GSON  331

9.5 網絡程式設計的最佳實踐  334

9.6 小結與點評  338

第10章 背景默默的勞動者——探究服務  339

10.1 服務是什麼  339

10.2 Android多線程程式設計  340

10.2.1 線程的基本用法  340

10.2.2 在子線程中更新UI  341

10.2.3 解析異步消息處理機制  345

10.2.4 使用AsyncTask  347

10.3 服務的基本用法  349

10.3.1 定義一個服務  349

10.3.2 啟動和停止服務  352

10.3.3 活動和服務進行通信  355

10.4 服務的生命周期  359

10.5 服務的更多技巧  359

10.5.1 使用前台服務  359

10.5.2 使用IntentService  361

10.6 服務的最佳實踐——完整版的下載下傳示例  365

10.7 小結與點評  378

第11章 Android特色開發——基于位置的服務  379

11.1 基于位置的服務簡介  379

11.2 申請API Key  380

11.3 使用百度定位  384

11.3.1 準備LBS SDK  384

11.3.2 确定自己位置的經緯度  386

11.3.3 選擇定位模式  391

11.3.4 看得懂的位置資訊  393

11.4 使用百度地圖  395

11.4.1 讓地圖顯示出來  395

11.4.2 移動到我的位置  397

11.4.3 讓“我”顯示在地圖上  400

11.5 Git時間——版本控制工具的進階用法  402

11.5.1 分支的用法  403

11.5.2 與遠端版本庫協作  404

11.6 小結與點評  406

第12章 最佳的UI體驗——MaterialDesign實戰  407

12.1 什麼是Material Design  407

12.2 Toolbar  408

12.3 滑動菜單  415

12.3.1 DrawerLayout  415

12.3.2 NavigationView  418

12.4 懸浮按鈕和可互動提示  423

12.4.1 FloatingActionButton  424

12.4.2 Snackbar  427

12.4.3 CoordinatorLayout  428

12.5 卡片式布局  430

12.5.1 CardView  431

12.5.2 AppBarLayout  437

12.6 下拉重新整理  440

12.7 可折疊式标題欄  443

12.7.1 CollapsingToolbarLayout  443

12.7.2 充分利用系統狀态欄空間  453

12.8 小結與點評  456

第13章 繼續進階——你還應該掌握的進階技巧  457

13.1 全局擷取Context的技巧  457

13.2 使用Intent傳遞對象  461

13.2.1 Serializable方式  461

13.2.2 Parcelable方式  463

13.3 定制自己的日志工具  464

13.4 調試Android程式  466

13.5 建立定時任務  469

13.5.1 Alarm機制  469

13.5.2 Doze模式  471

13.6 多視窗模式程式設計  472

13.6.1 進入多視窗模式  473

13.6.2 多視窗模式下的生命周期  475

13.6.3 禁用多視窗模式  479

13.7 Lambda表達式  481

13.8 總結  485

第14章 進入實戰——開發酷歐天氣  486

14.1 功能需求及技術可行性分析  486

14.2 Git時間——将代碼托管到GitHub上  489

14.3 建立資料庫和表  494

14.4 周遊全國省市縣資料  499

14.5 顯示天氣資訊  509

14.5.1 定義GSON實體類  509

14.5.2 編寫天氣界面  514

14.5.3 将天氣顯示到界面上  520

14.5.4 擷取必應每日一圖  526

14.6 手動更新天氣和切換城市  532

14.6.1 手動更新天氣  532

14.6.2 切換城市  535

14.7 背景自動更新天氣  540

14.8 修改圖示和名稱  542

14.9 你還可以做的事情  543

第15章 最後一步——将應用釋出到360應用商店  545

15.1 生成正式簽名的APK檔案  545

15.1.1 使用Android Studio生成  546

15.1.2 使用Gradle生成  548

15.1.3 生成多管道APK檔案  551

15.2 申請360開發者賬号  554

15.3 釋出應用程式  556

15.4 嵌入廣告進行盈利  560

15.4.1 注冊騰訊廣告聯盟賬号  560

15.4.2 建立媒體和廣告位  562

15.4.3 接入廣告SDK  564

15.4.4 重新釋出應用程式  569

15.5 結束語  570

繼續閱讀