原创 Android組件化實戰四: APT的介紹與使用

前言 上一篇文章分析了組件化模塊交互的兩種實現方式,對於全局Map保存目標Activity的路徑信息和類對象方案,如果Activity的數量繁多,則需要在主模塊app的application中重複執行多次保存操作,既不優雅,又不符

原创 Android UI繪製流程之測量篇

經過前一片前奏的分析,我們知道從ViewRootImpl的performTraversals方法正式進入View的測量、佈局、繪製流程。本文着重分析View的measure流程。直接上代碼吧 frameworks/base/cor

原创 Android組件化實戰六:路由架構設計

前言 結合前面的模塊之間的交互,主要分析了類加載、全局Map記錄(跳轉目標Class)兩種交互方式,以及APT和JavaPoet技術生成類文件,本文分析組件化的路由架構,我們到底需要通過APT和JavaPoet生成什麼樣的類文件呢

原创 Android組件化實戰五: APT的高級用法JavaPoet

前言 上一篇文章簡單介紹了APT及其使用,生成相應的java文件,幫我們執行相關的操作,生成java文件的方式是字符串拼接的方式,但是如果要生成的java文件成員屬性和方法比較多,這種方式就比較麻煩了,而且容易出現人爲失誤。所有就

原创 Android屏幕刷新機制

60Hz刷新頻率由來 12fps:由於人類眼睛的特殊生理結構,如果所看畫面之幀率高於每秒約10~12幀的時候,就會認爲是連貫的 24fps:有聲電影的拍攝及播放幀率均爲美秒24幀,對一般人而言已經算可接受 30fps:早期的高動

原创 Android 組件化實戰二: 項目部署

前言 組件化項目的意義主要體現在這幾個方面,首先就是面試的時候,如果簡歷上寫了三五年的工作經歷,但是被問到組件化的相關原理打不上來,確實說不過去。在開發需求層面,即不相互依賴、又可以相互交互、任意組合、高度解耦;在團隊開發效率層面

原创 Android 組件化實戰一: Gradle基礎語法

前言 Android 組件化系列文章旨在徹底掌握組件化的原理,從0到1搭建一個自定義的組件化框架。萬丈高樓平地起,本文主要介紹組件化過程中項目部署涉及的Gradle基本語法。 打印信息 // 在app/build.gradle文件

原创 Android組件化實戰三: 模塊之間的交互

前言 上一篇文章記錄了組件化開發中的項目部署需要注意的地方,而本文旨在實現模塊之間的交互,比如頁面的跳轉,數據的傳遞等等,而在集成化模式下,各個子模塊都是library,到底該如何實現呢?首先我們要知道傳統的組件間的通信方式,以及

原创 Lambda表達式不再只是聽說

文章目錄1. Lambda表達式簡介1.1 什麼是Lambda?1.2 爲什麼要使用Lambda表達式?1.3 Lambda對接口的要求2. Lambda表達式基礎語法2.1接口準備2.2 通過對上面接口的使用來了解Lambda語

原创 Bitmap之內存管理

文章目錄前言1.Bitmap簡介2.BitmapFactory.Options控制圖片解碼的參數3.Bitmap的內存佔用3.Bitmap的高效加載/內存壓縮/採樣率壓縮4.Bitmap的緩存策略5.Bitmap的內存複用6.小結

原创 OkHttp原理分析總結

OkHttp原理解析 OkHttp 3.10.0版本,最新OkHttp爲:4.0.1邏輯與3版本並沒有太大變化,但是改爲kotlin實現。 OkHttp介紹 OkHttp是當下Android使用最頻繁的網絡請求框架,由Squa

原创 socket通信原理分析總結

Socket 什麼是Socket? 即套接字,是一個對 TCP / IP協議進行封裝 的編程調用接口(API) 用來描述IP地址和端口,是通信鏈的句柄,應用程序可以通過Socket向網絡發送請求或者 應答網絡請求!Socket是

原创 Android性能優化系列一:啓動優化

文章目錄黑白屏優化冷/熱/暖啓動代碼未優化造成的問題App啓動時間檢測方式方式一:adb命令方式二:手動打點啓動優化工具選擇traceview介紹Systrace介紹優雅獲取方法耗時異步優化分析異步優化方案優化-啓動器啓動器的具體

原创 Bitmap之壓縮方案

文章目錄前言1.基礎知識1.1色彩模式1.2四種模式的區別1.3具體對比1.4bitmap內存佔用大小計算方式1.5圖片存在的形式1.6BitampFactory加載Bitmap對象的方式2.壓縮方案2.1採樣率壓縮2.2尺寸壓縮

原创 APT黃金搭檔JavaPoet,讓框架更穩定更簡潔

什麼是JavaPoet 項目主頁及源碼:https://github.com/square/javapoet APT + JavaPoet = 超級利刃 JavaPoet是square推出的開源java代碼生成框架,提供Java