国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity 熱更新 之 huatuo(HybridCLR)

這篇具有很好參考價(jià)值的文章主要介紹了Unity 熱更新 之 huatuo(HybridCLR)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一句話說(shuō)說(shuō)huatuo和Hybridclr:

huatuo是途游開源的,之前hybird的作者在途游,后來(lái)開源華佗,后來(lái)被途游收回,就寫了hybirdCLR;

一、Unity - IL2CPP技術(shù)原理與AOT

?階段1:C#發(fā)展,---> windows系列平臺(tái)? ---->? 微軟標(biāo)準(zhǔn) .net的標(biāo)準(zhǔn)開發(fā)出來(lái);

? ? ? ? ? ? ? ? 只需要開發(fā)出來(lái)符合.net字節(jié)碼的標(biāo)準(zhǔn)代碼,就可以讓代碼在.net上運(yùn)行起來(lái)。

階段2:項(xiàng)目 --- > Mono項(xiàng)目,.net虛擬機(jī)(Linux、windows、Androud等平臺(tái))+.net開發(fā)環(huán)境;

? ? ? ? ? ? ? ? C# ---> Mono ---> .net字節(jié)碼 ----> .net虛擬機(jī)上運(yùn)行起來(lái)。

階段3:早期Unity --->? Mono方案 ----> 實(shí)現(xiàn)跨平臺(tái)

階段4:Unity --->使用Mono的問題?

? ? ? ? a;程序的執(zhí)行效率,.net字節(jié)碼 ----> 運(yùn)行的;

? ? ? ? b:Mono虛擬機(jī)的移植 ---> webgl --->? bug,mono ----> Unity ---->;Unity 跨平臺(tái)會(huì)收到限制;

? ? ? ? c:版權(quán)問題,Unity Mono. .net授權(quán)

找出了另一條技術(shù)路線IL2CPP項(xiàng)目

? ? ? ? IL是什么?Intermediate Language 是一種通用的語(yǔ)言架構(gòu)和.net框架的低階(lowest-level)的編程語(yǔ)言

? ? ? ? CLI是什么?Common Language Infrastructrue 特指在.net平臺(tái)下的IL標(biāo)準(zhǔn),CIL類似一個(gè)面向?qū)ο蟮膮R編語(yǔ)言,并且它是完全基于堆棧的,它運(yùn)行在.net虛擬機(jī)上。

? ? ? ? 所以IL與CLI在Unity開發(fā)中 ---> 同一件事情.net平臺(tái)下的字節(jié)碼程序。 ----> IL標(biāo)準(zhǔn)是開發(fā)的(沒有版權(quán)問題)

? ? ? ? .net工具:Unity開發(fā)的C#代碼 ---> IL字節(jié)碼;(可以使用標(biāo)準(zhǔn)的.net開發(fā))

? ? ? ? IL2CPP項(xiàng)目: IL字節(jié)碼 ---> 靜態(tài)編譯型語(yǔ)言(C語(yǔ)言,C++)的代碼;簡(jiǎn)言就是IL --轉(zhuǎn)-->?C++代碼

? ? ? ? 后來(lái)就可以使用xcode、android NDK windows visual studio c++ 來(lái)編譯我們的代碼,把我們的代碼編程本地的機(jī)器指令,直接在OS上執(zhí)行---> 效率 高于 .net的解釋執(zhí)行。

????????AOT是什么?Ahead of time 離線編譯,把高級(jí)語(yǔ)言 ----> 靜態(tài)語(yǔ)言? ----->? 直接編譯成二進(jìn)制機(jī)器指令;

? ? ? ? IL2CPP 這個(gè)項(xiàng)目而言 :采用的AOT技術(shù)

? ? ? ? JIT技術(shù):Just In Time 運(yùn)行時(shí)編譯成二進(jìn)制機(jī)器指令

? ? ? ? IL2CPP vm:IL2CPP的虛擬機(jī),更像一個(gè)庫(kù),提供一些服務(wù);(gc垃圾回收、IL2CPP編寫一些庫(kù)來(lái)提供服務(wù))

