Android APP開發實戰——從規划到上線全程詳解


Android APP開發實戰——從規划到上線全程詳解

1 開發APP前的准備事項

1.1 APP適配的硬件

1.2 APP橫豎屏界面的選擇

1.3 APP適配的操作系統版本

1.4 APP適配的屏幕尺寸

1.5 APP開發樣機的選擇

1.6 APP內置的圖片資源

2 APP產品和設計人員的工作

2.1 編寫產品文檔時的注意事項

2.2 設計效果圖時的注意事項

2.3 APP的切圖工作

2.4 點9圖簡介

2.4.1 點9圖
2.4.2 制作工具
2.4.3 注意事項

2.5 產品和設計文檔的版本管理

3 APP端和服務器端的協作

3.1 接口設計注意事項

3.2 安全方案

3.2.1 HTTP方法的使用
3.2.2 使用時間戳參數
3.2.3 數據加密
3.2.4 密碼的處理
3.2.5 數據的存儲

3.3 登錄方式

3.3.1 賬號+密碼
3.3.2 賬號+密碼+驗證碼

3.4 登錄狀態的維持

3.4.1 利用Token實現
3.4.2 利用Cookie實現
3.4.3 利用賬號和密碼實現

3.5 數據同步方案

3.5.1 文件的同步
3.5.2 地址數據的同步
3.5.3 非地址數據的同步

3.6 業務邏輯的實現

3.7 接口文檔的維護

4 字符編碼

4.1 字符集

1.ASCII及其擴展字符集
2.ISO-8859-1字符集
3.GB2312字符集
4.BIG5字符集
5.GBK字符集
6.GB18030字符集
7.UCS字符集
8.UNICODE字符集

4.2 字符編碼

1.UTF-8
2.UTF-16
3.UTF-8、UTF-16和UTF-32的優缺點

4.3 字節序

5 TCP/IP概述

5.1 協議簡介

5.2 TCP和UDP的區別

5.2.1 面向連接服務
5.2.2 無連接服務

6 HTTP網絡請求

6.1 HTTP簡介

6.1.1 協議
6.1.2 HTTP方法
1.方法
2.GET與POST的區別
6.1.3 HTTP消息
1.請求消息
2.響應消息
6.1.4 HTTP頭字段介紹
1.通用頭字段
2.請求頭字段
3.響應頭字段
4.實體頭字段
6.1.5 Keep-Alive模式介紹
6.1.6 HTTP狀態碼簡介

6.2 Cookie簡介

6.2.2 Cookie的設置和發送

6.3 Session簡介

6.3.1 Session
6.3.2 SessionID

6.4 短連接與長連接

6.4.1 短連接
6.4.2 長連接
6.4.3 使用場景
1.短連接
2.長連接

6.5 Volley網絡庫簡介

6.5.1 Volley網絡庫
6.5.2 Volley網絡庫的使用

7 HTTPS概述

7.1 協議簡介

7.2 HTTPS的認證類型

7.2.1 單向認證
7.2.2 雙向認證

8 加密簡介

8.1 對稱加密

8.2 非對稱加密

8.3 MD5簡介

9 設計模式

9.1 設計模式簡介

9.2 面向對象設計原則

9.3 設計模式類別

9.3.1 單例模式
9.3.2 Builder模式
9.3.3 原型模式
9.3.4 工廠方法模式
9.3.5 策略模式
9.3.6 狀態模式
9.3.7 命令模式
9.3.8 觀察者模式
9.3.9 備忘錄模式
9.3.10 迭代器模式
9.3.11 模板方法模式
9.3.12 代理模式
9.3.13 組合模式
9.3.14 適配器模式
9.3.15 外觀模式
9.3.16 橋接模式

10 架構模式

10.1 MVC架構

10.2 MVP架構

10.3 MVVM架構

10.4 MVP+VM架構

11 APP架構設計

11.1 基本原則

1.逐層調用原則及單向調用原則
2.針對接口編程,而不是針對實現編程
3.依賴倒置原則
4.封裝變化原則
5.開放—關閉原則
6.單一歸屬原則

11.2 分層設計

11.2.1 三層架構
11.2.2 View層設計
11.2.3 業務邏輯層設計(Presenter)
11.2.4 數據訪問層設計(Model)
11.2.5 功能模塊設計
1.實體類模塊
2.輔助類模塊設計
3.三方功能模塊設計

