android framework書籍,《Android高級進階》— Android 書籍

 2023-12-25 阅读 29 评论 0

摘要:文章目錄第1篇 基礎篇第1章 Android觸摸事件傳遞機制 2第2章 Android View的繪制流程16第3章 Android 動畫機制25第4章 Support Annotation Library 使用詳解46第5章 Percent Support Library使用詳解57第6章 Design Support Library使用詳解62第7章 Android Studio中的NDK開

文章目錄

    • 第1篇 基礎篇
    • 第1章 Android觸摸事件傳遞機制 2
    • 第2章 Android View的繪制流程16
    • 第3章 Android 動畫機制25
    • 第4章 Support Annotation Library 使用詳解46
    • 第5章 Percent Support Library使用詳解57
    • 第6章 Design Support Library使用詳解62
    • 第7章 Android Studio中的NDK開發77
    • 第8章 Gradle 必知必會85
    • 第9章 通過Gradle打包發布函數庫到JCenter和Maven Central 92
    • 第10章 Builder模式詳解110
    • 第11章 注解在Android 中的應用124
    • 第12章 ANR產生的原因及其定位分析134
    • 第13章 Android異步處理技術144
    • 第14章 Android數據序列化方案研究160
    • 第15章 Android WebView Java 和JavaScript 交互詳解173
    • 第2篇 系統架構篇
    • 第16章 MVP模式及其在Android中的實踐180
    • 第17章 MVVM模式及Android DataBinding實戰186
    • 第18章 觀察者模式的拓展:事件總線191
    • 第19章 書寫簡潔規范的代碼197
    • 第20章 基于開源項目搭建屬于自己的技術堆棧203
    • 第3篇 經驗總結篇
    • 第21章 64K方法數限制原理與解決方案222
    • 第22章 Android 插件框架機制研究與實踐230
    • 第23章 推送機制實現原理詳解235
    • 第24章 APP 瘦身經驗總結241
    • 第25章 Android Crash 日志收集原理與實踐252
    • 第4篇 新技術篇
    • 第26章 函數式編程思想及其在Android中的應用272
    • 第27章 依賴注入及其在Android中的應用277
    • 第28章 Android世界的Swift:Kotlin在Android中的應用290
    • 第29章 React Native For Android入門指南304
    • 第30章 Android在線熱修復方案研究320
    • 第31章 面向切面編程及其在Android中的應用335
    • 第32章 基于Facebook Buck改造Android構建系統345
    • 第5篇 性能優化篇
    • 第33章 代碼優化368
    • 第34章 圖片優化379
    • 第35章 電量優化383
    • 第36章 布局優化388
    • 第37章 網絡優化395
    • 第6篇 移動安全篇
    • 第38章 Android混淆機制詳解400
    • 第39章 Android 反編譯機制詳解411
    • 第40章 客戶端敏感信息隱藏技術研究414
    • 第41章 Android 加固技術研究421
    • 第42章 Android安全編碼429
    • 第7篇 工具篇
    • 第43章 Android調試工具Facebook Stetho 446
    • 第44章 內存泄漏檢測函數庫LeakCanary 460
    • 第45章 基于Facebook Redex實現Android APK的壓縮和優化474
    • 第46章 Android Studio你所需要知道的功能479
    • 第8篇 測試篇
    • 第47章 Android單元測試框架簡介486
    • 第48章 Android UI自動化測試框架簡介492
    • 第49章 Android靜態代碼分析實戰495
    • 第50章 基于Jenkins+Gradle搭建Android持續集成編譯環境503

出版年: 2016-10

簡介:
《Android高級進階》是Android的進階學習指南,主要為Android初中級開發者進階所需的知識,高級開發者也可以從本書中發現很多共鳴點。《Android高級進階》從8個方面對50個知識點進行分類講解,包括基礎篇、系統架構篇、經驗總結篇、新技術篇、性能優化篇、移動安全篇、工具篇、測試篇。熟練掌握這些知識點后,應該就能夠應付實際項目開發中的絕大部分問題了。

