1. 程式人生 > >Android高階進階書籍目錄

Android高階進階書籍目錄

第1篇 基礎篇 
第1章 Android觸控事件傳遞機制 
1.1 觸控事件的型別 
1.2 事件傳遞的三個階段 
1.3 View的事件傳遞機制 
1.4 ViewGroup的事件傳遞機制 
第2章 Android View的繪製流程 
2.1 繪製的整體流程 
2.2 MeasureSpec 
2.3 Measure 
2.4 Layout 
2.5 Draw 
第3章 Android 動畫機制 
3.1 逐幀動畫(Frame Animation) 
3.1.1 XML 資原始檔方式 
3.1.2 程式碼方式 
3.2 補間動畫(Tween Animation) 
3.2.1 插值器 Interpolator 
3.2.2 AlphaAnimation 
3.2.3 ScaleAnimation 
3.2.4 TranslateAnimation 
3.2.5 RotateAnimation 
3.2.6 自定義補間動畫 
3.3 屬性動畫(Property Animation) 
3.3.1 Evaluator 
3.3.2 AnimatorSet 
3.3.3 ValueAnimator 
3.3.4 ObjectAnimator 
3.4 過渡動畫(Transition Animation) 
第4章 Support Annotation Library 使用詳解 
4.1 Nullness 註解 
4.2 資源型別註解 
4.3 型別定義註解 
4.4 執行緒註解 
4.5 RGB 顏色值註解 
4.6 值範圍註解 
4.7 許可權註解 
4.8 重寫函式註解 
4.9 返回值註解 
4.10 @VisibleForTesting 
4.11 @Keep 
第5章 Percent Support Library使用詳解 
第6章 Design Support Library使用詳解 
6.1 Snackbar 
6.2 TextInputLayout 
6.3 TabLayout 
6.4 NavigationView 
6.4.1 導航選單 
6.4.2 導航頭部 
6.5 FloatingActionButton 
6.5.1 使用浮動操作按鈕 
6.5.2 其他選項 
6.5.3 點選事件 
6.6 CoordinatorLayout 
6.7 CollapsingToolbarLayout 
6.8 BottomSheetBehavior 
第7章 Android Studio中的NDK開發 
7.1 ABI的基本概念 
7.2 引入預編譯的二進位制 C/C++ 函式庫 
7.3 直接從 C/C++ 原始碼編譯 
7.3.1 配置 ndk.dir 變數 
7.3.2 在 Gradle 中配置 NDK 模組 
7.3.3 新增 C/C++ 檔案到指定的目錄 
7.4 使用 .so 檔案的注意事項 
7.4.1 使用高平臺版本編譯的 .so 檔案執行在低版本的裝置上 
7.4.2 混合使用不同的C++ 執行時編譯的 .so 檔案 
7.4.3 沒有為每個支援的 CPU 架構提供對應的 .so 檔案 
7.4.4 將 .so 檔案放在錯誤的地方 
7.4.5 只提供 armeabi 架構的 .so 檔案而忽略其他 ABIs 的 
第8章 Gradle 必知必會 
8.1 共享變數的定義 
8.2 通用配置 
8.3 aar 函式庫的引用 
8.4 簽名和混淆的配置 
第9章 通過Gradle打包釋出函式庫到JCenter和Maven Central 
9.1 Maven Central 和 JCenter 
9.1.1 Maven Central 
9.1.2 JCenter 
9.2 Android Studio 獲取函式庫的原理 
9.3 上傳函式庫到 JCenter 
9.3.1 步驟一:在 Bintray 網站上註冊一個賬號 
9.3.2 步驟二:建立一個 Sonatype 賬號 
9.3.3 步驟三:在 Bintray 網站使能自動簽名 
9.3.4 步驟四:生成 POM 相關的資訊 
9.3.5 步驟五:上傳函式庫到 Bintray 
9.3.6 步驟六:釋出 Bintray 使用者倉庫到 JCenter 
9.3.7 步驟七:同步函式庫到 Maven Central 
第10章 Builder模式詳解 
10.1 經典的 Builder 模式 
10.2 Builder 模式的變種 
10.3 變種 Builder 模式的自動化生成 
10.4 開源函式庫的例子 
第11章 註解在 Android 中的應用 
11.1 註解的定義 
11.2 標準註解 
11.2.1 編譯相關注解 
11.2.2 資源相關注解 
11.2.3 元註解 
11.3 執行時註解 
11.4 編譯時註解 
11.4.1 定義註解處理器 
11.4.2 註冊註解處理器 
11.4.3 android-apt外掛 
第12章 ANR產生的原因及其定位分析 
12.1 ANR 產生的原因 
12.2 典型的 ANR 問題場景 
12.3 ANR 的定位和分析 
12.3.1 Logcat 日誌資訊 
12.3.2 traces.txt 日誌資訊 
12.4 ANR的避免和檢測 
12.4.1 StrictMode 
12.4.2 BlockCanary 
第13章 Android非同步處理技術 
13.1 Thread 
13.2 HandlerThread 
13.3 AsyncQueryHandler 
13.4 IntentService 
13.5 Executor Framework 
13.6 AsyncTask 
13.7 Loader 
13.8 總結 
第14章 Android資料序列化方案研究 
14.1 Serializable 
14.2 Parcelable 
14.3 SQLiteDatabase 
14.4 SharedPreferences 
14.5 JSON 
14.6 Protocol Buffers及Nano-Proto-Buffers 
14.7 FlatBuffers 
第15章 Android WebView Java 和 JavaScript 互動詳解 
15.1 Java 呼叫 JavaScript 
15.2 JavaScript 呼叫 Java 
第2篇 系統架構篇 
第16章 MVP模式及其在Android中的實踐 
16.1 MVP 的基本概念 
16.2 MVP 與 MVC 的區別 
16.3 MVP 的開源實現 
16.3.1 Android-Architecture 
16.3.2 TODO-MVP 
16.3.3 TODO-MVP-Loaders 
16.3.4 TODO-MVP-Clean 
16.3.5 TODO-Databinding 
16.3.6 其他開源參考實現 
16.4 MVP 的好處 
16.5 MVP 存在的問題 
第17章 MVVM模式及Android DataBinding實戰 
17.1 Data Binding 表示式 
17.2 資料物件 
17.3 資料繫結 
17.4 事件繫結 
第18章 觀察者模式的拓展:事件匯流排 
18.1 為何要使用 
18.2 原理 
18.3 開源實現 
18.3.1 EventBus 
18.3.2 otto 
18.4 與觀察者模式及 Android 廣播的區別 
第19章 書寫簡潔規範的程式碼 
19.1 Java 編碼規範 
19.1.1 原始碼檔案的定義 
19.1.2 原始碼檔案的結構 
19.1.3 遵循的格式 
19.1.4 命名約定 
19.1.5 Javadoc 
19.2 Android 命名規範 
19.2.1 佈局檔案的命名 
19.2.2 資原始檔的命名 
19.2.3 類的命名 
19.3 CheckStyle 的使用 
第20章 基於開源專案搭建屬於自己的技術堆疊 
20.1 APP 的整體架構 
20.2 技術選型的考量點 
20.3 日誌記錄能力 
20.4 JSON 解析能力 
20.4.1 gson 
20.4.2 jackson 
20.4.3 Fastjson 
20.4.4 LoganSquare 
20.5 資料庫操作能力 
20.5.1 ActiveAndroid 
20.5.2 ormlite 
20.5.3 greenDAO 
20.5.4 Realm 
20.6 網路通訊能力 
20.6.1 android-async-http 
20.6.2 OkHttp 
20.6.3 Volley 
20.6.4 Retrofit 
20.7 圖片快取和顯示能力 
20.7.1 BitmapFun 
20.7.2 Picasso 
20.7.3 Glide 
20.7.4 Fresco 
20.7.5 Android-Universal-Image-Loader 
第3篇 經驗總結篇 
第21章 64K方法數限制原理與解決方案 
21.1 64K 限制的原因 
21.2 使用 MultiDex 解決 64K 限制的問題 
21.2.1 Android 5.0 之前的版本 
21.2.2 Android 5.0 及之後的版本 
21.3 如何避免出現 64K 限制 
21.4 配置 MultiDex 
21.5 MultiDex Support Library 的侷限性 
21.6 在開發階段優化 MultiDex 的構建 
第22章 Android 外掛框架機制研究與實踐 
22.1 基本概念 
22.1.1 宿主和外掛 
22.1.2 ClassLoader 機制 
22.2 開源框架 
22.2.1 android-pluginmgr 
22.2.2 dynamic-load-apk 
22.2.3 DynamicAPK 
22.2.4 DroidPlugin 
22.2.5 Small 
第23章 推送機制實現原理詳解 
23.1 推送的開源實現方案 
23.1.1 基於 XMPP 協議 
23.1.2 基於 MQTT 協議 
23.2 推送的第三方平臺 
23.3 自己實現推送功能 
23.3.1 長連線的建立(TCPConnectThread) 
23.3.2 資料的傳送(TCPSendThread) 
23.3.3 資料的接收(TCPReceiveThread) 
23.3.4 心跳包的實現(TCPHeartBeatThread) 
第24章 APP 瘦身經驗總結 
24.1 APP 為什麼變胖了 
24.2 從 APK 檔案的結構說起 
24.3 優化圖片資源佔用的空間 
24.3.1 無失真壓縮 [ImageOptim] 
24.3.2 有失真壓縮 [ImageAlpha] 
24.3.3 有失真壓縮 [TinyPNG] 
24.3.4 PNG/JPEG 轉換為 WebP 
24.3.5 儘量使用 NinePatch 格式的 PNG 圖 
24.4 使用 Lint 刪除無用資源 
24.5 利用 Android Gradle 配置 
24.5.1 minifyEnable 
24.5.2 shrinkResources 
24.5.3 resConfigs 
24.5.4 ndk.abiFilters 
24.6 重構和優化程式碼 
24.7 資源混淆 
24.8 外掛化 
第25章 Android Crash 日誌收集原理與實踐 
25.1 Java 層 Crash 捕獲機制 
25.1.1 基本原理 
25.1.2 執行緒資訊 
25.1.3 SharedPreference 資訊 
25.1.4 系統設定 
21.1.5 Logcat 中的日誌記錄 
25.1.6 自定義 Log 檔案中的內容 
25.1.7 MemInfo 資訊 
25.2 Native 層 Crash 捕獲機制 
25.3 Crash 的上報 
第4篇 新技術篇 
第26章 函數語言程式設計思想及其在Android中的應用 
26.1 程式碼的簡化 
26.2 Operators 簡介 
第27章 依賴注入及其在Android中的應用 
27.1 基本概念 
27.1.1 建構函式注入 
27.1.2 Setter 函式注入 
27.1.3 介面注入 
27.2 為何需要框架 
27.3 開源框架的選擇 
27.3.1 ButterKnife 
27.3.2 RoboGuice 
27.3.3 Dagger 
27.3.4 Dagger2 
27.3.5 框架的對比 
第28章 Android世界的Swift:Kotlin在Android中的應用 
28.1 選擇 Kotlin 的原因 
28.2 Kotlin 的安裝和配置 
28.3 Kotlin 語言的特性 
28.3.1 可表達性 
28.3.2 空型別安全 
28.3.3 擴充套件函式 
28.4 Kotlin 的 Gradle 配置 
28.5 將 Java 類轉換成 Kotlin 類 
28.6 相關資料 
第29章 React Native For Android入門指南 
29.1 環境配置 
29.1.1 Homebrew 
29.1.2 nvm 
29.1.3 Node.js 
29.1.4 watchman 
29.1.5 flow 
29.2 Android 開發環境的要求 
29.3 React Native 工程配置 
29.3.1 安裝react-native 
29.3.2 生成工程 
29.4 Android Studio 工程概覽 
29.5 React Native 依賴庫修改為本地 
29.5.1 下載 react-native.aar 
29.5.2 react-native.aar 的檔案內容 
29.5.3 Gradle 本地依賴 
29.5.4 將 node_modules 上傳到 svn/git 
29.6 React Native 學習建議 
第30章 Android線上熱修復方案研究 
30.1 線上熱修復的基本流程 
30.2 Dexposed 
30.2.1 如何整合 
30.2.2 基本用法 
30.2.3 線上熱修復 
30.2.4 平臺的限制 
30.3 AndFix 
30.3.1 如何整合 
30.3.2 補丁包生成工具 
30.3.3 平臺的限制 
30.4 Nuwa 
30.4.1 基本原理 
30.4.2 如何整合 
30.4.3 補丁生成工具 
30.4.4 平臺的限制 
30.5 總結 
第31章 面向切面程式設計及其在Android中的應用 
31.1 AOP 的基本概念 
31.2 程式碼織入的時機 
31.3 基於 AspectJ 實現 Android 平臺的 AOP 
31.3.1 Hugo 的用法簡介 
31.3.2 Hugo 的實現原理 
31.4 其他 AOP 開源框架 
第32章 基於Facebook Buck改造Android構建系統 
32.1 Buck環境配置 
32.1.1 Homebrew 方式 
32.1.2 手動構建方式 
32.1.3 安裝 Watchman 
32.1.4 安裝 Android SDK 和 Android NDK 
32.2 快速建立基於 Buck 構建的 Android 工程 
32.3 Buck 的基本概念 
32.3.1 構建規則(Build Rule) 
32.3.2 構建目標(Build Target) 
32.3.3 構建檔案(Build File) 
32.3.4 構建目標模式(Build Target Pattern) 
32.4 專案改造實戰 
32.4.1 步驟一:手動下載工程依賴的第三方 Jar包或者aar包 
32.4.2 步驟二:將 R.* 常量修改為非 final 的 
32.4.3 步驟三:建立 BUCK 檔案 
32.4.4 步驟四:編譯 Buck 的 buck-android-support 
32.4.5 步驟五:Exopackage 的使用 
32.5 Buck 的自動化改造 
第5篇 效能優化篇 
第33章 程式碼優化 
33.1 資料結構的選擇 
33.2 Handler 和內部類的正確用法 
33.3 正確地使用 Context 
33.3.1 Context 的種類 
33.3.2 錯誤使用 Context 導致的記憶體洩漏 
33.3.3 不同 Context 的對比 
33.4 掌握 Java 的四種引用方式 
33.5 其他程式碼微優化 
33.5.1 避免建立非必要的物件 
33.5.2 對常量使用 static final 修飾 
33.5.3 避免內部的 Getters/Setters 
33.5.4 程式碼的重構 
第34章 圖片優化 
34.1 圖片的格式 
34.1.1 JPEG 
34.1.2 PNG 
34.1.3 GIF 
34.1.4 WebP 
34.2 圖片的壓縮 
34.2.1 無失真壓縮 ImageOptim 
34.2.2 有失真壓縮 ImageAlpha 
34.2.3 有失真壓縮 TinyPNG 
34.2.4 PNG/JPEG 轉換為 WebP 
34.2.5 儘量使用 NinePatch 格式的 PNG 圖 
34.3 圖片的快取 
第35章 電量優化 
35.1 BroadcastReceiver 
35.2 資料傳輸 
35.3 位置服務 
35.4 AlarmManager 
35.5 WakeLock 
第36章 佈局優化 
36.1 include 標籤共享佈局 
36.2 ViewStub 標籤實現延遲載入 
36.3 merge 標籤減少佈局層次 
36.4 儘量使用 CompoundDrawable 
36.5 使用 Lint 
第37章 網路優化 
37.1 避免 DNS 解析 
37.2 合併網路請求 
37.3 預先獲取資料 
37.4 避免輪詢 
37.5 優化重連機制 
37.6 離線快取 
37.7 壓縮資料大小 
37.8 不同的網路環境使用不同的超時策略 
37.9 CDN 的使用 
第6篇 移動安全篇 
第38章 Android混淆機制詳解 
38.1 Java 程式碼的混淆 
38.1.1 Proguard 的特性 
38.1.2 Proguard 的使能和配置 
38.1.3 proguard-rules.pro 檔案的編寫 
38.1.4 Proguard 生成的檔案 
38.1.5 Proguard 混淆規則彙總 
38.2 Native(C/C++) 程式碼的混淆 
38.3 資原始檔的混淆 
第39章 Android 反編譯機制詳解 
39.1 資原始檔的反編譯 
39.1.1 ApkTool 的安裝 
39.1.2 ApkTool 的使用 
39.2 Java 程式碼的反編譯 
第40章 客戶端敏感資訊隱藏技術研究 
40.1 敏感資訊巢狀在 strings.xml 中 
40.2 敏感資訊隱藏在 Java 原始碼中 
40.3 敏感資訊隱藏在 BuildConfig 中 
40.4 使用 DexGuard 
40.5 對敏感資訊進行偽裝或者加密 
40.6 敏感資訊隱藏在原生函式庫中(.so檔案) 
40.7 對APK進行加固處理 
第41章 Android 加固技術研究 
41.1 愛加密的主要功能 
41.1.1 漏洞分析 
41.1.2 加密服務 
41.1.3 渠道監測 
41.2 常見 APP 漏洞及風險 
41.2.1 靜態破解 
41.2.2 二次打包 
41.2.3 本地儲存資料竊取 
41.2.4 介面擷取 
41.2.5 輸入法攻擊 
41.2.6 協議抓取 
41.3 Android 程式反破解技術 
41.3.1 對抗反編譯 
41.3.2 對抗靜態分析 
41.3.3 對抗動態除錯 
41.3.4 防止重編譯 
41.4 加固技術研究知識儲備 
41.4.1 掌握常見的破解分析工具 
41.4.2 掌握 Dalvik 指令集程式碼 
41.4.3 掌握 Dex 和 Odex 檔案格式 
41.4.4 掌握 Smali 檔案格式 
41.4.5 掌握基於 Android 的 ARM 組合語言基礎 
第42章 Android安全編碼 
42.1 WebView 遠端程式碼執行 
42.2 WebView 密碼明文儲存 
42.3 Android 本地拒絕服務 
42.3.1 非法序列化物件導致的 ClassNotFoundException 
42.3.2 空 Action 導致的 NullPointerException 
42.3.3 強制型別轉換導致的 ClassCastException 
42.3.4 陣列越界導致的 IndexOutOfBoundsException 
42.4 SharedPreference 全域性任意讀寫 
42.5 金鑰硬編碼 
42.6 AES/DES/RSA 弱加密 
42.7 隨機函式使用錯誤 
42.8 WebView 忽略 SSL 證書 
42.9 HTTPS 證書弱校驗 
42.9.1 自定義 X509TrustManager 未實現安全校驗 
42.9.2 自定義 HostnameVerifier 預設接受所有域名 
42.9.3 SSLSocketFactory 信任所有證書 
42.10 PendingIntent 使用不當 
第7篇 工具篇 
第43章 Android除錯工具Facebook Stetho 
43.1 檢視佈局監視 
43.2 資料庫監視 
43.3 網路監視 
43.3.1 網路模組使用的是 HTTPUrlConnection 
43.3.2 網路模組使用的是 OkHttp 
43.4 dumpapp 
43.4.1 外掛的編寫 
43.4.2 外掛的整合 
43.4.3 外掛的使用 
43.5 Javascript 控制檯 
43.6 最佳實踐 
第44章 記憶體洩漏檢測函式庫 LeakCanary 
44.1 基本概念 
44.2 LeakCanary 的整合 
44.3 LeakCanary 的原理 
44.4 LeakCanary 的定製 
44.4.1 RefWatcher 的自定義 
44.4.2 通知頁面樣式的自定義 
44.4.3 記憶體洩漏堆疊資訊儲存個數的自定義 
44.4.4 Watcher 的延時 
44.4.5 自定義記憶體洩漏堆疊資訊和 heap dump 的處理方式 
44.4.6 忽略特定的弱引用 
44.4.7 不監視特定的 Activity 類 
第45章 基於Facebook Redex實現Android APK的壓縮和優化 
45.1 轉換的時機 
45.2 管道的思想 
45.3 減少位元組碼的意義 
45.4 混淆和壓縮 
45.5 使用行內函數 
45.6 無用程式碼的消除 
45.7 Redex 的整合和使用 
45.7.1 依賴的安裝 
45.7.2 下載,構建和安裝 
45.7.3 使用 
第46章 Android Studio你所需要知道的功能 
46.1 Annotate 
46.2 .ignore 外掛 
46.3 Live Templates 
46.4 整合 Bug 管理系統 
第8篇 測試篇 
第47章 Android單元測試框架簡介 
47.1 Java 單元測試框架 JUnit 
47.2 Android 單元測試框架 Robolectric 3.0 
47.3 Java 模擬測試框架 Mockito 
47.3.1 行為的驗證 
47.3.2 Stub(樁函式)的使用 
第48章 Android UI自動化測試框架簡介 
48.1 Monkey 
48.2 MonkeyRunner 
48.3 UIAutomator 
48.4 Robotium 
48.5 Espresso 
48.6 Appium 
第49章 Android靜態程式碼分析實戰 
49.1 Java程式碼規範檢查工具CheckStyle 
49.1.1 Gradle方式 
49.1.2 Android Studio外掛方式 
49.2 Java靜態程式碼分析工具FindBugs 
49.2.1 Gradle方式 
49.2.2 Android Studio外掛方式 
49.3 Java靜態程式碼分析工具PMD 
49.3.1 Gradle方式 
49.3.2 Android Studio外掛方式 
49.4 Android程式碼優化工具Lint 
49.4.1 Gradle方式 
49.4.2 Android Studio外掛方式 
第50章 基於Jenkins+Gradle搭建Android持續整合編譯環境 
50.1 Tomcat的下載和啟動 
50.2 Jenkins的下載和執行 
50.3 Jenkins外掛的安裝 
50.4 Jenkins全域性配置 
50.4.1 配置 JDK 環境 
50.4.2 配置 Android SDK 環境 
50.4.3 配置 Git 環境 
50.4.4 配置 SVN 環境 
50.4.5 配置 Gradle 環境 
50.5 JOB相關的操作 
50.5.1 JOB 的建立 
50.5.2 JOB 的配置 
50.5.3 Gradle 的配置 
50.5.4 構建觸發器的配置 
50.5.5 引數化構建 
50.6 Jenkins預定義的環境變數

