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

App研發錄:架構設計、Crash分析和競品技術分析 pdf epub mobi txt 電子書 下載2025

出版者:機械工業齣版社
作者:包建強
出品人:
頁數:303
译者:
出版時間:2015-10-21
價格:CNY 59.00
裝幀:平裝
isbn號碼:9787111516385
叢書系列:
圖書標籤:
  • Android
  • 移動開發
  • app
  • 編程
  • 計算機
  • 産品經理
  • App
  • android進階提高
  • App研發
  • 架構設計
  • Crash分析
  • 競品分析
  • 移動開發
  • 技術架構
  • 故障排查
  • 産品分析
  • 代碼優化
  • 用戶體驗
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

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

著者簡介

包建強,畢業於復旦大學數學係。先後在多傢互聯網公司擔任無綫部門技術總監。在And roid、iOS、WP等多門無綫技術中跋涉過,在App的項目管理上也有多年的實踐經驗。他是微軟2008年MVP。曾經翻譯齣版《.NET探秘MSIL權威指南》,並有一個堅持寫瞭6年的技術博客:http://jax.cnblOgs.com/。

圖書目錄

Contents?目 錄
序一
序二
序三
前言
第一部分 高效App框架設計與重構
第1章 重構,夜未眠 3
1.1 重新規劃Android項目結構 3
1.2 為Activity定義新的生命周期 5
1.3 統一事件編程模型 7
1.4 實體化編程 9
1.4.1 在網絡請求中使用實體 9
1.4.2 實體生成器 11
1.4.3 在頁麵跳轉中使用實體 12
1.5 Adapter模闆 14
1.6 類型安全轉換函數 16
1.7 本章小結 17
第2章 Android網絡底層框架設計 19
2.1 網絡低層封裝 19
2.1.1 網絡請求的格式 19
2.1.2 AsyncTask的使用和缺點 21
2.1.3 使用原生的ThreadPoolExecutor + Runnable + Handler 24
2.1.4 網絡底層的一些優化工作 28
2.2 App數據緩存設計 32
2.2.1 數據緩存策略 32
2.2.2 強製更新 35
2.3 MockService 36
2.4 用戶登錄 38
2.4.1 登錄成功後的各種場景 39
2.4.2 自動登錄 41
2.4.3 Cookie過期的統一處理 44
2.4.4 防止黑客刷庫 45
2.5 HTTP頭中的奧妙 46
2.5.1 HTTP請求 46
2.5.2 時間校準 48
2.5.3 開啓gzip壓縮 51
2.6 本章小結 52
第3章 Android經典場景設計 53
3.1 App圖片緩存設計 53
3.1.1 ImageLoader設計原理 53
3.1.2 ImageLoader的使用 54
3.1.3 ImageLoader優化 55
3.1.4 圖片加載利器Fresco 56
3.2 對網絡流量進行優化 58
3.2.1 通信層麵的優化 58
3.2.2 圖片策略優化 59
3.3 城市列錶的設計 61
3.3.1 城市列錶數據 61
3.3.2 城市列錶數據的增量更新機製 63
3.4 App與HTML5的交互 64
3.4.1 App操作HTML5頁麵的方法 64
3.4.2 HTML5頁麵操作App頁麵的方法 65
3.4.3 App和HTML5之間定義跳轉協議 66
3.4.4 在App中內置HTML5頁麵 67
3.4.5 靈活切換Native和HTML5頁麵的策略 68
3.4.6 頁麵分發器 68
3.5 消滅全局變量 70
3.5.1 問題的發現 70
3.5.2 把數據作為Intent的參數傳遞 71
3.5.3 把全局變量序列化到本地 71
3.5.4 序列化的缺點 75
3.5.5 如果Activity也被銷毀瞭呢 79
3.5.6 如何看待SharedPreferences 80
3.5.7 User是唯一例外的全局變量 80
3.6 本章小結 81
第4章 Android命名規範和編碼規範 83
4.1 Android命名規範 83
4.2 Android編碼規範 86
4.3 統一代碼格式 89
4.4 本章小結 90
第二部分 App開發中的高級技巧
第5章 Crash異常收集與統計 93
5.1 異常收集 93
5.2 異常收集與統計 96
5.2.1 人工統計綫上Crash數據 96
5.2.2 第一個綫上Crash報錶:Crash分類 97
5.2.3 第二個綫上Crash報錶:Crash去重 99
5.2.4 綫上Crash的其他分析工作 104
5.3 本章小結 105
第6章 Crash異常分析 107
6.1 Java語法相關的異常 108
6.1.1 空指針 108
6.1.2 角標越界 109
6.1.3 試圖調用一個空對象的方法 110
6.1.4 類型轉換異常 110
6.1.5 數字轉換錯誤 111
6.1.6 聲明數組時長度為-1 111
6.1.7 遍曆集閤同時刪除其中元素 112
6.1.8 比較器使用不當 114
6.1.9 當除數為0 115
6.1.10 不能隨便使用的asList 116
6.1.11 又有類找不到瞭(一):ClassNotFoundException 116
6.1.12 又有類找不到瞭(二):NoClassDefFoundError 117
6.2 Activity相關的異常 117
6.2.1 找不到Activity 117
6.2.2 不能實例化Activity 118
6.2.3 找不到Service 118
6.2.4 不能啓動BroadcastReceiver 119
6.2.5 startActivityForResult不能迴傳 119
6.2.6 猴急的Fragment 120
6.3 序列化相關的異常 120
6.3.1 實體對象不支持序列化 121
6.3.2 序列化時未指定ClassLoader 121
6.3.3 反序列化時發現類找不到:被ProGuard混淆導緻的崩潰 122
6.3.4 反序列化時發現類找不到:傳入畸形數據 123
6.3.5 反序列化時齣錯 123
6.4 列錶相關的異常 123
6.4.1 Adapter數據源變化但是沒通知ListView 124
6.4.2 ListView滾動時點擊刷新按鈕後崩潰 125
6.4.3 AbsListView的obtainView返迴空指針 125
6.4.4 Adapter數據源變化但是沒調用notifyDataSetChanged 126
6.5 窗體相關的異常 126
6.5.1 窗口句柄泄露 126
6.5.2 View not attached to window manager 128
6.5.3 窗體在不恰當的時候獲取瞭焦點 129
6.5.4 token null is not for an application 130
6.5.5 permission denied for this window type 131
6.5.6 is your activity running 131
6.5.7 添加窗體失敗 133
6.5.8 AlertDialog.resolveDialogTheme 134
6.5.9 The specif?ied child already has a parent 136
6.5.10 子綫程不能修改UI 137
6.5.11 不能在子綫程操作AlertDialog和Toast 141
6.6 資源相關的異常 143
6.6.1 Resources$NotFoundException 143
6.6.2 StackOverf?iowError 144
6.6.3 Unsatisf?iedLinkError 144
6.6.4 Inf?iateException之FileNotFoundException 145
6.6.5 Inf?iateException之缺少構造器 145
6.6.6 Inf?iateException之style與android:textStyle的區彆 146
6.6.7 TransactionTooLargeException 147
6.7 係統碎片化相關的異常 147
6.7.1 NoSuchMethodError 147
6.7.2 RemoteViews 148
6.7.3 pointerIndex out of range 149
6.7.4 SecurityException之一:Intent中圖片太大 150
6.7.5 SecurityException之二:動態加載其他apk的activity 151
6.7.6 SecurityException之三:No permission to modify thread 151
6.7.7 view的getDrawingCache()返迴null 152
6.7.8 DeadObjectException 153
6.7.9 Android 2.1不支持SSL 153
6.7.10 ViewFlipper引發的血案 153
6.7.11 ActivityNotFoundException 154
6.7.12 Android 2.2不支持xlargeScreens 154
6.7.13 Package manager has died 155
6.7.14 SpannableString與富文本字符串 155
6.7.15 Can not perform this action after onSaveInstanceState 156
6.7.16 Service Intent must be explicit 157
6.8 SQLite相關的異常 157
6.8.1 No transaction is active 158
6.8.2 忘記關閉Cursor 158
6.8.3 數據庫被鎖定 159
6.8.4 試圖再打開已經關閉的對象 159
6.8.5 文件加密瞭或無數據庫 159
6.8.6 WebView中SQLLite緩存導緻的崩潰 160
6.8.7 磁盤讀寫錯誤 161
6.8.8 android_metadata錶不存在 161
6.8.9 android_metadata錶中的locale字段 162
6.8.10 數據庫或磁盤滿瞭 162
6.9 不明覺厲的異常 162
6.9.1 內存溢齣 163
6.9.2 Verify Failed 163
6.10 其他情況的異常 163
6.10.1 TimeoutException 164
6.10.2 JSON解析異常 164
6.10.3 JSONArray在初始化時為空 164
6.10.4 第三方SDK拋齣的Crash 165
6.10.5 兩個不同類型的View有相同的id 165
6.10.6 LayoutInf?iater.from().inf?iate()使用不當導緻的崩潰 166
6.10.7 ViewGroup中的玄機 166
6.10.8 Monkey點擊過快導緻的崩潰 167
6.10.9 圖片縮放很多倍 168
6.10.10 圖片寬高為0 168
6.10.11 不能重復添加組件 168
6.11 本章小結 169
第7章 ProGuard技術詳解 171
7.1 ProGuard簡介 171
7.2 ProGuard工作原理 172
7.3 如何寫一個ProGuard文件 172
7.3.1 基本混淆 172
7.3.2 針對App的量身定製 175
7.3.3 針對第三方jar包的解決方案 177
7.4 其他注意事項 178
7.5 本章小結 179
第8章 持續集成 181
8.1 版本管理策略 181
8.1.1 三種版本管理策略 181
8.1.2 特殊情況的版本管理策略 183
8.2 使用Ant腳本打包 184
8.2.1 Android打包流程 184
8.2.2 打包時的注意事項 189
8.3 Monkey包的生成 190
8.4 自動打包 191
8.4.1 安裝和配置各種軟件 192
8.4.2 準備Ant打包腳本 193
8.4.3 配置CCNET 193
8.4.4 搭建IIS站點下載apk包 193
8.4.5 自動打包流程小結 193
8.5 批量打渠道包 194
8.5.1 基於apk包批量生成渠道包 194
8.5.2 基於代碼批量生成渠道包 195
8.6 Android發版流程 197
8.7 分類打渠道包 198
8.7.1 分門彆類生成渠道包 198
8.7.2 批量上傳apk的兩種方式 199
8.8 靈活切換服務器 199
8.9 單元測試 201
8.10 本章小結 203
第9章 App競品技術分析 205
9.1 競品分析概述 205
9.1.1 App競品定義 205
9.1.2 競品分析要研究的幾個方嚮 206
9.1.3 競品分析與拿來主義 206
9.2 App安裝包的結構 207
9.2.1 Android安裝包的結構 207
9.2.2 iOS安裝包的結構 208
9.3 競品技術一瞥:開機速度 208
9.4 競品技術二瞥:HTML5頁麵的打開速度 209
9.4.1 把HTML5頁麵嵌入到Zip包中 209
9.4.2 Zip包的增量更新機製 209
9.4.3 製作Zip增量包 210
9.4.4 使用WebView預先加載HTML5並緩存到本地 211
9.5 競品技術三瞥:安裝包的大小 211
9.5.1 從幾件小事說起 211
9.5.2 安裝包為什麼那麼大 212
9.5.3 png和jpg的區彆及使用場景 212
9.5.4 Splash、引導圖和背景圖 213
9.5.5 iOS的1倍圖、2倍圖和3倍圖 213
9.5.6 在iOS中進行圖片拉伸和鏇轉 214
9.5.7 使用XML配置動畫 214
9.5.8 iOS使用storyboard還是xib 215
9.5.9 字體文件的學問 215
9.5.10 錶情圖片打包下載 217
9.5.11 清除未使用圖片 218
9.5.12 Proguard不隻是用來混淆的 218
9.5.13 在iOS中使用pdf格式的圖片 218
9.5.14 iOS的包永遠比Android包體積大嗎 219
9.5.15 從代碼層麵減少iOS包的體積 220
9.6 競品技術四瞥:性能優化 220
9.6.1 App自動選取最佳服務器的策略 220
9.6.2 使用TCP+Protobuf 222
9.7 競品技術五瞥:數據采集工具 223
9.7.1 頁麵跳轉器 223
9.7.2 打點統計 226
9.7.3 ABTest 230
9.8 競品技術六瞥:熱修補 232
9.8.1 Native頁麵和HTML5頁麵的相互切換 232
9.8.2 在iOS中使用腳本編程 233
9.9 競品技術七瞥:麯徑通幽 237
9.9.1 一切皆可配置 237
9.9.2 App後門 238
9.9.3 Android包中META-INF目錄的妙用 239
9.9.4 classes.dex的拆與閤 241
9.10 競品技術八瞥:模塊化拆分 242
9.10.1 iOS資源拆分與模塊化 242
9.10.2 Android模塊化拆分 243
9.11 競品技術九瞥:第三方SDK 244
9.11.1 HTML5篇 244
9.11.2 iOS篇 245
9.11.3 Android篇 245
9.11.4 其他 246
9.12 競品技術十瞥:版本策略與App彩蛋 246
9.12.1 版本策略 246
9.12.2 App彩蛋 246
9.13 本章小結 247
第三部分 項目管理和團隊建設
第10章 項目管理決定瞭開發速度 251
10.1 項目管理中的三駕馬車 251
10.1.1 為什麼不能沒有測試團隊 252
10.1.2 産品經理應做的事 253
10.1.3 開發人員的喜怒哀樂 254
10.1.4 項目經理的職責 254
10.2 優化團隊結構,讓敏捷流程跑得更快 255
10.2.1 平行模式還是垂直模式 255
10.2.2 讓HTML5站點和MobileAPI的進度提前一個迭代 256
10.2.3 如何進行模塊化分工 256
10.3 App敏捷開發流程 257
10.3.1 四周時間的開發流程 257
10.3.2 兩周時間的開發流程 261
10.3.3 一周時間的開發流程 262
10.3.4 即時更新策略 263
10.4 項目經理的百寶箱 263
10.4.1 項目經理的任務評估錶 263
10.4.2 貼小紙條的藝術 264
10.4.3 敏捷迭代中的會議紀要 265
10.4.4 開站例會的技巧 266
10.4.5 如何確保項目不延期 268
10.4.6 迭代風險管理 268
10.5 迭代中的測試工作 269
10.5.1 冒煙測試 269
10.5.2 探索性測試 271
10.5.3 Monkey測試 271
10.6 高層對敏捷流程的乾預 272
10.6.1 重構與産品需求的平衡 272
10.6.2 提高效率,拒絕6×12 273
10.6.3 無綫部門的座位安排 274
10.6.4 靜時 276
10.7 本章小結 277
第11章 日常工作中的問題解決 279
11.1 使用二分法排查問題 279
11.2 找到能穩定重現問題的人 281
11.3 小流量包 282
11.4 建立全國範圍的測試群 283
11.5 如何與用戶溝通 284
11.6 日誌與App性能 286
11.7 從新人入職作業入手 286
11.8 本章小結 287
第12章 無綫團隊的組建和管理 289
12.1 從麵試談起 289
12.1.1 如今是賣方市場 289
12.1.2 名校論不適用無綫開發 290
12.1.3 如何搞到更多的簡曆 290
12.1.4 麵試時需要考察的幾個點 291
12.2 無綫團隊必備的10份文檔 292
12.2.1 新員工入職文檔 292
12.2.2 加強版新員工入職文檔 292
12.2.3 測試機清單 293
12.2.4 模塊分工錶 293
12.2.5 頁麵邏輯流程文檔 293
12.2.6 MobileAPI接口分布圖 295
12.2.7 版本管理策略文檔 295
12.2.8 框架設計文檔 295
12.2.9 發版流程文檔 296
12.2.10 App啓動流程圖 296
12.3 一對一溝通 297
12.4 每周技術分享 298
12.5 代碼評審 299
12.6 對Android團隊Leader的定位 300
12.7 Android應用開發所需技能自我評測 301
12.8 App開發人員的學習路綫 302
12.9 本章小結 303
· · · · · · (收起)