android framework書籍,《Android高級進階》的主要目的在于給讀者一個完整的Android中高級開發者知識圖譜。筆者希望通過《Android高級進階》的系統講解,能夠幫助讀者在面試和工作中收獲自己滿意的成績。

豆瓣

第1篇 基礎篇

第1章 Android觸摸事件傳遞機制 2

1.1 觸摸事件的類型 2
1.2 事件傳遞的三個階段 3
1.3 View的事件傳遞機制 4
1.4 ViewGroup的事件傳遞機制 10

第2章 Android View的繪制流程16

2.1 繪制的整體流程 17
2.2 MeasureSpec17
2.3 Measure19
2.4 Layout22
2.5 Draw22

第3章 Android 動畫機制25

android開發書籍推薦?3.1 逐幀動畫(Frame Animation) 25
3.1.1 XML 資源文件方式25
3.1.2 代碼方式26
3.2 補間動畫(Tween Animation) 27
3.2.1 插值器Interpolator 27
3.2.2 AlphaAnimation 29
3.2.3 ScaleAnimation 30
3.2.4 TranslateAnimation 31
3.2.5 RotateAnimation 32
3.2.6 自定義補間動畫34
3.3 屬性動畫(Property Animation) 34
3.3.1 Evaluator 35
3.3.2 AnimatorSet 36
3.3.3 ValueAnimator 36
3.3.4 ObjectAnimator 38
3.4 過渡動畫(Transition Animation) 40

第4章 Support Annotation Library 使用詳解46

4.1 Nullness 注解 47
4.2 資源類型注解 48
4.3 類型定義注解 50
4.4 線程注解 52
4.5 RGB 顏色值注解 52
4.6 值范圍注解 53
4.7 權限注解 53
4.8 重寫函數注解 54
4.9 返回值注解 55
4.10 @VisibleForTesting55
4.11 @Keep55

第5章 Percent Support Library使用詳解57

第6章 Design Support Library使用詳解62

6.1 Snackbar62
6.2 TextInputLayout63
6.3 TabLayout64
6.4 NavigationView65
6.4.1 導航菜單66
6.4.2 導航頭部67
6.5 FloatingActionButton70
6.5.1 使用浮動操作按鈕70
6.5.2 其他選項71
6.5.3 點擊事件71
6.6 CoordinatorLayout72
6.7 CollapsingToolbarLayout73
6.8 BottomSheetBehavior75

第7章 Android Studio中的NDK開發77

7.1 ABI的基本概念 77
7.2 引入預編譯的二進制C/C++ 函數庫 79
7.3 直接從C/C++ 源碼編譯 79
7.3.1 配置ndk.dir 變量79
7.3.2 在Gradle 中配置NDK 模塊79
7.3.3 添加C/C++ 文件到指定的目錄81
7.4 使用.so 文件的注意事項 81
7.4.1 使用高平臺版本編譯的.so 文件運行在低版本的設備上81
7.4.2 混合使用不同的C++ 運行時編譯的.so 文件82
7.4.3 沒有為每個支持的CPU 架構提供對應的.so 文件82
7.4.4 將.so 文件放在錯誤的地方82
7.4.5 只提供armeabi 架構的.so 文件而忽略其他ABIs 的83

第8章 Gradle 必知必會85

c++書籍推薦。8.1 共享變量的定義 85
8.2 通用配置 87
8.3 aar 函數庫的引用 88
8.4 簽名和混淆的配置 90

第9章 通過Gradle打包發布函數庫到JCenter和Maven Central 92