11.3 層間通信

11.3.1 通信方式
11.3.2 交互模式

11.4 跨業務模塊調用

11.4.1 跨業務模塊調用簡介
11.4.2 跨業務模塊調用方案

12 Activity概述

12.1 Activity啟動方式

12.1.1 啟動模式
12.1.2 FLAG介紹

12.2 Activity消息路由

12.2.1 設計思路
12.2.2 具體實現

12.3 Activity數據的保存和恢復

12.3.1 臨時保存數據和恢復數據
12.3.2 持久保存數據和恢復數據

12.4 Activity數據傳遞

12.4.1 數據傳遞媒介
1.通過Intent傳遞數據
2.使用全局對象傳遞數據
3.使用單例對象傳遞數據
4.使用靜態變量傳遞數據
5.使用持久化方式傳遞數據
6.使用剪切板傳遞數據
12.4.2 數據傳遞機制

12.5 BaseActivity設計

12.5.1 應用級別的BaseActivity設計
12.5.2 功能級別的BaseActivity設計
1.定位功能的BaseActivity
2.動畫功能和視屏播放功能的BaseActivity
3.具有編輯功能的BaseActivity

13 Service概述

13.1 Service的不同形式

13.2 Service與線程

13.3 IntentService

13.4 前台服務

13.5 服務的生命周期

1.啟動服務
2.綁定服務

14 Broadcast概述

14.1 廣播機制簡介

14.2 BroadcastReceiver

14.2.1 靜態注冊
14.2.2 動態注冊

14.3 廣播類型

14.3.1 普通廣播(Normal Broadcast)
14.3.2 系統廣播(System Broadcast)
14.3.3 有序廣播(Ordered Broadcast)
14.3.4 局部廣播(Local Broadcast)

14.4 廣播的安全性

15 ContentProvider概述

16 Fragment概述

16.1 Fragment簡介

16.2 Fragment的創建

16.3 Fragment的懶加載

16.4 Fragment的數據保存和恢復

16.4.1 臨時保存數據和恢復
16.4.2 持久保存數據和恢復

16.5 Fragment的使用場景

17 Android權限

17.1 權限分類

17.1.1 Normal Permissions
17.1.2 Dangerous Permissions

17.2 動態權限申請

17.3 兼容性問題

18 Android動畫

18.1 幀動畫

18.2 View動畫

18.3 屬性動畫簡介

18.3.1 屬性動畫
18.3.2 使用示例
1.純代碼方式實現動畫
2.代碼和XML文件結合實現動畫

18.4 Activity切換動畫

19 圖片類型

19.1 位圖簡介

19.1.1 位圖
19.1.2 WebP格式

19.2 矢量圖簡介

20 Android矢量圖的使用

20.1 功能簡介

20.2 兼容性處理

20.3 Vector語法簡介

1.Path指令
2.使用原則

20.4 Vector靜態圖的使用

1.ImageView中使用矢量圖
2.TextView和Button中使用矢量圖

20.5 Vector動態圖的使用

20.5.1 功能實現
20.5.2 動態Vector兼容性問題

21 Android異常

21.1 異常分類

1.checked exception
2.unchecked exception

21.2 異常處理

21.2.1 使用try…catch…處理異常
21.2.2 使用UncaughtExceptionHandler處理異常
21.2.3 ANR異常的處理

21.3 注意事項

22 Android的本地存儲

22.1 內部存儲(Internal Storage)

22.1.1 非緩存文件的處理
22.1.2 緩存文件的處理

22.2 外部存儲(External Storage)

22.2.1 外部公共存儲
22.2.2 外部私有存儲
1.非緩存文件的處理
2.緩存文件的處理
22.2.3 使用作用域目錄訪問

23 ABI管理

23.1 ABI簡介

23.2 支持的ABI

23.3 為特定ABI生成代碼

23.4 Android系統的ABI管理

23.5 Android系統ABI支持

23.6 安裝時自動解壓縮原生代碼

24 ProGuard混淆

24.1 ProGuard簡介

24.2 ProGuard指令介紹

24.3 ProGuard注意事項

24.4 ProGuard相關文件

25 Android Studio使用技巧

25.1 編譯打包