? ? ? ? 運(yùn)行時(shí)的時(shí)候:Unity ?== IL2CPP技術(shù)編譯出來(lái)的二進(jìn)制指令 + IL2CPP runtime的環(huán)境(GC,Thread等技術(shù)支撐)

? ? ? ? Interpreter:解釋執(zhí)行

過程圖:

Unity 熱更新 之 huatuo(HybridCLR)

二、huatuo熱更新原理

huatuo熱更新是基于IL2CPP VM這個(gè)環(huán)節(jié)來(lái)的,和其他熱更技術(shù)不同;

Lua方案:Lua內(nèi)置Lua虛擬機(jī) + Lua代碼 (是在Native excutable asm 環(huán)節(jié))

ILRuntime方案:內(nèi)置C#虛擬機(jī) + 解釋執(zhí)行ILRuntime?(是在Native excutable asm 環(huán)節(jié))

內(nèi)置虛擬機(jī):會(huì)有自己解釋執(zhí)行的一個(gè)運(yùn)行環(huán)境,無(wú)法直接繼承MonoBehaviour(IL2CPP 級(jí)別的數(shù)據(jù)對(duì)象),需要封裝一層;

? ? ? ? ? ? ? ? ? ? ? ? 會(huì)有跨域訪問、接口導(dǎo)出等問題 ---> 需要開發(fā)者自己來(lái)處理;:::?麻煩點(diǎn),不符合標(biāo)準(zhǔn)的Unity開發(fā),需要另外做一套另個(gè)標(biāo)準(zhǔn)的開發(fā)。

?2.1 huatuo到底做了什么呢?

IL2CPP runtime 環(huán)境(IL2CPP VM)編寫了一個(gè)解釋器,解釋執(zhí)行IL代碼指令 + 使用的是AOT的數(shù)據(jù)內(nèi)存對(duì)象

正常IL2CPP 執(zhí)行: 數(shù)據(jù)內(nèi)存 + 代碼邏輯指令(二進(jìn)制機(jī)器指令);

huatuo IL2CPP 執(zhí)行:數(shù)據(jù)內(nèi)存(GameObject)+?代碼邏輯指令(二進(jìn)制機(jī)器指令)+ IL代碼指令解釋執(zhí)行

所以huatuo在熱更的時(shí)候,可以隨意的繼承所使用的GameObject、MonoBehvaviour;

huatuo在使用數(shù)據(jù)對(duì)象時(shí),這個(gè)數(shù)據(jù)對(duì)象就是AOT里的東西,熱更項(xiàng)目的類型編譯進(jìn)去就可以了;

huatuo在執(zhí)行時(shí)就是,解釋執(zhí)行IL new GameObject? ---> new AOT的GameObject對(duì)象;

熱更流程:

熱更? -----> IL.dll ----> 運(yùn)行的時(shí)候,huatuo加載IL.dll 來(lái)解釋執(zhí)行;

當(dāng)有更新時(shí),可以將IL.dll 編譯發(fā)布,然后放在服務(wù)器上,客戶端運(yùn)行時(shí)檢查更新,下載最新的IL.dll, 最后IL2CPP vm 轉(zhuǎn)載IL.dll 就實(shí)現(xiàn)了熱更新。

三、huatuo為什么性能高,比其他熱更新方案的優(yōu)勢(shì)有哪些

?優(yōu)勢(shì):

1.huatuo直接使用的是AOT項(xiàng)目中的內(nèi)存對(duì)象,內(nèi)存的占用,跨域都沒有問題;(性能好,內(nèi)存占用少)

2.huatuo不用改變上次的開發(fā)習(xí)慣(不需要另外搞個(gè)虛擬機(jī),搞個(gè)熱更項(xiàng)目)