9.1 Maven Central 和JCenter92
9.1.1 Maven Central 93
9.1.2 JCenter 93
9.2 Android Studio 獲取函數庫的原理 94
9.3 上傳函數庫到JCenter96
9.3.1 步驟一:在Bintray 網站上注冊一個賬號96
9.3.2 步驟二:創建一個Sonatype 賬號96
9.3.3 步驟三:在Bintray 網站使能自動簽名97
9.3.4 步驟四:生成POM 相關的信息100
9.3.5 步驟五:上傳函數庫到Bintray 104
9.3.6 步驟六:發布Bintray 用戶倉庫到JCenter 107
9.3.7 步驟七:同步函數庫到Maven Central 109

第10章 Builder模式詳解110

10.1 經典的Builder 模式 110
10.2 Builder 模式的變種 113
10.3 變種Builder 模式的自動化生成 119
10.4 開源函數庫的例子 122

第11章 注解在Android 中的應用124

11.1 注解的定義 124
11.2 標準注解 125
11.2.1 編譯相關注解125
11.2.2 資源相關注解125
11.2.3 元注解125
11.3 運行時注解 127
11.4 編譯時注解 127
11.4.1 定義注解處理器127
11.4.2 注冊注解處理器131
11.4.3 android-apt插件132

第12章 ANR產生的原因及其定位分析134

android進階之光第二版pdf,12.1 ANR 產生的原因 135
12.2 典型的ANR 問題場景 135
12.3 ANR 的定位和分析 136
12.3.1 Logcat 日志信息136
12.3.2 traces.txt 日志信息138
12.4 ANR的避免和檢測 141
12.4.1 StrictMode141
12.4.2 BlockCanary 142

第13章 Android異步處理技術144

13.1 Thread144
13.2 HandlerThread146
13.3 AsyncQueryHandler149
13.4 IntentService150
13.5 Executor Framework153
13.6 AsyncTask155
13.7 Loader156
13.8 總結 159

第14章 Android數據序列化方案研究160

14.1 Serializable160
14.2 Parcelable166
14.3 SQLiteDatabase169
14.4 SharedPreferences170
14.5 JSON171
14.6 Protocol Buffers及Nano-Proto-Buffers171
14.7 FlatBuffers171

第15章 Android WebView Java 和JavaScript 交互詳解173

15.1 Java 調用JavaScript173
15.2 JavaScript 調用Java174

第2篇 系統架構篇

第16章 MVP模式及其在Android中的實踐180

c語言進階書籍、16.1 MVP 的基本概念 180
16.2 MVP 與MVC 的區別 181
16.3 MVP 的開源實現 182
16.3.1 Android-Architecture 182
16.3.2 TODO-MVP 182
16.3.3 TODO-MVP-Loaders 183
16.3.4 TODO-MVP-Clean 183
16.3.5 TODO-Databinding 184
16.3.6 其他開源參考實現184
16.4 MVP 的好處 185
16.5 MVP 存在的問題 185

第17章 MVVM模式及Android DataBinding實戰186

17.1 Data Binding 表達式 187
17.2 數據對象 188
17.3 數據綁定 188
17.4 事件綁定 189

第18章 觀察者模式的拓展:事件總線191

18.1 為何要使用 191
18.2 原理 192
18.3 開源實現 193
18.3.1 EventBus 193
18.3.2 otto 194
18.4 與觀察者模式及Android 廣播的區別 196

第19章 書寫簡潔規范的代碼197

19.1 Java 編碼規范 197
19.1.1 源代碼文件的定義197
19.1.2 源代碼文件的結構197
19.1.3 遵循的格式198
19.1.4 命名約定200
19.1.5 Javadoc 200
19.2 Android 命名規范 200
19.2.1 布局文件的命名200
19.2.2 資源文件的命名201
19.2.3 類的命名201
19.3 CheckStyle 的使用 202

第20章 基于開源項目搭建屬于自己的技術堆棧203