相關推薦

Android高階書籍目錄

第1篇 基礎篇  第1章 Android觸控事件傳遞機制  1.1 觸控事件的型別  1.2 事件傳遞的三個階段  1.3 View的事件傳遞機制  1.4 ViewGroup的事件傳遞機制  第2章 Android View的繪製流程  2.1 繪製的整體流程  2.2 M

Android高階之自定義View

前言 在網上看到一張圖,花了些時間自己嘗試著寫了一個自定義View,裡面涉及到了自定義屬性、自定義View padding屬性的處理、畫筆(Paint)和畫布(Canvas)的使用、解析度適配問題、效能問題、屬性動畫等,覺得還是有些東西值的記錄一下的,效果圖如下: 自定義屬

Android高階ToolBar

我記得之前Android4.0的時候是actionBar,到了Android5.0以後google新出了ToolBar用以彌補ActionBar的不足。今天我們就來講一下 ToolBar的用法。其實現在Android系統的UI設計有些已經超越了IOS... 一、基本用法 1. 我們新建立一個

Android高階之 TextInputLayout用法

TextInputLayout見名知義與文字輸入有關係,TextInputLayout控制元件通過內嵌EditText來實現輸入文字時,根據預先設定的屬性向使用者展示相應的提醒文字並附有酷炫的動畫效果。例如,當文字框裡的字元長度大於10的時候自動給使用者提示,無需編寫額外的程

