轉自:html
https://article.fynas.com/android%E5%8C%BA%E5%88%86natvie%E5%92%8Cweb%E5%AE%9E%E7%8E%B0android
http://www.cnblogs.com/ruiati/p/4248708.htmlweb
在開發Android app時,特別是強內容展示型的功能,會想在原生native實現和web實現中作選擇,作這種選擇的時候,不免想看看競品或其它app相似功能是用哪一種方式實現的。可是如何判斷其它app是用原生控件實現仍是用webview載入網頁來實現呢?其實要想作到這一點不難,至少有兩種辦法:網絡
1、抓包app
這是比較原始,也是比較容易想到的,打開相應界面,抓取數據包看看,若是有url是返回比較完整的html代碼,那基本就是webview來實現的了。工具
2、利用系統開發人員工具佈局
抓包的方法仍是太麻煩,不少系統有更高級的開發人員工具功能,通常在設置裏能夠找到,有些手機可能須要特殊的操做才能打開開發人員工具功能。以meizu mx2爲例,在撥號界面輸入 *#*#6961#*#* 打開「開發人員工具」功能(輸入 *#*#6960#*#* 關閉),點擊「設置」->「輔助功能」->「開發人員工具」,在繪圖欄中找到「顯示佈局邊界」並打開。這樣全部應用的控件佈局都一目瞭然了,webview做爲一個控件,只有一個邊界框,因此經過這一點,就比較容易區分出一個界面是webview實現的仍是native佈局控件實現的,固然也不排除用一堆webview來拼成一個界面的實現方法。ui
以下圖是一個native與webview混排的界面,藍色線框是各控件的繪製邊界,中間那一大塊佈局豐富的界面沒有顯示出不少邊界藍線,就是網頁實現的。url
除了上面兩種方法,通常來講,經過斷開網絡,刷新界面,觀察內容緩存狀況也能夠對實現方式有個大體預判斷,通常來講緩存作得好的,都是原生控制實現的,有界面局部緩存的就更大多是原生的了。
高手們還有別的方案嗎?歡迎在下面評論!