初識(shí)Weex(二)

前言

前面一篇文章误证,已經(jīng)描述了weex集成Android的環(huán)境配置和方法,并實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的加載本地文件的demo附迷。那么這篇主要講下加載遠(yuǎn)程文件和遠(yuǎn)程調(diào)試彭则。

加載遠(yuǎn)程文件

加載遠(yuǎn)程文件也很簡(jiǎn)單,Weex提供了訪問(wèn)遠(yuǎn)程地址的接口renderByUrl鱼的,具體實(shí)現(xiàn)代碼:

public class MainActivity extends AppCompatActivity implements IWXRenderListener {
    WXSDKInstance mWXSDKInstance;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mWXSDKInstance = new WXSDKInstance(this);
        mWXSDKInstance.registerRenderListener(this);
//        mWXSDKInstance.render("Weex Test Page", WXFileUtils.loadFileContent("hello_world_1.js",this),null,null,-1,-1, WXRenderStrategy.APPEND_ASYNC);
        mWXSDKInstance.renderByUrl("weex Test Page","http://xx.xx.xx.xx:3001/weex_tmp/h5_render/hello_world_1.js",                null,null,-1,-1, WXRenderStrategy.APPEND_ASYNC);
    }
 
    @Override
    public void onViewCreated(WXSDKInstance instance, View view) {
        setContentView(view);
    }
 
    @Override
    public void onRenderSuccess(WXSDKInstance instance, int width, int height) {
    }
 
    @Override
    public void onRefreshSuccess(WXSDKInstance instance, int width, int height) {
    }
 
    @Override
    public void onException(WXSDKInstance instance, String errCode, String msg) {
    }
 
    @Override
    protected void onResume() {
        super.onResume();
        if(mWXSDKInstance!=null){
            mWXSDKInstance.onActivityResume();
        }
    }
 
    @Override
    protected void onPause() {
        super.onPause();
        if(mWXSDKInstance!=null){
            mWXSDKInstance.onActivityPause();
        }
    }
 
    @Override
    protected void onStop() {
        super.onStop();
        if(mWXSDKInstance!=null){
            mWXSDKInstance.onActivityStop();
        }
    }
 
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if(mWXSDKInstance!=null){
            mWXSDKInstance.onActivityDestroy();
        }
    }
}

其他代碼跟之前本地是一樣一樣的理盆。切記要在Manifest文件中添加網(wǎng)絡(luò)訪問(wèn)權(quán)限 <uses-permission android:name="android.permission.INTERNET"/>,這樣就實(shí)現(xiàn)了加載遠(yuǎn)程文件。
運(yùn)行時(shí)凑阶,首先在.we的目錄中執(zhí)行weex hello_world_1.we --port 3001,然后在當(dāng)前目錄下會(huì)生成一個(gè)weex_tmp的文件夾猿规,遠(yuǎn)程訪問(wèn)的地址就是:http://本機(jī)ip:3001/weex_tmp/h5_render/hello_world_1.js

遠(yuǎn)程調(diào)試

添加依賴(lài)

遠(yuǎn)程調(diào)試需要添加weex devtool aar的依賴(lài),當(dāng)然也是可以通過(guò)對(duì)源碼的依賴(lài)的宙橱。最新的release版本可以通過(guò)這里查看姨俩。
源碼依賴(lài)就不再細(xì)說(shuō)了,添加module师郑,導(dǎo)入源碼环葵。這里僅講述下通過(guò)gradle的配置添加依賴(lài)的方式。
首先宝冕,gradle中添加依賴(lài)

dependencies {
  compile 'com.taobao.android:weex_inspector:0.8.0.0'
  compile 'com.squareup.okhttp3:okhttp:3.4.1'
  compile 'com.squareup.okhttp3:okhttp-ws:3.4.1'
}

這里補(bǔ)充幾個(gè)說(shuō)明:

  • 調(diào)試應(yīng)該只需要在debug包完成张遭,因此可以寫(xiě)成debugcompile即可
  • okhttp作為遠(yuǎn)程通信包是必須導(dǎo)入的,反射引用的包
  • 版本的使用需要兼容
weex sdk weex inspector debug server
0.8.0.0+ 0.8.0.0+ 0.2.39+
0.7.0+ 0.07.13 0.2.38
0.6.0+ 0.0.2.2 NULL

添加Debug開(kāi)關(guān)

  • 設(shè)置sRemoteDebugMode 和 配置sRemoteDebugProxyUrl
    Weex SDK的WXEnvironment類(lèi)里有一對(duì)靜態(tài)變量標(biāo)記了weex當(dāng)前的調(diào)試模式是否打開(kāi)和Debug Server的websocket地址
public static boolean sRemoteDebugMode; //是否開(kāi)啟debug模式地梨,默認(rèn)關(guān)閉
public static String sRemoteDebugProxyUrl;  //DebugServer的webSocket地址
  • 修改sRemoteDebugMode之后調(diào)用reload()