安卓開發書籍。20.1 APP 的整體架構 203
20.2 技術選型的考量點 205
20.3 日志記錄能力 205
20.4 JSON 解析能力 207
20.4.1 gson 207
20.4.2 jackson 207
20.4.3 Fastjson 208
20.4.4 LoganSquare 208
20.5 數據庫操作能力 210
20.5.1 ActiveAndroid 210
20.5.2 ormlite 211
20.5.3 greenDAO 211
20.5.4 Realm 212
20.6 網絡通信能力 213
20.6.1 android-async-http 213
20.6.2 OkHttp 215
20.6.3 Volley 216
20.6.4 Retrofit 217
20.7 圖片緩存和顯示能力 217
20.7.1 BitmapFun 218
20.7.2 Picasso 218
20.7.3 Glide 218
20.7.4 Fresco 219
20.7.5 Android-Universal-Image-Loader 219

第3篇 經驗總結篇

第21章 64K方法數限制原理與解決方案222

21.1 64K 限制的原因 222
21.2 使用MultiDex 解決64K 限制的問題 223
21.2.1 Android 5.0 之前的版本223
21.2.2 Android 5.0 及之后的版本223
21.3 如何避免出現64K 限制 223
21.4 配置MultiDex224
21.5 MultiDex Support Library 的局限性 226
21.6 在開發階段優化MultiDex 的構建 227

第22章 Android 插件框架機制研究與實踐230

22.1 基本概念 231
22.1.1 宿主和插件231
22.1.2 ClassLoader 機制231
22.2 開源框架 231
22.2.1 android-pluginmgr 232
22.2.2 dynamic-load-apk 232
22.2.3 DynamicAPK 232
22.2.4 DroidPlugin 233
22.2.5 Small 234

第23章 推送機制實現原理詳解235

23.1 推送的開源實現方案 236
23.1.1 基于XMPP 協議236
23.1.2 基于MQTT 協議236
23.2 推送的第三方平臺 236
23.3 自己實現推送功能 237
23.3.1 長連接的建立(TCPConnectThread)237
23.3.2 數據的發送(TCPSendThread)237
23.3.3 數據的接收(TCPReceiveThread)238
23.3.4 心跳包的實現(TCPHeartBeatThread)240

第24章 APP 瘦身經驗總結241

網絡進階書籍?24.1 APP 為什么變胖了 241
24.2 從APK 文件的結構說起 242
24.3 優化圖片資源占用的空間 245
24.3.1 無損壓縮[ImageOptim] 246
24.3.2 有損壓縮[ImageAlpha] 246
24.3.3 有損壓縮[TinyPNG] 246
24.3.4 PNG/JPEG 轉換為WebP246
24.3.5 盡量使用NinePatch 格式的PNG 圖247
24.4 使用Lint 刪除無用資源 248
24.5 利用Android Gradle 配置 248
24.5.1 minifyEnable248
24.5.2 shrinkResources 249
24.5.3 resConfigs 249
24.5.4 ndk.abiFilters 250
24.6 重構和優化代碼 250
24.7 資源混淆 251
24.8 插件化 251

第25章 Android Crash 日志收集原理與實踐252

25.1 Java 層Crash 捕獲機制 253
25.1.1 基本原理253
25.1.2 線程信息254
25.1.3 SharedPreference 信息255
25.1.4 系統設置257
21.1.5 Logcat 中的日志記錄261
25.1.6 自定義Log 文件中的內容264
25.1.7 MemInfo 信息266
25.2 Native 層Crash 捕獲機制 267
25.3 Crash 的上報 269

第4篇 新技術篇

第26章 函數式編程思想及其在Android中的應用272

26.1 代碼的簡化 274
26.2 Operators 簡介 275

第27章 依賴注入及其在Android中的應用277

27.1 基本概念 277
27.1.1 構造函數注入278
27.1.2 Setter 函數注入279
27.1.3 接口注入279
27.2 為何需要框架 280
27.3 開源框架的選擇 280
27.3.1 ButterKnife 280
27.3.2 RoboGuice 282
27.3.3 Dagger 285
27.3.4 Dagger2 288
27.3.5 框架的對比289