Android高階--插曲-從Android5.0到Android9.0各版本變化

                            從Android5.0到Android9.0 自從公司提出了一些出其不意的需求之後我就下定了決心去了解安卓各版本系統的差異。這些出其不意的需求要麼屬於黑客行為,要麼還不成熟,很難順利的實現,例如做一個殺不死的APP,又

[Android高階]

  主要本文的主要的內容來源《Android 高階進階》(顧浩鑫/著)圖書 先看一下思維導線 Android View(除ViewGroup的控制元件) 的事件處理機制,我們可以理解成一個場景。當用戶開始一個觸控的事件, 就行先從最外的Activity開始, 首先

Android高階——繪圖篇(五)setXfermode 設定混合模式

一、GPU硬體加速 1、概述 GPU英文全稱Graphic Processing Unit,中文翻譯為“圖形處理器”。與CPU不同,GPU是專門為處理圖形任務而產生的晶片。 在GPU出現之前,CPU一直負責著所有的運算工作,CPU的架構是有利於X86

Android高階》小密圈開通啦

@author ASCE1885的 Github 簡書 微博 CSDN 知乎 《Android高階進階》一書的讀者可免費加入,後續會專注於原創或者分享 Android,iOS,React N

Android高階——繪圖篇(七)Canvas 與 圖層(一)