25.2 功能宏的使用

25.3 集成SO文件

25.4 模板的定制使用

26 APP緩存處理

26.1 緩存簡介

26.2 緩存控制

1.服務器端控制緩存
2.客戶端控制緩存

26.3 緩存實現

1.緩存數據的保存
2.緩存數據的更新

26.4 WebView緩存

26.5 緩存注意事項

26.6 清除數據和清除緩存的區別

27 APP性能優化

27.1 減少APP所占空間大小

27.1.1 減少圖片所占空間大小
27.1.2 減少音頻文件所占空間大小
27.1.3 減少代碼所占空間大小
27.1.4 使用APK Analyzer分析APP
1.APK Analyzer簡介
2.查看文件和大小信息
3.查看AndroidManifest.xml
4.查看代碼和資源實體
5.查看DEX文件
6.比較APK文件
27.1.5 利用工具減少APP大小

27.2 減少APP使用的網絡流量

27.3 內存優化

27.3.1 節省內存
27.3.2 防止內存泄露
27.3.3 防止OOM

27.4 UI性能優化

27.5 電量優化

27.6 運行速度優化

27.7 性能優化工具

27.7.1 Android Studio自帶工具
27.7.2 Android系統工具
27.7.3 三方工具

28 Log功能設計

28.1 Log輸出控制

28.2 注意事項

28.3 Log數據的格式化

28.4 使用AOP技術輸出Log

28.4.1 AOP簡介
28.4.2 AOP技術的使用

29 APP版本管理

30 APP版本更新功能設計

30.1 功能項

30.1.1 服務器端功能
30.1.2 APP端功能

30.2 APP和服務器交互

31 APP常用功能設計

31.1 啟動界面設計

31.1.1 啟動界面白屏解決方案
31.1.2 啟動界面屏蔽返回按鍵

31.2 首頁設計

31.3 登錄功能設計

31.4 商品詳情界面設計

31.5 購物車功能設計

31.6 商品展示界面功能設計

31.7 個人中心界面功能設計

31.8 搜索功能設計

31.9 WebView功能設計

31.10 出錯提示功能設計

31.11 界面內容隱藏和顯示設計

31.12 提示功能設計

31.12.1 三種控件簡介
31.12.2 AlertDialog介紹
31.12.3 Toast介紹
31.12.4 Snackbar介紹

31.13 定期執行任務的功能設計

31.13.1 JobScheduler介紹
1.onStartJob 方法
2.jobFinished方法
3.onStopJob方法
31.13.2 JobScheduler的替代方案
31.13.3 注意事項

31.14 全屏模式的功能設計

31.14.1 Lean Back
31.14.2 Immersive

31.15 開機自啟動的功能設計

31.15.1 普通模式
31.15.2 直接啟動模式
31.15.3 示例代碼

31.16 APP快捷圖標的功能設計

31.16.1 簡介
31.16.2 靜態快捷圖標
31.16.3 動態快捷圖標

31.17 針對Android7.0及更高版本的后台優化方案

31.17.1 對於CONNECTIVITY_ACTION 限制的解決方案
31.17.2 對於ACTION_NEW_PICTURE和ACTION_NEW_VIDEO的限制的解決方案

31.18 服務器接口的單元測試

31.18.1 單元測試
31.18.2 使用MockWebServer進行接口的單元測試

31.19 自動調整文字大小的TextView

31.19.1 Default方式
31.19.2 Granularity方式
31.19.3 Preset Sizes方式

32 代碼封裝

33 APP測試

1.兼容性測試

2.極限測試

3.網絡狀況測試

4.權限測試

5.橫豎屏模式測試

6.性能測試

7.審核測試

34 項目管理

34.1 項目團隊成員

34.2 需求處理

34.3 進度計划

35 Git使用

35.1 Git工具簡介

35.1.1 客戶端工具
35.1.2 服務器端工具

35.2 Git常用命令

35.3 使用Git的注意事項

思維導圖

Android APP開發實戰——從規划到上線全程詳解

防止博客圖床圖片失效,防止圖片源站外鏈:

http://www.processon.com/chart_image/5e5b3689e4b0d4dc8776d1e3.png)

思維導圖在線編輯鏈接:

https://www.processon.com/view/5e5b3689e4b0d4dc8776d1e0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM