注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡計算機組織與體系結構App研發(fā)錄:架構設計、Crash分析和競品技術分析

App研發(fā)錄:架構設計、Crash分析和競品技術分析

App研發(fā)錄:架構設計、Crash分析和競品技術分析

定 價:¥59.00

作 者: 包建強 著
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 程序設計 計算機/網(wǎng)絡 移動開發(fā)

ISBN: 9787111516385 出版時間: 2015-10-01 包裝: 平裝
開本: 16開 頁數(shù): 303 字數(shù):  

內容簡介

  本書是作者多年App開發(fā)的經(jīng)驗總結,從App架構的角度,重點總結了Android應用開發(fā)中常見的實用技巧和疑難問題解決方法,為打造高質量App提供有價值的實踐指導,迅速提升應用開發(fā)能力和解決疑難問題的能力。本書涉及的問題有:Android基礎建設、網(wǎng)絡底層框架設計、緩存、網(wǎng)絡流量優(yōu)化、制定編程規(guī)范、模塊化拆分、Crash異常的捕獲與分析、持續(xù)集成、代碼混淆、App競品技術分析、項目管理和團隊建設等。本書以“問題/解決方案”的形式給出疑難問題的解決方案,同時結合示例代碼,深入剖析這些實用的編程技巧和模式,旨在幫助移動開發(fā)人員和管理人員提高編程效率,改進代碼質量,打造高質量的App。

作者簡介

暫缺《App研發(fā)錄:架構設計、Crash分析和競品技術分析》作者簡介

圖書目錄