3.其他熱更項(xiàng)目所不具備的功能,熱更后,可以改變執(zhí)行方式(

? ? ? ? ? ? 比如:原來(lái)是Lua、ILRuntime熱更新的,從1.0 -到- 2.0,就算更新完成,執(zhí)行方式不會(huì)變,一開始是解釋執(zhí)行,更新完,還是解釋執(zhí)行;

? ? ? ? ? ? 但是,huatuo,可以實(shí)現(xiàn)從1.0(的解釋執(zhí)行) --更新到---> 2.0(的直接AOT執(zhí)行)

4.開發(fā)方式:huatuo不需要特殊的開發(fā)模式,直接Unity開發(fā)完就完事了。(不會(huì)有熱更時(shí)的一些問題如:需要特殊的開發(fā)模式、需要熱更項(xiàng)目、不能直接繼承、接口導(dǎo)出等)

5.huatuo可以理論上更新任何代碼,而普通的模式是 框架 + 熱更,框架是不可以熱更的。

四、huatuo熱更新開發(fā)環(huán)境搭建與測(cè)試

?環(huán)境準(zhǔn)備:

????????unity

????????visula studio

????????IL2CPP for windows (不同平臺(tái)有不同的IL2CPP,這里用的是windows平臺(tái))

Unity IL2CPP 下載?https://unity.com/releases/editor/whats-new

? ? ? ? ?打開上面官網(wǎng),選擇自己Unity版本,然后在Component Installers下選擇,你要下載的組件,這里下載 IL2CPP 根據(jù)你的平臺(tái)下載即可。

huatuo準(zhǔn)備:

? ? ? ? a:huatuo核心代碼庫(kù):IL代碼指令解釋執(zhí)行;

? ? ? ? b:IL2CPP_huotuo:IL2CPP的庫(kù),huatuo需要做一些補(bǔ)丁修改,不含huotuo核心代碼 + huaduo核心代碼運(yùn)行的必要環(huán)境;

? ? ? ? 為何什么會(huì)分開呢?是因?yàn)镮L2CPP是Unity維護(hù)的,為了應(yīng)對(duì)Unity對(duì)它的變化,所以分開。

huatuo示例項(xiàng)目:從示例項(xiàng)目中啟發(fā),用到我們的項(xiàng)目中;

huatuo-trial

github 國(guó)外下載https://github.com/focus-creative-games

碼云

國(guó)內(nèi)下載https://gitee.com/focus-creative-games

要注意:huotuo-main(hybridclr-main)是huatuo的源項(xiàng)目、huotuo-trial(hybridclr_trial-main)示例項(xiàng)目、il2cpp_huotuo(il2cpp_plus-main)庫(kù)項(xiàng)目、hybridclr_unity-main是Unity的包配置項(xiàng)目。

hybridclr_unityhttps://gitee.com/focus-creative-games/hybridclr_unity? ? ? ? 打開后,點(diǎn)擊克隆/下載---> HTTPS 鏈接 點(diǎn)擊復(fù)制即可拿到該git鏈接。

????????Unity 熱更新 之 huatuo(HybridCLR)?

準(zhǔn)備好以后,就可以開始搭設(shè)了。

這里使用的是Unity2021.3.6.f1? hub3.0.1 Hybrid CLR是v2.1.0 il2cpp_plus是v2021-2.1.0

step:1打開Unity工程,在菜單欄Window ---> Package Manager ---> 選擇+號(hào) ---> Add package for dis...(從本地添加包)選擇hybridclr_unity-main下的package.json,點(diǎn)擊打開,即可添加進(jìn)來(lái)。

Unity 熱更新 之 huatuo(HybridCLR)

Unity 熱更新 之 huatuo(HybridCLR)

Unity 熱更新 之 huatuo(HybridCLR)

Unity 熱更新 之 huatuo(HybridCLR)

? ? ? ? ?這一步,也可以直接選擇使用git鏈接里的版本,操作如下:

? ? ? ? 在PackageManager界面,點(diǎn)擊+號(hào)后,選擇 ...from git URL選項(xiàng),然后復(fù)制(拿到)是上面hybridclr_unity里的git鏈接,粘貼進(jìn)去,點(diǎn)擊Add即可,會(huì)拿到最新的插件包。

