資料介紹
軟件簡介
BoostMultiDex?是一個用于 Android 低版本設備(4.X及以下,SDK < 21)快速加載多 DEX 的解決方案,由字節跳動的抖音/Tiktok? Android 技術團隊出品。
相比于 Android 官方原始 MultiDex 方案,它能夠減少 80% 以上的黑屏等待時間,挽救低版本 Android 用戶的升級安裝體驗。并且,不同于目前業界所有優化方案,BoostMultiDex 方案是從 Android Dalvik 虛擬機底層機制入手,從根本上解決了安裝 APK 后首次執行 MultiDex 耗時過長問題。
背景
Android低版本(4.X及以下,SDK < 21)的設備,采用的 Java 運行環境是 Dalvik 虛擬機。它相比于高版本,最大的問題就是在安裝或者升級更新之后,首次冷啟動的耗時漫長。這常常需要花費幾十秒甚至幾分鐘,用戶不得不面對一片黑屏,熬過這段時間才能正常使用 APP。
這是非常影響用戶的使用體驗的。尤其在海外,像東南亞以及拉美等地區,還存有著很大量的低端機。4.X 以下低版本用戶雖然比較少,但對于抖音及 Tiktok 這樣有著億級規模的用戶的APP,即使占比10%,數目也有上千萬。因此如果想要打通下沉市場,這部分用戶的使用和升級體驗是絕對無法忽視的。
這個問題的根本原因就在于,安裝或者升級后首次 MultiDex 花費的時間過于漫長。為了解決這個問題,字節跳動挖掘了 Dalvik 虛擬機的底層系統機制,對 DEX 相關處理邏輯進行了重新設計,最終推出了BoostMultiDex方案,挽救低版本Android用戶的升級安裝體驗。
技術要點
BoostMultiDex方案的技術實現要點如下:
- 利用系統隱藏函數,直接加載原始DEX字節碼,避免ODEX耗時
- 多級加載,在DEX字節碼、DEX文件、ODEX文件中選取最合適的產物啟動APP
- 單獨進程做OPT,并實現合理的中斷及恢復機制
更重要的是,BoostMultiDex 已經在抖音/TikTok 億級全球用戶上驗證通過,可以說涵蓋了各個國家、各種復雜情況的Android機型,目前業界其他大型 AP P都很難涉及到如此廣泛的規模。由此,字節跳動也解決了各種奇怪的兼容性問題,最大程度上確保了技術方案的穩定性。
快速接入
build.gradle的dependencies中添加依賴:
dependencies { ... ... // For specific version number, please refer to app demo implementation 'com.bytedance.boost_multidex:boost_multidex:${ARTIFACT_VERSION}' }
與官方MultiDex類似,在Application.attachBaseContext的最前面進行初始化即可:
public class YourApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); BoostMultiDex.install(base); ... ... }
編譯構建
如果想自行編譯打包,需要使用R16B版本的NDK以支持armeabi架構,如果不需要,可以直接在boost_multidex/build.gradle 中去掉此依賴。
執行以下命令即可構建本地aar包:
./gradlew :boost_multidex:assembleRelease
產物為boost_multidex/build/outputs/aar/boost_multidex-release.aar
性能對比
| Android版本 | 廠商 | 機型 | 原始MultiDex耗時(s) | BoostMultiDex耗時(s) |
|---|---|---|---|---|
| 4.4.2 | LG | LGMS323 | 33.545 | 5.014 |
| 4.4.4 | MOTO | G | 45.691 | 6.719 |
| 4.3 | Samsung | GT-N7100 | 24.186 | 3.660 |
| 4.3.0 | Samsung | SGH-T999 | 30.331 | 3.791 |
| 4.2.2 | HUAWEI | Hol-T00 | *** | 3.724 |
| 4.2.1 | HUAWEI | G610-U00 | 36.465 | 4.981 |
| 4.1.2 | Samsung | I9100 | 30.962 | 5.345 |
以上是在抖音上測得的實際數據,APK ***有 6 個 Secondary DEX,顯而易見,BoostMultiDex 方案相比官方MultiDex 方案,其耗時有著本質上的優化,基本都只到原先的11%~17%之間。?也就是說BoostMultiDex減少了原先過程80%以上的耗時。?另外其中有一個機型,在官方 MultiDex 是直接***無法啟動的。使用 BoostMultiDex 也將使得這些機型可以煥發新生。
- 8寸安卓動態人臉識別門禁終端
- Rslogix5000從高版到低版本轉換教程 0次下載
- 手機智能相冊軟件DwgCloudGallery安卓版 0次下載
- 安卓系統藍牙調試助手工具源代碼下載 8次下載
- 安卓系統使用教程之安卓系統的50個使用技巧資料免費下載 23次下載
- Linux桌面系統初級教程之如何進行軟件安裝和卸載 2次下載
- 如何使用proteus 8.0打開低版本的電路圖 0次下載
- ADB工具(安卓 & Linux調試)下載 21次下載
- 安卓聲紋解鎖系統 2次下載
- Acme CAD Converter官網下載入口(CAD版本轉換器) 0次下載
- 安卓開發學習教程 14次下載
- 安卓系統DIY教程 18次下載
- PADS_設置 0次下載
- DWG格式文件轉換工具DWGTrueConvert2007
- AD5320中文資料pdf
- 快速將二維碼掃描識別模組嵌入集成到安卓一體機上使用 919次閱讀
- CAD繪圖技巧全攻略 1.6k次閱讀
- 鴻蒙系統和安卓的區別哪個好用 4.7k次閱讀
- harmonyos和安卓的區別 7.8k次閱讀
- 安卓與迪文屏的無線交互應用 1.6k次閱讀
- 編譯官方fridaserver或者strongFrida并替換系統內置版本 4.8k次閱讀
- 安卓應用層抓包通殺腳本的用法 2.6k次閱讀
- 一文了解MyBatis的查詢原理 2k次閱讀
- FP32推理TensorRT演示 3.2k次閱讀
- macOS如何快速連接安卓機?不如試試這個免費的開源工具 4.6k次閱讀
- 米爾科技Xilinx下載線介紹 2.7k次閱讀
- 做到這兩點后鴻蒙或將超越安卓 3.2k次閱讀
- 安卓獲權獲取的技術原理 5.2k次閱讀
- 一文讀懂塞班系統和安卓系統的區別 3.4w次閱讀
- 車載安卓系統的設計方案和注意事項 1w次閱讀
下載排行
本周
- 1EMC PCB設計總結
- 0.33 MB | 6次下載 | 免費
- 2LLC變換器的原理特點與應用領域
- 1.54 MB | 1次下載 | 1 積分
- 3索尼14n 20n系列維修手冊
- 3.68 MB | 次下載 | 1 積分
- 4晶益微 JY6166 音頻codec驅動資料分享
- 0.73 MB | 次下載 | 免費
- 5晶益微 JY6311 音頻codec驅動資料分享
- 0.77 MB | 次下載 | 免費
- 6英集芯 IP5518V 集成MCU 的TWS耳機充電倉管理SoC數據手冊
- 8.35 MB | 次下載 | 免費
- 7英集芯 IP5518 集成MCU的TWS耳機充電倉管理SoC數據手冊
- 7.53 MB | 次下載 | 免費
- 8英集芯 IP5518H 集成MCU的30V高耐壓TWs耳機充電倉管理S0C數據手冊
- 8.33 MB | 次下載 | 免費
本月
- 1EMC PCB設計總結
- 0.33 MB | 6次下載 | 免費
- 2耗盡型MOS FET產品目錄選型表
- 0.14 MB | 4次下載 | 免費
- 3PD取電芯片 ECP5702規格書
- 0.88 MB | 4次下載 | 免費
- 4氮化鎵GaN FET/GaN HEMT 功率驅動電路選型表
- 0.10 MB | 2次下載 | 免費
- 52EDL05x06xx系列 600V半橋門驅動器帶集成自舉二極管(BSD)手冊
- 0.69 MB | 1次下載 | 免費
- 6TI系列-米爾TI AM62L核心板開發板-高能效低功耗嵌入式平臺
- 1.51 MB | 1次下載 | 免費
- 7PD取電芯片,可取5/9/12/15/20V電壓ECP5702數據手冊
- 0.88 MB | 1次下載 | 免費
- 8飛騰FT2000-4 COM Express核心板技術手冊0603
- 1.22 MB | 1次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191457次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81606次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73832次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論