序一
序二
序三
前言
第一部分 高效App框架設計與重構
第1章 重構,夜未眠
1.1 重新規(guī)劃Android項目結構
1.2 為Activity定義新的生命周期
1.3 統(tǒng)一事件編程模型
1.4 實體化編程
1.4.1 在網(wǎng)絡請求中使用實體
1.4.2 實體生成器
1.4.3 在頁面跳轉中使用實體
1.5 Adapter模板
1.6 類型安全轉換函數(shù)
1.7 本章小結
第2章 Android網(wǎng)絡底層框架設計
2.1 網(wǎng)絡低層封裝
2.1.1 網(wǎng)絡請求的格式
2.1.2 AsyncTask的使用和缺點
2.1.3 使用原生的ThreadPoolExecutor + Runnable + Handler
2.1.4 網(wǎng)絡底層的一些優(yōu)化工作
2.2 App數(shù)據(jù)緩存設計
2.2.1 數(shù)據(jù)緩存策略
2.2.2 強制更新
2.3 MockService
2.4 用戶登錄
2.4.1 登錄成功后的各種場景
2.4.2 自動登錄
2.4.3 Cookie過期的統(tǒng)一處理
2.4.4 防止黑客刷庫
2.5 HTTP頭中的奧妙
2.5.1 HTTP請求
2.5.2 時間校準
2.5.3 開啟gzip壓縮
2.6 本章小結
第3章 Android經(jīng)典場景設計
3.1 App圖片緩存設計
3.1.1 ImageLoader設計原理
3.1.2 ImageLoader的使用
3.1.3 ImageLoader優(yōu)化
3.1.4 圖片加載利器Fresco
3.2 對網(wǎng)絡流量進行優(yōu)化
3.2.1 通信層面的優(yōu)化
3.2.2 圖片策略優(yōu)化
3.3 城市列表的設計
3.3.1 城市列表數(shù)據(jù)
3.3.2 城市列表數(shù)據(jù)的增量更新機制
3.4 App與HTML5的交互
3.4.1 App操作HTML5頁面的方法
3.4.2 HTML5頁面操作App頁面的方法
3.4.3 App和HTML5之間定義跳轉協(xié)議
3.4.4 在App中內置HTML5頁面
3.4.5 靈活切換Native和HTML5頁面的策略
3.4.6 頁面分發(fā)器
3.5 消滅全局變量
3.5.1 問題的發(fā)現(xiàn)
3.5.2 把數(shù)據(jù)作為Intent的參數(shù)傳遞
3.5.3 把全局變量序列化到本地
3.5.4 序列化的缺點
3.5.5 如果Activity也被銷毀了呢
3.5.6 如何看待SharedPreferences
3.5.7 User是第一例外的全局變量
3.6 本章小結
第4章 Android命名規(guī)范和編碼規(guī)范
4.1 Android命名規(guī)范
4.2 Android編碼規(guī)范
4.3 統(tǒng)一代碼格式
4.4 本章小結
第二部分 App開發(fā)中的高級技巧
第5章 Crash異常收集與統(tǒng)計
5.1 異常收集
5.2 異常收集與統(tǒng)計
5.2.1 人工統(tǒng)計線上Crash數(shù)據(jù)
5.2.2 第一個線上Crash報表:Crash分類
5.2.3 第二個線上Crash報表:Crash去重
5.2.4 線上Crash的其他分析工作
5.3 本章小結
第6章 Crash異常分析
6.1 Java語法相關的異常
6.1.1 空指針
6.1.2 角標越界
6.1.3 試圖調用一個空對象的方法
6.1.4 類型轉換異常
6.1.5 數(shù)字轉換錯誤
6.1.6 聲明數(shù)組時長度為-1
6.1.7 遍歷集合同時刪除其中元素
6.1.8 比較器使用不當
6.1.9 當除數(shù)為0
6.1.10 不能隨便使用的asList
6.1.11 又有類找不到了(一):ClassNotFoundException
6.1.12 又有類找不到了(二):NoClassDefFoundError
6.2 Activity相關的異常
6.2.1 找不到Activity
6.2.2 不能實例化Activity
6.2.3 找不到Service
6.2.4 不能啟動BroadcastReceiver
6.2.5 startActivityForResult不能回傳
6.2.6 猴急的Fragment
6.3 序列化相關的異常
6.3.1 實體對象不支持序列化
6.3.2 序列化時未指定ClassLoader
6.3.3 反序列化時發(fā)現(xiàn)類找不到:被ProGuard混淆導致的崩潰
6.3.4 反序列化時發(fā)現(xiàn)類找不到:傳入畸形數(shù)據(jù)
6.3.5 反序列化時出錯
6.4 列表相關的異常
6.4.1 Adapter數(shù)據(jù)源變化但是沒通知ListView
6.4.2 ListView滾動時點擊刷新按鈕后崩潰
6.4.3 AbsListView的obtainView返回空指針
6.4.4 Adapter數(shù)據(jù)源變化但是沒調用notifyDataSetChanged
6.5 窗體相關的異常
6.5.1 窗口句柄泄露
6.5.2 View not attached to window manager
6.5.3 窗體在不恰當?shù)臅r候獲取了焦點
6.5.4 token null is not for an application
6.5.5 permission denied for this window type
6.5.6 is your activity running
6.5.7 添加窗體失敗
6.5.8 AlertDialog.resolveDialogTheme
6.5.9 The specif?ied child already has a parent
6.5.10 子線程不能修改UI
6.5.11 不能在子線程操作AlertDialog和Toast
6.6 資源相關的異常
6.6.1 Resources$NotFoundException
6.6.2 StackOverf?iowError
6.6.3 Unsatisf?iedLinkError
6.6.4 Inf?iateException之FileNotFoundException
6.6.5 Inf?iateException之缺少構造器
6.6.6 Inf?iateException之style與android:textStyle的區(qū)別
6.6.7 TransactionTooLargeException
6.7 系統(tǒng)碎片化相關的異常
6.7.1 NoSuchMethodError
6.7.2 RemoteViews
6.7.3 pointerIndex out of range
6.7.4 SecurityException之一:Intent中圖片太大
6.7.5 SecurityException之二:動態(tài)加載其他apk的activity
6.7.6 SecurityException之三:No permission to modify thread
6.7.7 view的getDrawingCache()返回null
6.7.8 DeadObjectException
6.7.9 Android 2.1不支持SSL
6.7.10 ViewFlipper引發(fā)的血案
6.7.11 ActivityNotFoundException
6.7.12 Android 2.2不支持xlargeScreens
6.7.13 Package manager has died
6.7.14 SpannableString與富文本字符串
6.7.15 Can not perform this action after onSaveInstanceState
6.7.16 Service Intent must be explicit
6.8 SQLite相關的異常
6.8.1 No transaction is active
6.8.2 忘記關閉Cursor
6.8.3 數(shù)據(jù)庫被鎖定
6.8.4 試圖再打開已經(jīng)關閉的對象
6.8.5 文件加密了或無數(shù)據(jù)庫
6.8.6 WebView中SQLLite緩存導致的崩潰
6.8.7 磁盤讀寫錯誤
6.8.8 android_metadata表不存在
6.8.9 android_metadata表中的locale字段
6.8.10 數(shù)據(jù)庫或磁盤滿了
6.9 不明覺厲的異常
6.9.1 內存溢出
6.9.2 Verify Failed
6.10 其他情況的異常
6.10.1 TimeoutException
6.10.2 JSON解析異常
6.10.3 JSONArray在初始化時為空
6.10.4 第三方SDK拋出的Crash
6.10.5 兩個不同類型的View有相同的id
6.10.6 LayoutInf?iater.from().inf?iate()使用不當導致的崩潰
6.10.7 ViewGroup中的玄機
6.10.8 Monkey點擊過快導致的崩潰
6.10.9 圖片縮放很多倍
6.10.10 圖片寬高為0
6.10.11 不能重復添加組件
6.11 本章小結
第7章 ProGuard技術詳解
7.1 ProGuard簡介
7.2 ProGuard工作原理
7.3 如何寫一個ProGuard文件
7.3.1 基本混淆
7.3.2 針對App的量身定制
7.3.3 針對第三方jar包的解決方案
7.4 其他注意事項
7.5 本章小結
第8章 持續(xù)集成
8.1 版本管理策略
8.1.1 三種版本管理策略
8.1.2 特殊情況的版本管理策略
8.2 使用Ant腳本打包
8.2.1 Android打包流程
8.2.2 打包時的注意事項
8.3 Monkey包的生成
8.4 自動打包
8.4.1 安裝和配置各種軟件
8.4.2 準備Ant打包腳本
8.4.3 配置CCNET
8.4.4 搭建IIS站點下載apk包
8.4.5 自動打包流程小結
8.5 批量打渠道包
8.5.1 基于apk包批量生成渠道包
8.5.2 基于代碼批量生成渠道包
8.6 Android發(fā)版流程
8.7 分類打渠道包
8.7.1 分門別類生成渠道包
8.7.2 批量上傳apk的兩種方式
8.8 靈活切換服務器
8.9 單元測試
8.10 本章小結
第9章 App競品技術分析
9.1 競品分析概述
9.1.1 App競品定義
9.1.2 競品分析要研究的幾個方向
9.1.3 競品分析與拿來主義
9.2 App安裝包的結構
9.2.1 Android安裝包的結構
9.2.2 iOS安裝包的結構
9.3 競品技術一瞥:開機速度
9.4 競品技術二瞥:HTML5頁面的打開速度
9.4.1 把HTML5頁面嵌入到Zip包中
9.4.2 Zip包的增量更新機制
9.4.3 制作Zip增量包
9.4.4 使用WebView預先加載HTML5并緩存到本地
9.5 競品技術三瞥:安裝包的大小
9.5.1 從幾件小事說起
9.5.2 安裝包為什么那么大
9.5.3 png和jpg的區(qū)別及使用場景
9.5.4 Splash、引導圖和背景圖
9.5.5 iOS的1倍圖、2倍圖和3倍圖
9.5.6 在iOS中進行圖片拉伸和旋轉
9.5.7 使用XML配置動畫
9.5.8 iOS使用storyboard還是xib
9.5.9 字體文件的學問
9.5.10 表情圖片打包下載
9.5.11 清除未使用圖片
9.5.12 Proguard不只是用來混淆的
9.5.13 在iOS中使用pdf格式的圖片
9.5.14 iOS的包永遠比Android包體積大嗎
9.5.15 從代碼層面減少iOS包的體積
9.6 競品技術四瞥:性能優(yōu)化
9.6.1 App自動選取第一服務器的策略
9.6.2 使用TCP+Protobuf
9.7 競品技術五瞥:數(shù)據(jù)采集工具
9.7.1 頁面跳轉器
9.7.2 打點統(tǒng)計
9.7.3 ABTest
9.8 競品技術六瞥:熱修補
9.8.1 Native頁面和HTML5頁面的相互切換
9.8.2 在iOS中使用腳本編程
9.9 競品技術七瞥:曲徑通幽
9.9.1 一切皆可配置
9.9.2 App后門
9.9.3 Android包中META-INF目錄的妙用
9.9.4 classes.dex的拆與合
9.10 競品技術八瞥:模塊化拆分
9.10.1 iOS資源拆分與模塊化
9.10.2 Android模塊化拆分
9.11 競品技術九瞥:第三方SDK
9.11.1 HTML5篇
9.11.2 iOS篇
9.11.3 Android篇
9.11.4 其他
9.12 競品技術十瞥:版本策略與App彩蛋
9.12.1 版本策略
9.12.2 App彩蛋
9.13 本章小結
第三部分 項目管理和團隊建設
第10章 項目管理決定了開發(fā)速度
10.1 項目管理中的三駕馬車
10.1.1 為什么不能沒有測試團隊
10.1.2 產(chǎn)品經(jīng)理應做的事
10.1.3 開發(fā)人員的喜怒哀樂
10.1.4 項目經(jīng)理的職責
10.2 優(yōu)化團隊結構,讓敏捷流程跑得更快
10.2.1 平行模式還是垂直模式
10.2.2 讓HTML5站點和MobileAPI的進度提前一個迭代
10.2.3 如何進行模塊化分工
10.3 App敏捷開發(fā)流程
10.3.1 四周時間的開發(fā)流程
10.3.2 兩周時間的開發(fā)流程
10.3.3 一周時間的開發(fā)流程
10.3.4 即時更新策略
10.4 項目經(jīng)理的百寶箱
10.4.1 項目經(jīng)理的任務評估表
10.4.2 貼小紙條的藝術
10.4.3 敏捷迭代中的會議紀要
10.4.4 開站例會的技巧
10.4.5 如何確保項目不延期
10.4.6 迭代風險管理
10.5 迭代中的測試工作
10.5.1 冒煙測試
10.5.2 探索性測試
10.5.3 Monkey測試
10.6 高層對敏捷流程的干預
10.6.1 重構與產(chǎn)品需求的平衡
10.6.2 提高效率,拒絕6×12
10.6.3 無線部門的座位安排
10.6.4 靜時
10.7 本章小結
第11章 日常工作中的問題解決
11.1 使用二分法排查問題
11.2 找到能穩(wěn)定重現(xiàn)問題的人
11.3 小流量包
11.4 建立全國范圍的測試群
11.5 如何與用戶溝通
11.6 日志與App性能
11.7 從新人入職作業(yè)入手
11.8 本章小結
第12章 無線團隊的組建和管理
12.1 從面試談起
12.1.1 如今是賣方市場
12.1.2 名校論不適用無線開發(fā)
12.1.3 如何搞到更多的簡歷
12.1.4 面試時需要考察的幾個點
12.2 無線團隊必備的10份文檔
12.2.1 新員工入職文檔
12.2.2 加強版新員工入職文檔
12.2.3 測試機清單
12.2.4 模塊分工表
12.2.5 頁面邏輯流程文檔
12.2.6 MobileAPI接口分布圖
12.2.7 版本管理策略文檔
12.2.8 框架設計文檔
12.2.9 發(fā)版流程文檔
12.2.10 App啟動流程圖
12.3 一對一溝通
12.4 每周技術分享
12.5 代碼評審
12.6 對Android團隊Leader的定位
12.7 Android應用開發(fā)所需技能自我評測
12.8 App開發(fā)人員的學習路線
12.9 本章小結

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號