開篇 前面很多篇文章都用到了圖層的概念,但是一直沒有詳細介紹,今天這篇文章將詳細的介紹 Canvas 與 圖層的概念 一、如何獲得一個Canvas物件 方法一:自定義view時, 重寫onDraw、dispatchDraw方法 protect

Android高階——繪圖篇(一)Canvas基本操作

開篇 前面在介紹 onDraw 過程時,有提到 View 的繪製(Canvas 的使用),後續的幾篇會詳細的介紹有關 Canvas 以及 Paint 的相關操作。 Canvas 和 Paint Canvas 和 Paint 之間的關係就像我們平時畫畫需要的

(轉)Android高階--插曲-從Android5.0到Android9.0各版本變化

                            從Android5.0到Android9.0            自從公司提出了一些出其不意的需求之後我就下定了決心去了解安卓各版本系統的差異。這些出其不意的需求要麼屬於黑客行為,要麼還不成熟,很難順利的實現,例

Android高階Android OpenGL開啟混合色

         這一節看看混合色的開啟,主要是實現立方體半透明的效果,但是今天這篇文章因為內容比較少,所以就增加了點觸事件,當觸及螢幕的時候,開啟半透明效果,再次點選就關閉混合效果,效果圖如下: 開啟透明混色前 開啟半透明混色後      

