自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

好牛!抖音開源又一力作

新聞 開源
大家都喜歡玩抖音,知道抖音是一個(gè)非常好的技術(shù)團(tuán)隊(duì),除了做App,他們也開源了一些方案,比如今天的 BoostMultiDex 。

 大家都喜歡玩抖音,知道抖音是一個(gè)非常好的技術(shù)團(tuán)隊(duì),除了做App,他們也開源了一些方案,比如今天的 BoostMultiDex 。

BoostMultiDex是一個(gè)用于 Android 低版本設(shè)備(4.X 及以下,SDK < 21)快速加載多 DEX 的解決方案。

背景

我們知道,Android低版本(4.X及以下,SDK < 21)的設(shè)備,采用的Java運(yùn)行環(huán)境是Dalvik虛擬機(jī)。它相比于高版本,最大的問題就是在安裝或者升級(jí)更新之后,首次冷啟動(dòng)的耗時(shí)漫長(zhǎng)。

這是非常影響用戶的使用體驗(yàn)的。尤其在海外,像東南亞以及拉美等地區(qū),還存有著很大量的低端機(jī)。4.X以下低版本用戶雖然比較少,但對(duì)于抖音及Tiktok這樣有著億級(jí)規(guī)模的用戶的APP,即使占比10%,數(shù)目也有上千萬。因此如果想要打通下沉市場(chǎng),這部分用戶的使用和升級(jí)體驗(yàn)是絕對(duì)無法忽視的。

這個(gè)問題的根本原因就在于,安裝或者升級(jí)后首次MultiDex花費(fèi)的時(shí)間過于漫長(zhǎng)。為了解決這個(gè)問題,我們挖掘了Dalvik虛擬機(jī)的底層系統(tǒng)機(jī)制,對(duì)DEX相關(guān)處理邏輯進(jìn)行了重新設(shè)計(jì),最終推出了BoostMultiDex方案,挽救低版本Android用戶的升級(jí)安裝體驗(yàn)。

[[344078]]

技術(shù)要點(diǎn)

BoostMultiDex方案的技術(shù)實(shí)現(xiàn)要點(diǎn)如下:

  1. 利用系統(tǒng)隱藏函數(shù),直接加載原始DEX字節(jié)碼,避免ODEX耗時(shí)

  2. 多級(jí)加載,在DEX字節(jié)碼、DEX文件、ODEX文件中選取最合適的產(chǎn)物啟動(dòng)APP

  3. 單獨(dú)進(jìn)程做OPT,并實(shí)現(xiàn)合理的中斷及恢復(fù)機(jī)制

更重要的是,BoostMultiDex已經(jīng)在抖音/TikTok億級(jí)全球用戶上驗(yàn)證通過,可以說涵蓋了各個(gè)國(guó)家、各種復(fù)雜情況的Android機(jī)型,目前業(yè)界其他大型APP都很難涉及到如此廣泛的規(guī)模。由此,我們也解決了各種奇怪的兼容性問題,最大程度上確保了技術(shù)方案的穩(wěn)定性。

快速接入

build.gradle的dependencies中添加依賴:

  1. dependencies { 
  2. ... ... 
  3.     // For specific version number, please refer to app demo 
  4.     implementation 'com.bytedance.boost_multidex:boost_multidex:${ARTIFACT_VERSION}' 

與官方MultiDex類似,在Application.attachBaseContext的最前面進(jìn)行初始化即可:

  1. public class YourApplication extends Application { 
  2.  
  3.     @Override 
  4.     protected void attachBaseContext(Context base) { 
  5.         super.attachBaseContext(base); 
  6.          
  7.         BoostMultiDex.install(base); 
  8.          
  9. ... ... 
  10.     } 

編譯構(gòu)建

如果想自行編譯打包,需要使用R16B版本的NDK以支持armeabi架構(gòu),如果不需要,可以直接在boost_multidex/build.gradle中去掉此依賴。

執(zhí)行以下命令即可構(gòu)建本地aar包:

  1. ./gradlew :boost_multidex:assembleRelease 

產(chǎn)物為 boost_multidex/build/outputs/aar/boost_multidex-release.aar

性能對(duì)比

以上是在抖音上測(cè)得的實(shí)際數(shù)據(jù),APK中共有6個(gè)Secondary DEX,顯而易見,BoostMultiDex方案相比官方MultiDex方案,其耗時(shí)有著本質(zhì)上的優(yōu)化,基本都只到原先的11%~17%之間。 也就是說BoostMultiDex減少了原先過程80%以上的耗時(shí)。 另外我們看到,其中有一個(gè)機(jī)型,在官方MultiDex下是直接崩潰,無法啟動(dòng)的。使用BoostMultiDex也將使得這些機(jī)型可以煥發(fā)新生。

性能對(duì)比如下:

項(xiàng)目地址: https://github.com/bytedance/BoostMultiDex

責(zé)任編輯:張燕妮 來源: GitHub實(shí)驗(yàn)室
相關(guān)推薦

2020-09-11 15:37:18

GitHub代碼開發(fā)者

2012-07-19 17:10:03

神奇的阿力Amazing AleRovio

2022-09-30 09:24:27

開源模型

2021-01-26 10:59:52

開源技術(shù) 數(shù)據(jù)

2020-11-25 12:50:53

微軟老舊照片開源

2021-04-30 15:33:27

AMD

2024-06-28 13:40:03

2025-04-16 09:03:27

2020-10-26 13:16:06

騰訊抖音App

2019-06-21 09:55:10

刷抖美腿App

2021-06-28 05:19:32

抖音電腦

2022-06-06 12:19:08

抖音功耗優(yōu)化Android 應(yīng)用

2021-04-29 05:58:20

微信搖一搖抖音

2019-03-07 15:04:37

抖音快手同城

2022-01-22 07:44:12

抖音PC 版電腦刷抖音

2020-06-01 17:04:38

聯(lián)想

2013-12-24 17:17:00

青蔥1391智能手機(jī)榮耀3C
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)