第28章 Android世界的Swift:Kotlin在Android中的應用290

28.1 選擇Kotlin 的原因 290
28.2 Kotlin 的安裝和配置 291
28.3 Kotlin 語言的特性 292
28.3.1 可表達性292
28.3.2 空類型安全294
28.3.3 擴展函數295
28.4 Kotlin 的Gradle 配置 296
28.5 將Java 類轉換成Kotlin 類 299
28.6 相關資料 302

第29章 React Native For Android入門指南304

29.1 環境配置 304
29.1.1 Homebrew 304
29.1.2 nvm 305
29.1.3 Node.js 305
29.1.4 watchman 306
29.1.5 flow 306
29.2 Android 開發環境的要求 306
29.3 React Native 工程配置 307
29.3.1 安裝react-native 307
29.3.2 生成工程307
29.4 Android Studio 工程概覽 308
29.5 React Native 依賴庫修改為本地 314
29.5.1 下載react-native.aar 314
29.5.2 react-native.aar 的文件內容315
29.5.3 Gradle 本地依賴316
29.5.4 將node_modules 上傳到svn/git 318
29.6 React Native 學習建議 319

第30章 Android在線熱修復方案研究320

30.1 在線熱修復的基本流程 320
30.2 Dexposed321
30.2.1 如何集成322
30.2.2 基本用法323
30.2.3 在線熱修復325
30.2.4 平臺的限制328
30.3 AndFix329
30.3.1 如何集成329
30.3.2 補丁包生成工具331
30.3.3 平臺的限制332
30.4 Nuwa332
30.4.1 基本原理332
30.4.2 如何集成333
30.4.3 補丁生成工具334
30.4.4 平臺的限制334
30.5 總結 334

第31章 面向切面編程及其在Android中的應用335

31.1 AOP 的基本概念 335
31.2 代碼織入的時機 336
31.3 基于AspectJ 實現Android 平臺的AOP337
31.3.1 Hugo 的用法簡介337
31.3.2 Hugo 的實現原理339
31.4 其他AOP 開源框架 344

第32章 基于Facebook Buck改造Android構建系統345

32.1 Buck環境配置 346
32.1.1 Homebrew 方式346
32.1.2 手動構建方式346
32.1.3 安裝Watchman 348
32.1.4 安裝Android SDK 和Android NDK 348
32.2 快速創建基于Buck 構建的Android 工程 349
32.3 Buck 的基本概念 351
32.3.1 構建規則(Build Rule)352
32.3.2 構建目標(Build Target)354
32.3.3 構建文件(Build File)355
32.3.4 構建目標模式(Build Target Pattern)356
32.4 項目改造實戰 357
32.4.1 步驟一:手動下載工程依賴的第三方Jar包或者aar包357
32.4.2 步驟二:將R.* 常量修改為非final 的357
32.4.3 步驟三:創建BUCK 文件358
32.4.4 步驟四:編譯Buck 的buck-android-support 363
32.4.5 步驟五:Exopackage 的使用363
32.5 Buck 的自動化改造 366

第5篇 性能優化篇

第33章 代碼優化368

33.1 數據結構的選擇 368
33.2 Handler 和內部類的正確用法 370
33.3 正確地使用Context373
33.3.1 Context 的種類374
33.3.2 錯誤使用Context 導致的內存泄漏374
33.3.3 不同Context 的對比376
33.4 掌握Java 的四種引用方式 376
33.5 其他代碼微優化 377
33.5.1 避免創建非必要的對象377
33.5.2 對常量使用static final 修飾378
33.5.3 避免內部的Getters/Setters 378
33.5.4 代碼的重構378

第34章 圖片優化379

