新版本Profiler Android Studio Koala 褐色圖標(biāo): 設(shè)備性能實(shí)時(shí)展示 紅色圖標(biāo): 設(shè)備整體性能抓取 橙色圖標(biāo): CPU性能相關(guān) 綠色圖標(biāo): 內(nèi)存性能...
新版本Profiler Android Studio Koala 褐色圖標(biāo): 設(shè)備性能實(shí)時(shí)展示 紅色圖標(biāo): 設(shè)備整體性能抓取 橙色圖標(biāo): CPU性能相關(guān) 綠色圖標(biāo): 內(nèi)存性能...
處理概括關(guān)系 11.1 Pull Up Field (字段上移) 兩個(gè)子類擁有相同的字段,將字段移至超類 11.2 Pull Up Method (函數(shù)上移) 有些函數(shù),在各...
重新組織數(shù)據(jù) 8.1 Self Encapsulate Field (自封裝字段) 為字段建立取值/設(shè)值函數(shù),并且只以這些函數(shù)來(lái)訪問(wèn)字段 間接訪問(wèn)變量的好處: 子類可以通過(guò)腹...
在對(duì)象之間遷移數(shù)據(jù) 7.1 Move Method (搬移函數(shù)) 如果一個(gè)類有太多行為,或如果一個(gè)類與另一個(gè)類有太多合作而形成高度耦合,就需要搬移函數(shù)在類中尋找這樣的函數(shù):使...
第三章 代碼的壞味道 重復(fù)代碼 過(guò)長(zhǎng)函數(shù) 過(guò)大的類 過(guò)長(zhǎng)參數(shù)列 發(fā)散式變化(某個(gè)類經(jīng)常因?yàn)椴煌脑蛟诓煌姆较蛏习l(fā)生變化) 霰彈式修改 (每遇到某種變化,都必須在許多不同的...
第一章 重構(gòu)的基礎(chǔ): 我們需要為即將修改的代碼建立一套可靠的測(cè)試環(huán)境,為了使重構(gòu)的結(jié)果能夠得到保證,我們需要可靠的測(cè)試方式 分解并重組: 分解和重組的意義:代碼塊越小,代碼的...
應(yīng)用場(chǎng)景 新接到一個(gè)需求,統(tǒng)計(jì)商品列表中每個(gè)條目被用戶觀看的時(shí)間,從而來(lái)挖掘用戶興趣點(diǎn)。這個(gè)需求很常見(jiàn),比如今日頭條的新聞、簡(jiǎn)書(shū)的推薦文章、美團(tuán)的推薦美食都需要統(tǒng)計(jì)用戶在每個(gè)...
lambda是可以插樁成功的 主要從visitDynamicInstric那里入手
ASM字節(jié)碼插樁實(shí)現(xiàn)點(diǎn)擊防抖關(guān)于gradle plugin和transform之前的文章說(shuō)過(guò)了,這里就不展開(kāi)說(shuō)了思路:在點(diǎn)擊事件onclick的時(shí)候,將view的onclick在給定的時(shí)間給攔截掉。以前...
? 你在教我做事?
[Android]朝花夕拾之使用DexClassLoader動(dòng)態(tài)加載廣點(diǎn)通jar包1. 背景 幾年前做過(guò)一個(gè)需求,背景是這樣的: 公司的App中接入了廣點(diǎn)通廣告,這需要在APP內(nèi)嵌入廣告SDK。 在OPPO VIVO等應(yīng)用市場(chǎng)中,如果APP嵌入了第三方廣...
這個(gè)其實(shí)和圖片質(zhì)量也有一定的關(guān)系 你可以試一下第一種方案卡不卡 再看下第二種方案 如果第一種不卡第二種卡的話 可能是我的邏輯寫(xiě)的有問(wèn)題 我再檢查一下??????
[Android]實(shí)現(xiàn)RecyclerView和背景同步滑動(dòng)的效果最近公司項(xiàng)目要求實(shí)現(xiàn)一個(gè)效果,RecyclerView的背景是一張很長(zhǎng)的圖片,在RecyclerView元素滑動(dòng)的同時(shí),背景圖也要跟隨滑動(dòng),如果背景圖滑出屏幕或者沒(méi)有占滿屏幕...
你是要?jiǎng)討B(tài)加載jar包么? 操作其實(shí)就是這篇博客里講的 有一個(gè)反射的工具類沒(méi)列出來(lái) 你私聊我我跟你說(shuō)吧
[Android]朝花夕拾之使用DexClassLoader動(dòng)態(tài)加載廣點(diǎn)通jar包1. 背景 幾年前做過(guò)一個(gè)需求,背景是這樣的: 公司的App中接入了廣點(diǎn)通廣告,這需要在APP內(nèi)嵌入廣告SDK。 在OPPO VIVO等應(yīng)用市場(chǎng)中,如果APP嵌入了第三方廣...
首先,寫(xiě)一個(gè)demo: 運(yùn)行后,一定會(huì)報(bào)如下的錯(cuò)誤: 這個(gè)錯(cuò)誤是怎么來(lái)的呢,所謂的token null is not valid中的token又是什么呢?本篇我們來(lái)通過(guò)源碼來(lái)...
1. 前言 在上篇關(guān)于lambda表達(dá)式實(shí)現(xiàn)方式的文章中,有提到一個(gè)概念叫做MethodHandle,當(dāng)時(shí)的解釋是類似于C/C++的函數(shù)指針,但是文章發(fā)出后咨詢友人的意見(jiàn),發(fā)...
當(dāng)我們提起java lambda表達(dá)式的實(shí)現(xiàn)時(shí),第一反應(yīng)一定是:這就是java的語(yǔ)法糖啊,它實(shí)現(xiàn)肯定還是匿名內(nèi)部類?。?但是,事實(shí)真的是這樣么?不要著急,我們做個(gè)試驗(yàn)先。眾所...
1. 概念 首先我們來(lái)復(fù)習(xí)一下java內(nèi)存模型,java運(yùn)行時(shí)數(shù)據(jù)區(qū)大概分為五塊,分別是 方法區(qū) 虛擬機(jī)棧 本地方法棧 堆 程序計(jì)數(shù)器 而運(yùn)行時(shí)常量池是方法區(qū)的一部分,文字解...
1. 背景 幾年前做過(guò)一個(gè)需求,背景是這樣的: 公司的App中接入了廣點(diǎn)通廣告,這需要在APP內(nèi)嵌入廣告SDK。 在OPPO VIVO等應(yīng)用市場(chǎng)中,如果APP嵌入了第三方廣...
1. 前言 Virtual APK[https://github.com/didi/VirtualAPK]是滴滴出行自研的一款優(yōu)秀的插件化框架,其主要開(kāi)發(fā)人員有任玉剛老師 說(shuō)...