Unity 熱更新 之 huatuo(HybridCLR)

Unity 熱更新 之 huatuo(HybridCLR)

step:2 在Unity工程中,菜單欄中會(huì)看到 HybridCLR選項(xiàng),打開HybridCLR ---> Intaller... --->顯示未安裝,點(diǎn)擊下面的安裝(靜靜的等待,如果沒有報(bào)錯(cuò),并且安裝狀態(tài)是已安裝,就說(shuō)明安裝好了)恭喜你了,安裝成功!

Unity 熱更新 之 huatuo(HybridCLR)

Unity 熱更新 之 huatuo(HybridCLR)

Unity 熱更新 之 huatuo(HybridCLR)

step:3.解壓出示例項(xiàng)目(huatuo-trial)

step4:多個(gè)項(xiàng)目,Unity ADF機(jī)制,代碼越多,每次修改一下,要全部編譯,時(shí)間消耗比較麻煩;

? ? ? ? ? ? ?ADF機(jī)制,將項(xiàng)目分成多個(gè)不同的工程,然后每次修改后,只編譯你自己所在的工程(節(jié)約編譯時(shí)間),

? ? ? ? ? ? ?huatuo? ---> 就可以針對(duì)不同的dll(做熱更新),不同的功能不同的dll。

step5:普通的直接走AOT,把這些DLL編譯出來(lái),生成到機(jī)器指令里,運(yùn)行;

? ? ? ? ? ? ?然后在熱更新的時(shí)候,ILCPP vm先加載我們的IL.dll就可以更新了。

? ? ? ? ? ? (也就意味著,我們?cè)谑褂胔uatuo時(shí),這幾塊的可以分開開發(fā))

step6:運(yùn)行一下熱更項(xiàng)目。

? ? ? ? ? ? ? ??step6a:如何來(lái)分項(xiàng)目出來(lái)? --->? 構(gòu)建不同的.dll (使用Unity ADF)

? ? ? ? ? ? ? ? ? ? ? ? 在Unity中,在Project視口下Asstes下新建一個(gè)分項(xiàng)目的目錄(GFGame),然后在這個(gè)目錄里,右擊選擇Create ---> Assembly Definition ,就有了一個(gè)分項(xiàng)目集,Unity 熱更新 之 huatuo(HybridCLR)然后在此文件加下創(chuàng)建腳本,

Unity 熱更新 之 huatuo(HybridCLR)

在vs中打開,就會(huì)看到,他是獨(dú)立在一個(gè)集下的,也就意味著,它可以單獨(dú)打出一個(gè)dll出來(lái)(熱更新就可以依據(jù)這個(gè)dll做獨(dú)立功能或分項(xiàng)目)。

Unity 熱更新 之 huatuo(HybridCLR)

? ? ? ? ?step6b:構(gòu)建一下dll? ----> 發(fā)布熱更新的時(shí)候就要可以使用這里的dll

? ? ? ? ? ? ? ? 使用huatuo的功能,菜單欄HybridCLR--->CompileDll ---> ActiveBuildTarge

????????????????Unity 熱更新 之 huatuo(HybridCLR)

? ? ? ? ? ? ? ? ?靜等幾秒,構(gòu)建完成后,會(huì)有提示Finish!

? ? ? ? ? ? ? ? ?目前的版本目錄是放在跟Assets同級(jí)的HybridCLR目錄里,具體如下:

Unity 熱更新 之 huatuo(HybridCLR)

?Unity 熱更新 之 huatuo(HybridCLR)

? ? ? ? ?step6c:熱更.dll + 游戲資源 ---->? 熱更資源.dll 二進(jìn)制資源? ---> 將這些資源打包(ab包,addressbale等)

? ? ? ? ? ? ? ? ? ? ? ? 打ab包,根據(jù)項(xiàng)目不同,按照項(xiàng)目的設(shè)計(jì)即可。 --->打出ab包

