摘要:如有描述不正確的地方,請(qǐng)及時(shí)聯(lián)系我,我將吸取意見并改正。但是對(duì)于技術(shù)來講,是要采用的處理方式。然后將程序退出。說明此時(shí)已奏效。當(dāng)然這樣開放,勢(shì)必會(huì)帶來安全的隱患。
作者:Darkbug
原文標(biāo)題:Google新技術(shù):Instant App全拆解(2)——剖析
原文鏈接:https://segmentfault.com/a/11...
首發(fā)地址:http://www.doncc.org
轉(zhuǎn)發(fā)請(qǐng)注明轉(zhuǎn)載地址,請(qǐng)尊重原創(chuàng)作者權(quán)益!
《Google新技術(shù):Instant App全拆解》系列預(yù)告:
第三篇:Google新技術(shù):Instant App全拆解(3)——著手
《Google新技術(shù):Instant App全拆解》系列回顧:
第一篇:Google新技術(shù):Instant App全拆解(1)——初探
本文著重介紹在進(jìn)行Instant App程序開發(fā)時(shí),所涉及的Android周邊技術(shù),其目的是更好的進(jìn)行Instant App程序開發(fā)。
如有描述不正確的地方,請(qǐng)及時(shí)聯(lián)系我,我將吸取意見并改正。
1.為何引入Deep Links和App Links的概念肯定有很多童鞋不理解,為什么我要在講Instant App技術(shù)之前,要提及這個(gè)“看似不相關(guān)”的概念呢?實(shí)則真正在進(jìn)行Instant App程序開發(fā)時(shí),是必然涉及到這標(biāo)題所述的兩個(gè)概念的。應(yīng)該先搞清這兩個(gè)概念的區(qū)別,再來進(jìn)行程序開發(fā),就會(huì)變得易如反掌了。
Google為我們提供了一個(gè)非常好的操作體驗(yàn):比如當(dāng)我的好朋友給我發(fā)了一個(gè)定位的鏈接信息,這個(gè)信息我們看上去好像不那么直觀得看出,我的好朋友在什么具體位置。但是如果我一旦點(diǎn)擊了這個(gè)鏈接,如果我直接能在某個(gè)地圖應(yīng)用里看到具體圖像位置的話,那么這個(gè)體驗(yàn)就會(huì)變得更好了。
對(duì)于一個(gè)鏈接,當(dāng)點(diǎn)擊后,Google為我們預(yù)留了兩種的處理方式,這就是Deep Links和App Links。這兩種方式,在體驗(yàn)上是截然不同的。所以想要采用哪種處理方式,這就取決于我們自己的決定。
注意,我這里只是在處理鏈接的角度上講,如何處理是取決于用戶自己。但是對(duì)于Instant App技術(shù)來講,是要采用App Links的處理方式。所以這里同學(xué)們需要注意。
那么好,接下來我要著重講解Deep Links和App Links這兩個(gè)處理URL的方式。
2.Deep Links的作用要想明白Instant App中的精髓,首先要了解Deep Links是什么東西,以及其本身的作用。
我們來回想一個(gè)場(chǎng)景。假如你的手機(jī)內(nèi)安裝了UC瀏覽器(UC瀏覽器并沒有給我充值,先聲明),并且還同時(shí)存在其他瀏覽器,當(dāng)你在一個(gè)應(yīng)用程序內(nèi)點(diǎn)擊一個(gè)鏈接,系統(tǒng)會(huì)彈出一個(gè)對(duì)話框,說明的是讓你選擇一個(gè)可以打開鏈接的應(yīng)用或方式。你可以選擇系統(tǒng)瀏覽器,也可以選擇UC瀏覽器;如果你的手機(jī)內(nèi)只有一個(gè)可以打開鏈接的程序(比如只有一個(gè)瀏覽器程序),那么系統(tǒng)就會(huì)用這個(gè)應(yīng)用程序直接打開這個(gè)鏈接。
那么結(jié)果來了,Deep Links是可以來讓用戶,通過一段類似URL的鏈接,達(dá)到快速用某個(gè)應(yīng)用打開的作用。當(dāng)然這也需要用戶確認(rèn),到底是用哪個(gè)程序打開。
好,接下來我們?cè)倏聪鹿俜綄?duì)于Deep Links工作的闡述。當(dāng)用戶點(diǎn)擊一個(gè)鏈接,或者有一個(gè)web URI的請(qǐng)求調(diào)用,安卓系統(tǒng)會(huì)嘗試幾個(gè)操作,直到操作請(qǐng)求成功:
Open the user"s preferred app that can handle the URI, if one is designated.
Open the only available app that can handle the URI.
Allow the user to select an app from a dialog.
將上述的操作放入剛剛我們舉得例子里,不難發(fā)現(xiàn),系統(tǒng)內(nèi)部執(zhí)行了如下的判斷過程:
首先系統(tǒng)判斷出哪些程序開放了可以處理URL的程序配置;
其次來看下是不是只有這一個(gè)應(yīng)用程序能處理這個(gè)URL;
再次來看下有哪些應(yīng)用可以處理這個(gè)URL;
這個(gè)判斷的過程,完全有系統(tǒng)來進(jìn)行。所以要懂得它的判斷過程,尤為重要。
2.1進(jìn)行Deep Links的配置我們來設(shè)定一個(gè)情景。當(dāng)我的朋友給我發(fā)來一段鏈接,內(nèi)容是這樣的:
那么這里我們要區(qū)分出來,我們需要在VideoActivity上呈現(xiàn)。這段鏈接對(duì)于intent-filter過濾器來說,scheme部分為“http”,而host部分為“doncc.org”,考慮到我的程序可能應(yīng)對(duì)這個(gè)鏈接下面很多其他的視頻,所以我可以選定pathPrefix的過濾方式,這樣能包括其他視頻的鏈接一并過濾出來(當(dāng)然你也可以要求更為嚴(yán)格的過濾)。
對(duì)于支持Deep Links的程序的配置,很是簡(jiǎn)單。或許我們來段manifest文件的過濾器配置更為直觀:
好,當(dāng)我們的配置配好之后,就可以將程序運(yùn)行在模擬器上了。然后將程序退出。
2.2進(jìn)行Deep Links的驗(yàn)證驗(yàn)證部分需要打開terminal,并輸入命令如下:
$ adb shell am start -W -a android.intent.action.VIEW -d
注意這里的
特別強(qiáng)調(diào)一點(diǎn)。這里我們是直接驗(yàn)證Deep Links是否奏效。然而設(shè)置支持此Deep Links的Activity,在第一次呈現(xiàn)時(shí),會(huì)有一個(gè)選擇對(duì)話框,因?yàn)榇薃ctivity添加了其他的過濾器,同樣系統(tǒng)內(nèi)也有跟它一致的過濾器,系統(tǒng)默認(rèn)是不知道你要用哪個(gè)程序打開此鏈接頁(yè)面的。所以在提示框內(nèi)呈現(xiàn)提示用什么應(yīng)用方式打開。
說了這么多,如果還是沒太清楚,可以參考我錄制的視頻:Android 如何使用 Deep Links 處理URL鏈接
3.App Links的作用我們?cè)賮砜匆粋€(gè)應(yīng)用場(chǎng)景。
或許我們有過這樣的體驗(yàn)。當(dāng)你的朋友用短信的形式,給你發(fā)了一篇知乎的文章鏈接給你,如果你點(diǎn)擊了鏈接,假設(shè)你的手機(jī)內(nèi)沒有安裝知乎程序,那么手機(jī)會(huì)自動(dòng)通過瀏覽器,顯示出來這個(gè)文章的頁(yè)面信息;如果你的手機(jī)內(nèi)安裝了知乎的程序,那么會(huì)直接打開知乎程序,顯示出這個(gè)文章的信息。
我們之前知道了Deep Links的作用,實(shí)則你可以理解成App Links是一個(gè)特殊的Deep Links。因?yàn)镈eep Links在第一次使用時(shí),是需要用戶主動(dòng)進(jìn)行授權(quán)的,而App Links的作用是無(wú)需這第一次的主動(dòng)授權(quán),是足夠信任這個(gè)鏈接地址的。當(dāng)然這樣開放,勢(shì)必會(huì)帶來安全的隱患。沒有關(guān)系,Google大大已經(jīng)為我們想到了這一點(diǎn)了,在Android 6.0以后,程序可以支持App Links來讓程序處理默認(rèn)指定的鏈接。
相比Deep Links而言,App Links具有一定的優(yōu)勢(shì)的:
更安全、更嚴(yán)格:相比Deep Links我們不難發(fā)現(xiàn),在制定具體你的域名地址時(shí),如果指定的條件過于寬泛,勢(shì)必會(huì)可能其他的鏈接地址后綴也可以訪問到你應(yīng)用程序。如果過于嚴(yán)格的約束,那么所制定的業(yè)務(wù)有太過于麻煩。所以App Links的出現(xiàn),就為我們更好的解決這一問題;
更為無(wú)縫的用戶體驗(yàn):當(dāng)你點(diǎn)擊一個(gè)鏈接的時(shí)候,可能會(huì)有一個(gè)URL鏈接到你的網(wǎng)站。如果你的手機(jī)內(nèi)沒有安裝這個(gè)應(yīng)用,那么鏈接可以很輕松的重定向到你的網(wǎng)站,不至于頁(yè)面會(huì)彈出一個(gè)404 not found的錯(cuò)誤,給用戶帶來非常不好的體驗(yàn);
可支持Android Instant App瞬時(shí)加載技術(shù):可以支持瞬時(shí)加載技術(shù)。用戶無(wú)需安裝應(yīng)用,憑一個(gè)URL鏈接,就可以體驗(yàn)到同App一樣的用戶體驗(yàn)。這一點(diǎn)也是至關(guān)重要的,我們也會(huì)在后續(xù)課程內(nèi)詳細(xì)介紹。
可從Google Search中搜到你的應(yīng)用:同上條一樣,我們可以通過Google Search來找到你的應(yīng)用。這一點(diǎn)也是對(duì)我們Instant App有所幫助的一點(diǎn)。
從諸多關(guān)于App Links的優(yōu)點(diǎn)來看,我們可以總結(jié)出,想要掌握Instant App技術(shù),首先必須掌握App Links是如何配置的,且App Links是基于Deep Links的。所以我們就知道了該如何去學(xué)習(xí)了。
好,接下來我們要深入學(xué)習(xí)關(guān)于App Links。
3.1App Links的配置對(duì)于支持App Links的程序的配置,要比支持Deep Links的配置稍加復(fù)雜一步。總共可分為兩個(gè)部分:
對(duì)manifest過濾器的編寫
數(shù)字資產(chǎn)鏈接文件的生成
接下來我們?cè)敿?xì)說明每個(gè)部分。
3.1.1對(duì)manifest過濾器的編寫對(duì)于過濾器的編寫,我們?cè)賮硪欢未a更為直接:
事實(shí)上我們不難發(fā)現(xiàn),這個(gè)過濾器的編寫,要比之前Deep Links的編寫內(nèi)容,只多了一個(gè)屬性。那就是:
...
通過android:autoVerify="true"這個(gè)屬性,就能讓系統(tǒng)知道,這個(gè)程序是屬于可以自動(dòng)進(jìn)行驗(yàn)證的。也就為后續(xù)進(jìn)行數(shù)字資產(chǎn)鏈接文件的驗(yàn)證做好了鋪墊。
3.1.2數(shù)字資產(chǎn)鏈接文件的生成對(duì)于數(shù)字資產(chǎn)鏈接,其實(shí)是一個(gè)json文件,里面包括了一些應(yīng)用程序的信息,而這個(gè)文件需要放置在你的網(wǎng)站的特定路徑內(nèi)。
那么數(shù)字資產(chǎn)鏈接文件該如何寫呢?下面來看個(gè)例子:
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "org.doncc.learnapplinks", "sha256_cert_fingerprints": ["01:CD:30:56:A8:5E:EC:18:64:3D:8B:F2:AF:3F:B6:02:85:33:79:13:97:23:E3:FF:99:59:14:E5:03:FC:57:78"] } }]
從上面的例子可以得出結(jié)論,數(shù)字資產(chǎn)鏈接文件配置的要求,有如下內(nèi)容:
需知道你應(yīng)用的包名(package_name)
需知道你發(fā)布程序的sha256指紋簽名證書(sha256_cert_fingerprints)
對(duì)于包名,我們肯定知道該如何獲得。而對(duì)于sha256指紋簽名證書,我們可以通過命令來獲取到。比如我發(fā)布的程序是用release.keystore來簽名的,那么你在用命令行獲得sha256簽名時(shí),就要指定你的key來獲得:
$ keytool -list -v -keystore release.keystore
當(dāng)生成完畢后,需要把這個(gè)文件重命名為assetlinks.json,并上傳到你的網(wǎng)站的特定目錄內(nèi):
https://domain.name/.well-known/assetlinks.json
其中domain.name部分為你的具體的網(wǎng)站地址。而需要在你的網(wǎng)站下面的.well-known目錄下,新建assetlinks.json文件,也就是剛配置過的數(shù)字資產(chǎn)鏈接文件,來確定你的網(wǎng)址是可信的。
如果我們的網(wǎng)站會(huì)忽略隱藏文件,那么強(qiáng)烈建議你寫一個(gè)取消忽略的配置文件。這個(gè)過程就不需要我講了吧。。。
3.2App Links的驗(yàn)證同樣,對(duì)于App Links的驗(yàn)證,總體也可以分為兩部分:
對(duì)數(shù)字資產(chǎn)鏈接文件配置合法性的驗(yàn)證
通過Shell命令驗(yàn)證
同樣,我們?cè)敿?xì)說明每個(gè)部分。
3.2.1對(duì)數(shù)字資產(chǎn)鏈接文件配置合法性的驗(yàn)證在進(jìn)行App Links的驗(yàn)證過程要注意一點(diǎn),根據(jù)官方說明,在程序安裝完畢后,至少等待20秒后再進(jìn)行鏈接的驗(yàn)證是最為好的。并且要保證你的網(wǎng)絡(luò)足夠好,因?yàn)樵隍?yàn)證過程,系統(tǒng)識(shí)別一旦超過5秒,那么就會(huì)驗(yàn)證失敗,以至于會(huì)出現(xiàn)和Deep Links同樣的用戶效果了。
Note: Make sure you wait at least 20 seconds after installation of your app to allow for the system to complete the verification process.
通過網(wǎng)頁(yè)的驗(yàn)證鏈接進(jìn)行驗(yàn)證
我們可以首先來通過網(wǎng)頁(yè)訪問的形式,來確定我們自己的數(shù)字資產(chǎn)鏈接文件是否已經(jīng)被網(wǎng)站關(guān)聯(lián)上。這里我們給出官方的網(wǎng)頁(yè)URL:
https://digitalassetlinks.googleapis.com/v1/statements:list? source.web.site=https://domain.name:optional_port& relation=delegate_permission/common.handle_all_urls
這里source.web.site是需要替換成我們自己的網(wǎng)站地址的。然后點(diǎn)擊回車,如果出現(xiàn)類似下面頁(yè)面,就說明當(dāng)前數(shù)字資產(chǎn)鏈接文件已經(jīng)被網(wǎng)站關(guān)聯(lián)上了:
{ "statements": [ { "source": { "web": { "site": "https://doncc.github.io." } }, "relation": "delegate_permission/common.handle_all_urls", "target": { "androidApp": { "packageName": "org.doncc.l02learnapplinks", "certificate": { "sha256Fingerprint": "01:CD:30:56:A8:5E:EC:18:64:3D:8B:F2:AF:3F:B6:02:85:33:79:13:97:23:E3:FF:99:59:14:E5:03:FC:57:78" } } } } ], "maxAge": "599.298570247s", "debugString": "********************* ERRORS ********************* None! ********************* INFO MESSAGES ********************* * Info: The following statements were considered when processing the request: --- Source: Web asset with site https://doncc.github.io. (which is equivalent to "https://doncc.github.io") Relation: delegate_permission/common.handle_all_urls Target: Android app asset with package name org.doncc.l02learnapplinks and certificate fingerprint 01:CD:30:56:A8:5E:EC:18:64:3D:8B:F2:AF:3F:B6:02:85:33:79:13:97:23:E3:FF:99:59:14:E5:03:FC:57:78 Where this statement came from: Origin of the statement: Web asset with site https://doncc.github.io. (which is equivalent to "https://doncc.github.io") Include directives followed (in order): u003cNoneu003e Matches source query: Yes Matches relation query: Yes Matches target query: Yes --- End of statement list. --- " }
借助Google Digital Asset Links工具驗(yàn)證
還有一種驗(yàn)證方法,借助Google Digital Asset Links這個(gè)工具,就能進(jìn)行驗(yàn)證。
文中所填寫的內(nèi)容,正是你在配置前面assetlinks.json數(shù)字資產(chǎn)鏈接文件的信息。填寫進(jìn)去,進(jìn)行驗(yàn)證。如果驗(yàn)證通過,說明你的網(wǎng)站已通過安全驗(yàn)證,可以愉快的使用App Links了。
借助App Links Assistant的測(cè)試工具驗(yàn)證
事實(shí)上還是有其他方法進(jìn)行驗(yàn)證,借助App Links Assistant的測(cè)試工具進(jìn)行驗(yàn)證。這部分我們會(huì)在后部分講到。
3.2.2通過Shell命令驗(yàn)證adb命令構(gòu)建URL Intent:
驗(yàn)證的過程和驗(yàn)證Deep Links類似。我們可以用構(gòu)建URL Intent的方式來進(jìn)行模擬鏈接的驗(yàn)證:
adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "http://domain.name:optional_port"
注意,這里-d的內(nèi)容需要替換成我們自己的網(wǎng)站地址。
如果成功,那么立即就會(huì)在模擬器上看到執(zhí)行后的效果,直接的跳轉(zhuǎn)到所在的Activity,而無(wú)需經(jīng)過用戶點(diǎn)擊彈出框的確認(rèn)過程。
這里我貼出關(guān)于App Links在開發(fā)時(shí)的視頻:如何使用 App Links 處理URL鏈接
4.通過App Links Assistant來協(xié)助配置不難發(fā)現(xiàn),實(shí)則Deep Links和App Links都有異曲同工之妙。我們從上面的內(nèi)容來看,確實(shí)配置過程有點(diǎn)繁瑣。幸好Google大大們已經(jīng)為我們著想了這一點(diǎn),在Android Studio 2.3版本及以上版本,內(nèi)置了一個(gè)App Links Assistant的鏈接生成助手。根據(jù)這個(gè)助手的指引,我們就能很快的配置出屬于我們自己程序的App Links,甚至是Deep Links。
那么這個(gè)助手該如何找到呢?在你的Tools > App Links Assistant,就可以找到了。
這里具體有一些如何使用App Links Assistant進(jìn)行配置的文章描述,我們就不再贅述了,官方的文檔已經(jīng)很詳盡的說明了這一點(diǎn)。如需參考請(qǐng)異步地址:Add Android App Links
5.Deep Links和App Links的對(duì)比這里我們引自官方的對(duì)比表格更為直接。(來自:the-difference)
Deep Links | App Links | |
---|---|---|
Intent URL scheme | http, https, or a custom scheme | Requires http or https |
Intent action | Any action | Requires android.intent.action.VIEW |
Intent category | Any category | Requires android.intent.category.BROWSABLE and android.intent.category.DEFAULT |
Link verification | None | Requires a Digital Asset Links file served on you website with HTTPS |
User experience | May show a disambiguation dialog for the user to select which app to open the link | No dialog; your app opens to handle your website links |
Compatiblity | All Android versions | Android 6.0 and higher |
我們不難看出,App Links的出現(xiàn)是彌補(bǔ)了Deep Links的一些不足。當(dāng)然使用起來也應(yīng)該酌情而定,畢竟Deep Links的超高自由度,也是后者望塵莫及的。說了這么多,再結(jié)合Instant App,我們就可以總結(jié)出以下幾點(diǎn):
在Instant App內(nèi)使用App Links,具有更為安全的通信協(xié)議,也為協(xié)議的驗(yàn)證做好鋪墊;
因?yàn)槭褂眉磿r(shí)應(yīng)用的前提,是點(diǎn)擊一個(gè)鏈接直接跳轉(zhuǎn)到界面,所以在Intent處理上,嚴(yán)格要求處理動(dòng)作是android.intent.action.VIEW;
同上面描述的,Instant App也需要可以在網(wǎng)絡(luò)上搜索到,并打開程序,比如Google搜索結(jié)果頁(yè)面上打開。固然需要Intent的種類是android.intent.category.BROWSABLE 和 android.intent.category.DEFAULT;
App Links是可以對(duì)URL鏈接進(jìn)行安全驗(yàn)證的,而Deep Links是不具有驗(yàn)證功能的。其目的是為了能讓Android程序足夠信任其URL鏈接地址,減少讓用戶選擇“xxx方式打開”這種動(dòng)作歧義的對(duì)話框出現(xiàn),在用戶體驗(yàn)上能更讓用戶覺得是“無(wú)縫”的感覺;
對(duì)于鏈接點(diǎn)擊處理功能的兼容,Deep Links能兼容所有Android版本,而App Links只兼容Android 6.0及更高的版本。
但是話有說回來,不難發(fā)現(xiàn),在App Links與Deep Links的處理場(chǎng)景是很受局限的。大多數(shù)的程序是不經(jīng)過系統(tǒng)處理的,而是直接內(nèi)置方式處理。比如某聊天工具?。。。這就給其推廣造成很大的阻礙,而能實(shí)現(xiàn)處理的地方有短信、內(nèi)置瀏覽器內(nèi)等一些原生App內(nèi)。真是心塞。
好,這回我們就能徹底的了解了這兩種URL鏈接處理方式了。
6.總結(jié)對(duì)于Instant App程序開發(fā),是依賴于App Links處理URL的方式,并且App Links又是一種特殊的Deep Links,也就是必須先知道Deep Links的作用,才能知道App Links的作用。
Deep Links的出現(xiàn),是為了能讓用戶在不同應(yīng)用見體驗(yàn)到App級(jí)的用戶體驗(yàn),而App Links的出現(xiàn),是為了讓這種體驗(yàn)更加“無(wú)縫銜接”;
對(duì)于App Links,需要一個(gè)數(shù)字資產(chǎn)鏈接文件的驗(yàn)證,這個(gè)文件是必須放在網(wǎng)站根目錄/.well-known/assetlinks.json這個(gè)路徑下,才能生效;
對(duì)于數(shù)字資產(chǎn)鏈接文件,其內(nèi)部注意你的程序的簽名,如果程序是released版本,那么你的簽名指紋也需要換成對(duì)應(yīng)的指紋;
對(duì)于App Links,需要在過濾器內(nèi)添加android:autoVerify="true"屬性,保證系統(tǒng)能識(shí)別到。
講到這里,我們就可以初步了解了有關(guān)于制作Instant App的周邊技術(shù)了。接下來我還會(huì)有更多的文章來持續(xù)講解Instant App程序開發(fā)。
《Google新技術(shù):Instant App全拆解》系列預(yù)告:
第三篇:Google新技術(shù):Instant App全拆解(3)——著手
《Google新技術(shù):Instant App全拆解》系列回顧:
第一篇:Google新技術(shù):Instant App全拆解(1)——初探
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/24958.html
摘要:系統(tǒng)環(huán)境要求開發(fā)不是在所有的集成開發(fā)環(huán)境都可以進(jìn)行的。這里注意,的架構(gòu)方式不能為的方式,絕對(duì)不能真機(jī)的準(zhǔn)備工作運(yùn)行于及以上的系統(tǒng)手機(jī)廠商親兒子三星服務(wù)框架已安裝在手機(jī)上。 作者:Darkbug原文標(biāo)題:Google新技術(shù):Instant App全拆解(3)——著手原文鏈接:https://segmentfault.com/a/11...首發(fā)地址:http://www.doncc.org...
摘要:系統(tǒng)環(huán)境要求開發(fā)不是在所有的集成開發(fā)環(huán)境都可以進(jìn)行的。這里注意,的架構(gòu)方式不能為的方式,絕對(duì)不能真機(jī)的準(zhǔn)備工作運(yùn)行于及以上的系統(tǒng)手機(jī)廠商親兒子三星服務(wù)框架已安裝在手機(jī)上。 作者:Darkbug原文標(biāo)題:Google新技術(shù):Instant App全拆解(3)——著手原文鏈接:https://segmentfault.com/a/11...首發(fā)地址:http://www.doncc.org...
摘要:如有描述不正確的地方,請(qǐng)及時(shí)聯(lián)系我,我將吸取意見并改正。但是對(duì)于技術(shù)來講,是要采用的處理方式。然后將程序退出。說明此時(shí)已奏效。當(dāng)然這樣開放,勢(shì)必會(huì)帶來安全的隱患。 作者:Darkbug原文標(biāo)題:Google新技術(shù):Instant App全拆解(2)——剖析原文鏈接:https://segmentfault.com/a/11...首發(fā)地址:http://www.doncc.org轉(zhuǎn)發(fā)請(qǐng)注...
閱讀 1569·2021-11-24 09:39
閱讀 1058·2021-11-22 15:11
閱讀 2188·2021-11-19 11:35
閱讀 1635·2021-09-13 10:37
閱讀 2466·2021-09-03 10:47
閱讀 2152·2021-08-30 09:47
閱讀 1639·2021-08-20 09:39
閱讀 2913·2019-08-30 14:13