界面呈現(xiàn)大體分兩種:用html+css繪制頁面,運(yùn)行原理是打包工具創(chuàng)建一個(gè)只有一個(gè)或多個(gè)Activity的安卓應(yīng)用,這個(gè)Activity上就只有一個(gè)WebView來顯示頁面。就相當(dāng)于那個(gè)app實(shí)質(zhì)上只是個(gè)瀏覽器,只能看你寫的頁面的瀏覽器;類似RN這種用jsx+類css描述界面,運(yùn)行原理是打包工具創(chuàng)建一個(gè)安卓應(yīng)用,界面上的控件元素是通過你前面的描述來要求原生層創(chuàng)建對(duì)應(yīng)樣式的原生控件。一個(gè)很容易區(qū)分的方法是,打開手機(jī)的設(shè)置-開發(fā)人員設(shè)置-顯示布局邊界,然后打開你想查看的app,如果整個(gè)界面上只有一個(gè)大框框,里面的編輯框啦、按鈕啦這些元素都沒有框,那么就是第一種;如果幾乎每個(gè)元素都有五顏六色的框框住,且你知道它并不是直接原生開發(fā)的,那么就屬于第二種。這兩種都是用js來編寫邏輯,都用到了Bridge這種概念來打通原生(native)和js層的通訊,包括下面這些用途:告訴native要畫一個(gè)怎樣的控件(RN這種的)native告訴js有什么東西被點(diǎn)擊了之類的(同樣是RN這種的)告訴native需要調(diào)用什么native方法(兩種都會(huì))