1. 程式人生 > >Android如何區分app原生和webview實現

Android如何區分app原生和webview實現

在開發Android app時,特別是強內容展現型的功能,會想在原生native實現和web實現中做選擇,做這種選擇的時候,難免想看看競品或其它app類似功能是用哪種方式實現的。但是如何判斷其它app是用原生控制元件實現還是用webview載入網頁來實現呢?其實要想做到這一點不難,至少有兩種辦法:

一、抓包

這是比較原始,也是比較容易想到的,開啟相應介面,抓取資料包看看,如果有url是返回比較完整的html程式碼,那基本就是webview來實現的了。

二、利用系統開發人員工具

抓包的方法還是太麻煩,很多系統有更高階的開發人員工具功能,一般在設定裡可以找到,有些手機可能需要特殊的操作才能開啟開發人員工具功能。以meizu mx2為例,在撥號介面輸入 *#*#6961#*#* 

開啟“開發人員工具”功能(輸入 *#*#6960#*#* 關閉),點選“設定”->“輔助功能”->“開發人員工具”,在繪圖欄中找到“顯示佈局邊界”並開啟。這樣所有應用的控制元件佈局都一目瞭然了,webview作為一個控制元件,只有一個邊界框,所以通過這一點,就比較容易區分出一個介面是webview實現的還是native佈局控制元件實現的,當然也不排除用一堆webview來拼成一個介面的實現方法。

如下圖是一個native與webview混排的介面,藍色線框是各控制元件的繪製邊界,中間那一大塊佈局豐富的介面沒有顯示出很多邊界藍線,就是網頁實現的。

webview使用

除了上面兩種方法,一般來說,通過斷開網路,重新整理介面,觀察內容快取情況也可以對實現方式有個大致預判斷,一般來說快取做得好的,都是原生控制實現的,有介面區域性快取的就更大可能是原生的了。

高手們還有別的方案嗎?歡迎在下面評論!