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

App研發(fā)錄:架構(gòu)設(shè)計(jì)、Crash分析和競品技術(shù)分析

App研發(fā)錄:架構(gòu)設(shè)計(jì)、Crash分析和競品技術(shù)分析

定 價(jià):¥59.00

作 者: 包建強(qiáng) 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 程序設(shè)計(jì) 計(jì)算機(jī)/網(wǎng)絡(luò) 移動開發(fā)

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

內(nèi)容簡介

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

作者簡介

暫缺《App研發(fā)錄:架構(gòu)設(shè)計(jì)、Crash分析和競品技術(shù)分析》作者簡介

圖書目錄

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

本目錄推薦

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