? ? ? ? ?step6d:打出的ab包放在了StreammingAssets目錄下,然后根據(jù)實(shí)際需要,放到服務(wù)器上。

到此就做到了熱更新。

到此示例項(xiàng)目就算運(yùn)行起來(lái)了。

Unity 熱更新 之 huatuo(HybridCLR)

五、huatuo熱更新關(guān)鍵源碼分析

? ? ? ? 5.1 打包.dll? ---->分項(xiàng)目分功能打包dll? ?

? ? ? ? 5.2?打包ab包? ----> 將資源打包成ab包

? ? ? ? 5.3 Editor擴(kuò)展

? ? ? ? 5.4 如果啟動(dòng)熱更新邏輯:

? ? ? ? ? ? ? ? 1.LoadDll (裝載dll),這些dll就是代碼邏輯熱更新的關(guān)鍵

Unity 熱更新 之 huatuo(HybridCLR)

在這里的邏輯可以根據(jù)實(shí)際情況做調(diào)整,比如,在這里裝載時(shí),可以先判斷下本地和服務(wù)器的dll是否不一致(是否需要跟新),如果不需要,就可以直接使用AOT里的,否則更新加載即可。(這里的邏輯時(shí)直接更新了,沒有判斷是否一致)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-496858.html

到了這里,關(guān)于Unity 熱更新 之 huatuo(HybridCLR)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 你真的了解一句話木馬嗎?

    你真的了解一句話木馬嗎?

    目錄 一、前言: 二、什么是一句話木馬: 三、常見的一句話木馬: 木馬講解: 1、$_POST[cmd] 2、eval() 3、\\\"@\\\" 4、脈絡(luò)梳理 四、可用于條件競(jìng)爭(zhēng)的一句話木馬: 木馬講解: 1、fopen() 2、fputs() ?3、脈絡(luò)梳理 五、圖片馬 1、什么是圖片馬: 2、.htaccess 3、木馬圖片 4.?? .user.ini擴(kuò)展

    2024年02月04日
    瀏覽(27)
  • 蟻劍連接一句話木馬演示

    蟻劍連接一句話木馬演示

    需要準(zhǔn)備 一臺(tái)虛擬機(jī)作為服務(wù)器,一臺(tái)作為攻擊機(jī)(可用主機(jī)),將虛擬機(jī)的網(wǎng)絡(luò)都設(shè)置為橋接。 我這里服務(wù)器用win2008R2系統(tǒng) 攻擊機(jī)用win10 接下來(lái)我會(huì)演示 php 的一句話木馬 其他腳本語(yǔ)言的一句話木馬使用過程和這個(gè)差別不大 在服務(wù)器上安裝phpstudy 快速搭建服務(wù)器 安裝成

    2024年02月14日
    瀏覽(18)
  • 文件上傳漏洞—一句話圖片馬制作

    文件上傳漏洞—一句話圖片馬制作

    提要 :在文件上傳漏洞中,通常需要上傳腳本類型的文件至服務(wù)端執(zhí)行,獲取WebShell,但是網(wǎng)站會(huì)嚴(yán)格過濾腳本類型的文件,這個(gè)時(shí)候便可以通過圖片馬來(lái)嘗試突破。 簡(jiǎn)介 :在圖片格式文件(JPG,PNG和GIF等)中添加隱藏一句話木馬,利用文件包含漏洞,Web容器解析漏洞和.

    2024年02月07日
    瀏覽(24)
  • java安全——jsp一句話木馬

    java安全——jsp一句話木馬

    提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 http://localhost:8003/index.jsp?cmd=whoami 不會(huì)回顯執(zhí)行的結(jié)果只能在后臺(tái)打印一個(gè)地址,常用來(lái)反彈shell 代碼如下(示例):

    2024年02月11日
    瀏覽(16)
  • 滲透干貨|史上最全一句話木馬

    滲透干貨|史上最全一句話木馬

    PHP //可執(zhí)行命令一句話 普通一句話 PHP系列 過狗一句話 【----幫助網(wǎng)安學(xué)習(xí),以下所有學(xué)習(xí)資料文末免費(fèi)領(lǐng)!----】 幾個(gè)變性的php–過防火墻 過狗效果都不錯(cuò): 密碼-7 phpv9 高版本拿shell ASP asp 一句話 ASP過安全狗一句話 ASPX系列 ASPX一句話的 過安全狗效果不怎么樣 不過我認(rèn)為能

    2024年04月25日
    瀏覽(22)
  • 一句話解釋什么是出口IP

    一句話解釋什么是出口IP

    出口 IP 是指從本地網(wǎng)絡(luò)連接到公共互聯(lián)網(wǎng)時(shí)所使用的 IP 地址。這個(gè) IP 地址是由 Internet 服務(wù)提供商(ISP)分配給你的,它可以用來(lái)標(biāo)識(shí)你的網(wǎng)絡(luò)流量的來(lái)源。如果你使用的是 NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)技術(shù),則在 NAT 設(shè)備內(nèi)部會(huì)進(jìn)行地址轉(zhuǎn)換,使得多個(gè)設(shè)備可以共享同一個(gè)公共 I

    2024年02月08日
    瀏覽(17)
  • 解封ChatGPT我只用了一句話

    解封ChatGPT我只用了一句話

    文章前言 ChatGPT作為一個(gè)AI語(yǔ)言模型可以幫助使用者生成各種各樣的文字內(nèi)容,目前已被廣泛應(yīng)用于各種語(yǔ)言任務(wù)中,例如:文本生成、機(jī)器翻譯、問答系統(tǒng)等,基于保障使用者權(quán)益和維護(hù)良好的價(jià)值觀,官方限制ChatGPT不能回答不當(dāng)言論(攻擊或侮辱性)、敏感內(nèi)容和帶有偏見的

    2024年02月16日
    瀏覽(21)
  • 一句話介紹大數(shù)據(jù)各種名詞及其特點(diǎn)

    大數(shù)據(jù) :傳統(tǒng)PC無(wú)法處理的。數(shù)據(jù)大、數(shù)據(jù)類型繁多、處理速度快、價(jià)值密度低。 Hadoop :能夠?qū)Υ髷?shù)據(jù)進(jìn)行分布式處理的軟件框架、這種處理具有高效、可靠、可伸縮的特點(diǎn)。Hadoop的特點(diǎn):高效率、高可靠、高容錯(cuò)、高可拓展。成本低、Linux運(yùn)行支持多語(yǔ)言。 SSH :建立在應(yīng)用

    2024年02月03日
    瀏覽(15)
  • 【AI繪畫】給我一句話,送你一幅畫。

    【AI繪畫】給我一句話,送你一幅畫。

    什么是AI繪畫 通俗的說(shuō),AI繪畫就是AI通過學(xué)習(xí)訓(xùn)練出自己的思考模型,然后繪畫。 AI繪畫優(yōu)劣勢(shì) 你可以把AI理解為一個(gè)天賦非凡的外國(guó)繪畫神童 優(yōu)勢(shì) (效率高) 天賦非凡 :繪畫的速度非??欤史浅8?,圖片也很精美 不足 (理解局限) 外國(guó) :相對(duì)國(guó)內(nèi)而言,訓(xùn)練模型

    2024年02月09日
    瀏覽(24)
  • AI PPT 一句話搞定PPT講演搞

    AI PPT 一句話搞定PPT講演搞

    相信大家在職場(chǎng)中,一定會(huì)接觸過寫PPT,經(jīng)常會(huì)把你搞得焦頭爛額。在大部分的公司里,寫PPT匯報(bào)又是不可能逃避的事情。但隨著AI時(shí)代的到來(lái),有很多AI幫你寫PPT的工具也逐漸嶄露頭角,可以自動(dòng)幫助你制作出華麗的PPT,給你的職場(chǎng)生活帶來(lái)極大的便利。這些AI寫PPT工具可以

    2024年02月13日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包