讀後感

評分

之所以上述所说,是因为看这本书的时候,总感觉怪怪的。 因为在地铁上看完的,作者书中基本都是他自己工作中遇到的问题和坑,虽说这样会让人感觉找到了解决方案,可以再进行深入的研究,可是某些地方介绍的有点片面,仅仅是引用部分博客就以偏概全了。还有可能是涉及的内容大部...

評分

介绍登录模块的同时,又讲解了安全加密,讲登录就是专门讲登录,涉及到安全问题不会再开启一个模块? 在登录模块之前讲解的网络模块,在登录模块后面又讲到了http请求, 程序员这个点逻辑性都没有写什么书? 我感觉作者太急于写成这本书,卖的多少不要求,写了大量java代码,虽然都是面向...  

評分

介绍登录模块的同时,又讲解了安全加密,讲登录就是专门讲登录,涉及到安全问题不会再开启一个模块? 在登录模块之前讲解的网络模块,在登录模块后面又讲到了http请求, 程序员这个点逻辑性都没有写什么书? 我感觉作者太急于写成这本书,卖的多少不要求,写了大量java代码,虽然都是面向...  

評分

之所以上述所说,是因为看这本书的时候,总感觉怪怪的。 因为在地铁上看完的,作者书中基本都是他自己工作中遇到的问题和坑,虽说这样会让人感觉找到了解决方案,可以再进行深入的研究,可是某些地方介绍的有点片面,仅仅是引用部分博客就以偏概全了。还有可能是涉及的内容大部...

評分

之所以上述所说,是因为看这本书的时候,总感觉怪怪的。 因为在地铁上看完的,作者书中基本都是他自己工作中遇到的问题和坑,虽说这样会让人感觉找到了解决方案,可以再进行深入的研究,可是某些地方介绍的有点片面,仅仅是引用部分博客就以偏概全了。还有可能是涉及的内容大部...

用戶評價

评分

乾貨不少,proguard那一章不錯,畢竟以前沒有哪本書係統地總結過。競品分析那一章也不錯,漲姿勢瞭,知識麵寬瞭。作者用的是Eclipse,沒有對Android Studio和Gradle的講解。

评分

網絡基礎架構,性能優化不錯。競品分析和crash都是難得的資料

评分

補簽到,非技術人員,後幾章關於項目和人員管理的內容可以一讀

评分

乾貨,涉及app崩潰收集、混淆技術、持續集成、團隊管理

评分

雖然結構比較不係統 但是寶貴的是經驗 感謝

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有