突破自己的技術瓶頸,Android程式設計師高階,危機感

>  突破自己的技術瓶頸,個人的技術輸入與輸出1、技術瓶頸 ; 2、工作上瓶頸 ; 3、收入上瓶頸 如何突破技術發展瓶頸?- http://www.sohu.com/a/246164204_100066886 如何持續進步,突破技術瓶頸?- http://www.soh

Android開發高階之元件化框架搭建

背景 當一個專案經過N手人開發,N個產品經理的蹂躪,N長時間的維護,此時一定存在大量程式碼冗餘、業務耦合、專案臃腫,資原始檔大把重複等等,不堪重負。當需要增加新功能或者修改之前某個功能的時候,我相信很多同仁都說只敢增加,不敢隨意的去刪除、修改原有的程式碼,因為不知道哪些有用,哪些沒有用。

Android 動畫之動畫切換

ram 屏幕 pre 退出 tac 旋轉動畫 utf 轉動 XML 一、Activity切換動畫   在Android開發中,經常會遇到Activity之間切換效果,下面介紹一下,Activity左右滑動切換效果。在Android2.0以後版本,在Activity中添加了

Android逆向(7)——揭開Hook的神秘面紗

java字符串 一句話 -o block 模型 它的 寫法 tar 1-1 本文作者:i春秋作家——HAI_ 0×00 前言 HAI_逆向使用手冊(想嘗試一下新的寫法) 其他 Android逆向進階 系列課程 <<<<<<< 人

Android 高手教程(十三)之----Android 數據庫SQLiteDatabase的使用!!

value bre encoding class 圖片 parent tex getitem length Android 提供了三種數據存儲方式,第一種是文件存儲;第二種是SharedPreferences 存儲;第三種就是數據庫SQLiteDatabase 存儲。文件存

Android高手教程(九)之----Android Handler的使用!!!

() timer welcom csdn 發送 state img 技術分享 技術 大家好我們這一節講的是Android Handler的使用,在講Handler之前,我們先提個小問題,就是如何讓程序5秒鐘更新一下Title.首先我們看一下習慣了Java編程的人,在不知道H

Android高手教程(十六)之---Android中萬能的BaseAdapter(Spinner,ListView,GridView)的使用!

private idt save idv -- imp drawable android中 welcome 大家好!今天給大家講解一下BaseAdapter(基礎適配器)的用法,適配器的作用主要是用來給諸如(Spinner,ListView,GridView)來填充數據的。

Android高手教程(二十)之---Android與JavaScript方法相互調用!

工程 orien lns asc eat element 加載 一個 creat 在Android中通過WebView控件,可以實現要加載的頁面與Android方法相互調用,我們要實現WebView中的addJavascriptInterface方法,這樣html才能調用a