34.1 圖片的格式 379
34.1.1 JPEG 380
34.1.2 PNG 380
34.1.3 GIF 380
34.1.4 WebP 380
34.2 圖片的壓縮 380
34.2.1 無損壓縮ImageOptim 381
34.2.2 有損壓縮ImageAlpha 381
34.2.3 有損壓縮TinyPNG 381
34.2.4 PNG/JPEG 轉換為WebP381
34.2.5 盡量使用NinePatch 格式的PNG 圖382
34.3 圖片的緩存 382

第35章 電量優化383

35.1 BroadcastReceiver383
35.2 數據傳輸 384
35.3 位置服務 384
35.4 AlarmManager386
35.5 WakeLock386

第36章 布局優化388

36.1 include 標簽共享布局 388
36.2 ViewStub 標簽實現延遲加載 389
36.3 merge 標簽減少布局層次 391
36.4 盡量使用CompoundDrawable392
36.5 使用Lint393

第37章 網絡優化395

37.1 避免DNS 解析 395
37.2 合并網絡請求 395
37.3 預先獲取數據 396
37.4 避免輪詢 396
37.5 優化重連機制 396
37.6 離線緩存 396
37.7 壓縮數據大小 396
37.8 不同的網絡環境使用不同的超時策略 397
37.9 CDN 的使用 397

第6篇 移動安全篇

第38章 Android混淆機制詳解400

38.1 Java 代碼的混淆 400
38.1.1 Proguard 的特性401
38.1.2 Proguard 的使能和配置401
38.1.3 proguard-rules.pro 文件的編寫404
38.1.4 Proguard 生成的文件407
38.1.5 Proguard 混淆規則匯總409
38.2 Native(C/C++)代碼的混淆 409
38.3 資源文件的混淆 409

第39章 Android 反編譯機制詳解411

39.1 資源文件的反編譯 411
39.1.1 ApkTool 的安裝411
39.1.2 ApkTool 的使用412
39.2 Java 代碼的反編譯 413

第40章 客戶端敏感信息隱藏技術研究414

40.1 敏感信息嵌套在strings.xml 中 415
40.2 敏感信息隱藏在Java 源代碼中 415
40.3 敏感信息隱藏在BuildConfig 中 417
40.4 使用DexGuard418
40.5 對敏感信息進行偽裝或者加密 419
40.6 敏感信息隱藏在原生函數庫中(.so文件) 419
40.7 對APK進行加固處理 419

第41章 Android 加固技術研究421

41.1 愛加密的主要功能 421
41.1.1 漏洞分析421
41.1.2 加密服務422
41.1.3 渠道監測423
41.2 常見APP 漏洞及風險 423
41.2.1 靜態破解423
41.2.2 二次打包424
41.2.3 本地儲存數據竊取424
41.2.4 界面截取424
41.2.5 輸入法攻擊424
41.2.6 協議抓取424
41.3 Android 程序反破解技術 424
41.3.1 對抗反編譯424
41.3.2 對抗靜態分析425
41.3.3 對抗動態調試425
41.3.4 防止重編譯425
41.4 加固技術研究知識儲備 426
41.4.1 掌握常見的破解分析工具426
41.4.2 掌握Dalvik 指令集代碼428
41.4.3 掌握Dex 和Odex 文件格式428
41.4.4 掌握Smali 文件格式428
41.4.5 掌握基于Android 的ARM 匯編語言基礎428

第42章 Android安全編碼429

42.1 WebView 遠程代碼執行 429
42.2 WebView 密碼明文保存 430
42.3 Android 本地拒絕服務 431
42.3.1 非法序列化對象導致的ClassNotFoundException 431
42.3.2 空Action 導致的NullPointerException 432
42.3.3 強制類型轉換導致的ClassCastException 433
42.3.4 數組越界導致的IndexOutOfBoundsException 433
42.4 SharedPreference 全局任意讀寫 434
42.5 密鑰硬編碼 434
42.6 AES/DES/RSA 弱加密 434
42.7 隨機函數使用錯誤 437
42.8 WebView 忽略SSL 證書 438
42.9 HTTPS 證書弱校驗 438
42.9.1 自定義X509TrustManager 未實現安全校驗438
42.9.2 自定義HostnameVerifier 默認接受所有域名441
42.9.3 SSLSocketFactory 信任所有證書442
42.10 PendingIntent 使用不當 443