private void initDebugEnviroment(){
  WXEnvironment.sRemoteDebugMode = true;
  WXEnvironment.sRemoteDebugProxyUrl = "ws://xx.xx.xx.xx:8088/debugProxy/native";
  WXSDKEngine.reload()
}

在調(diào)用設(shè)置Debug模式后菊卷,一定要是調(diào)用WXSDKEngine.reload()來(lái)重置Weex的運(yùn)行環(huán)境上下文缔恳,這個(gè)方法重新創(chuàng)建了weex運(yùn)行時(shí)和DebugBridge并講所有的JS調(diào)用橋接到調(diào)試服務(wù)器執(zhí)行。
值得注意的是如果Debug的環(huán)境設(shè)置在SDK初始化之前洁闰,那么就不需要在調(diào)用reload方法了

運(yùn)行調(diào)試

  1. 服務(wù)端運(yùn)行weex debug
    調(diào)試界面
  2. 打開(kāi)集成devtool的應(yīng)用歉甚,上述的調(diào)試界面出現(xiàn)對(duì)應(yīng)的手機(jī)信息(要在同一個(gè)局域網(wǎng)內(nèi))


    手機(jī)連接到 Debug Server
  3. 點(diǎn)擊Debugger,然后根據(jù)提示按F12
    查看log
    如圖所示扑眉,紅框部分為我在hook函數(shù)中打的log
  4. 在手機(jī)App List頁(yè)面點(diǎn)擊Inspector纸泄,查看頁(yè)面結(jié)構(gòu)
    頁(yè)面結(jié)構(gòu)

另附上官網(wǎng)關(guān)于devtool介紹的時(shí)序圖,有時(shí)間可以對(duì)照源碼看看:


devtool時(shí)序圖

以上便是Android集成遠(yuǎn)程調(diào)試的相關(guān)內(nèi)容襟雷,舉例比較簡(jiǎn)單刃滓,但也能夠表述集成的過(guò)程和使用方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末耸弄,一起剝皮案震驚了整個(gè)濱河市咧虎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌计呈,老刑警劉巖砰诵,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異捌显,居然都是意外死亡茁彭,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)扶歪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)理肺,“玉大人,你說(shuō)我怎么就攤上這事善镰∶萌” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵炫欺,是天一觀的道長(zhǎng)乎完。 經(jīng)常有香客問(wèn)我,道長(zhǎng)品洛,這世上最難降的妖魔是什么树姨? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮桥状,結(jié)果婚禮上帽揪,老公的妹妹穿的比我還像新娘。我一直安慰自己辅斟,他們只是感情好台丛,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般挽霉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上变汪,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天侠坎,我揣著相機(jī)與錄音,去河邊找鬼裙盾。 笑死实胸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的番官。 我是一名探鬼主播庐完,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼徘熔!你這毒婦竟也來(lái)了门躯?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤酷师,失蹤者是張志新(化名)和其女友劉穎讶凉,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體山孔,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡懂讯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了台颠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片褐望。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖串前,靈堂內(nèi)的尸體忽然破棺而出瘫里,到底是詐尸還是另有隱情,我是刑警寧澤酪呻,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布减宣,位于F島的核電站,受9級(jí)特大地震影響玩荠,放射性物質(zhì)發(fā)生泄漏漆腌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一阶冈、第九天 我趴在偏房一處隱蔽的房頂上張望闷尿。 院中可真熱鬧,春花似錦女坑、人聲如沸填具。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)劳景。三九已至誉简,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盟广,已是汗流浹背闷串。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筋量,地道東北人烹吵。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像桨武,于是被迫代替她去往敵國(guó)和親肋拔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理呀酸,服務(wù)發(fā)現(xiàn)凉蜂,斷路器,智...
    卡卡羅2017閱讀 134,628評(píng)論 18 139
  • 引子 這篇文章是筆者近期關(guān)于Weex在iOS端的一些研究和實(shí)踐心得七咧,和大家一起分享分享跃惫,也算是對(duì)學(xué)習(xí)成果的總結(jié)。文...
    一縷殤流化隱半邊冰霜閱讀 12,044評(píng)論 53 165
  • 2016年4月21日艾栋,阿里巴巴在Qcon大會(huì)上宣布開(kāi)源跨平臺(tái)移動(dòng)開(kāi)發(fā)工具Weex爆存,Weex能夠完美兼顧性能與動(dòng)態(tài)性...
    晴天咚咚閱讀 2,887評(píng)論 1 15
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,737評(píng)論 25 707
  • 到了一定的年齡,不會(huì)在熱衷于無(wú)休止的“淘寶”蝗砾,無(wú)論是買(mǎi)衣服或是其他先较。開(kāi)始有固定的熟悉的品牌,她了解我悼粮,我也了解她闲勺。...
    不不201710閱讀 902評(píng)論 0 3