中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

Android端代碼染色原理及技術(shù)實踐

發(fā)布于:2021-03-01 15:49:07

1

1415

0

高德 地圖 Android

導(dǎo)讀

高德地圖開放平臺產(chǎn)品不斷迭代,代碼邏輯越來越復(fù)雜,現(xiàn)有的測試流程不能保證完全覆蓋所有業(yè)務(wù)代碼,測試不到的代碼及分支,會存在一定的風(fēng)險。為了保證測試全面覆蓋,需要引入代碼覆蓋率做為測試指標(biāo),需要對SDK代碼進(jìn)行染色,測試結(jié)束后可生成代碼覆蓋率報告,作為發(fā)版前的一項重要卡點指標(biāo)。本文小結(jié)了Android端代碼染色原理及技術(shù)實踐。

JaCoCo工具

JaCoCo有以下優(yōu)點:

  • 支持Ant和Gradle打包方式,可以自由切換。

  • 支持離線模式,更貼合SDK的使用場景。

  • JaCoCo文檔比較全面,還在持續(xù)維護(hù),有問題便于解決。

JaCoCo主要是通過ASM技術(shù)對Java字節(jié)碼進(jìn)行處理和插樁,ASM和Java字節(jié)碼技術(shù)不是本文重點,感興趣的朋友可以自行了解。下面重點介紹JaCoCo的插樁原理。

 

Jacoco探針

由于Java字節(jié)碼是線性的指令序列,所以JaCoCo主要是利用ASM處理字節(jié)碼,在需要的地方插入一些特殊代碼。

我們通過Test1方法觀察一下JaCoCo做的處理。