第7篇 工具篇

第43章 Android調試工具Facebook Stetho 446

43.1 視圖布局監視 447
43.2 數據庫監視 447
43.3 網絡監視 448
43.3.1 網絡模塊使用的是HTTPUrlConnection 449
43.3.2 網絡模塊使用的是OkHttp 452
43.4 dumpapp454
43.4.1 插件的編寫454
43.4.2 插件的集成456
43.4.3 插件的使用456
43.5 Javascript 控制臺 457
43.6 最佳實踐 457

第44章 內存泄漏檢測函數庫LeakCanary 460

44.1 基本概念 461
44.2 LeakCanary 的集成 461
44.3 LeakCanary 的原理 465
44.4 LeakCanary 的定制 469
44.4.1 RefWatcher 的自定義469
44.4.2 通知頁面樣式的自定義470
44.4.3 內存泄漏堆棧信息保存個數的自定義471
44.4.4 Watcher 的延時471
44.4.5 自定義內存泄漏堆棧信息和heap dump 的處理方式471
44.4.6 忽略特定的弱引用472
44.4.7 不監視特定的Activity 類472

第45章 基于Facebook Redex實現Android APK的壓縮和優化474

45.1 轉換的時機 474
45.2 管道的思想 475
45.3 減少字節碼的意義 475
45.4 混淆和壓縮 475
45.5 使用內聯函數 476
45.6 無用代碼的消除 477
45.7 Redex 的集成和使用 478
45.7.1 依賴的安裝478
45.7.2 下載,構建和安裝478
45.7.3 使用478

第46章 Android Studio你所需要知道的功能479

46.1 Annotate479
46.2 .ignore 插件 480
46.3 Live Templates481
46.4 集成Bug 管理系統 482

第8篇 測試篇

第47章 Android單元測試框架簡介486

47.1 Java 單元測試框架JUnit486
47.2 Android 單元測試框架Robolectric 3.0488
47.3 Java 模擬測試框架Mockito490
47.3.1 行為的驗證490
47.3.2 Stub(樁函數)的使用491

第48章 Android UI自動化測試框架簡介492

48.1 Monkey492
48.2 MonkeyRunner493
48.3 UIAutomator493
48.4 Robotium494
48.5 Espresso494
48.6 Appium494

第49章 Android靜態代碼分析實戰495

49.1 Java代碼規范檢查工具CheckStyle495
49.1.1 Gradle方式495
49.1.2 Android Studio插件方式497
49.2 Java靜態代碼分析工具FindBugs498
49.2.1 Gradle方式498
49.2.2 Android Studio插件方式499
49.3 Java靜態代碼分析工具PMD500
49.3.1 Gradle方式500
49.3.2 Android Studio插件方式501
49.4 Android代碼優化工具Lint501
49.4.1 Gradle方式501
49.4.2 Android Studio插件方式502

第50章 基于Jenkins+Gradle搭建Android持續集成編譯環境503

50.1 Tomcat的下載和啟動 503
50.2 Jenkins的下載和運行 505
50.3 Jenkins插件的安裝 506
50.4 Jenkins全局配置 507
50.4.1 配置JDK 環境507
50.4.2 配置Android SDK 環境507
50.4.3 配置Git 環境508
50.4.4 配置SVN 環境508
50.4.5 配置Gradle 環境508
50.5 JOB相關的操作 508
50.5.1 JOB 的創建508
50.5.2 JOB 的配置509
50.5.3 Gradle 的配置510
50.5.4 構建觸發器的配置511
50.5.5 參數化構建514
50.6 Jenkins預定義的環境變量 514 [1]

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/194759.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息