字节跳动开源又一力作

【公众号回复 “1024”,免费领取程序员赚钱实操经验】

大家好,我是章鱼猫。

今天给大家推荐的这个项目是「BoostMultiDex」,一个用于 Android 低版本设备(4.X 及以下,SDK < 21)快速加载多 DEX 的解决方案。

Android 低版本(4.X 及以下,SDK < 21)的设备,采用的 Java 运行环境是 Dalvik 虚拟机。它相比于高版本,最大的问题就是在安装或者升级更新之后,首次冷启动的耗时漫长。这常常需要花费几十秒甚至几分钟,用户不得不面对一片黑屏,熬过这段时间才能正常使用 APP,这是非常影响用户的使用体验的。

可能你觉得 Android 4.X 及以下的手机很少了,但对于抖音及 Tiktok 这样有着亿级规模的用户的 APP,即使占比 10%,数目也有上千万。因此如果想要打通下沉市场,这部分用户的使用和升级体验是绝对无法忽视的。

BoostMultiDex 方案的技术实现要点如下:

  • 利用系统隐藏函数,直接加载原始 DEX 字节码,避免 ODEX 耗时

  • 多级加载,在 DEX 字节码、DEX 文件、ODEX 文件中选取最合适的产物启动 APP

  • 单独进程做 OPT,并实现合理的中断及恢复机制

相比于 Android 官方原始 MultiDex 方案,它能够减少 80% 以上的黑屏等待时间,挽救低版本 Android 用户的升级安装体验。并且,不同于目前业界所有优化方案,BoostMultiDex 方案是从 Android Dalvik 虚拟机底层机制入手,从根本上解决了安装 APK 后首次执行 MultiDex 耗时过长问题。

性能对比如下:

点击阅读原文查看更多。

开源项目地址:https://github.com/bytedance/BoostMultiDex

开源项目团队:抖音 / Tiktok Android 技术团队

推荐阅读:

我们每天都在用的验证码功能,竟然是这么实现的

一款功能强大的免费在线作图工具

GitHub 精选开源项目周刊第 3 期

---特别推荐---

特别推荐:一个新的优质的推荐高效工具,软件,插件的公众号,每天给大家分享优秀的效率工具,「程序员掘金」,专门为程序员挖掘好东西的一个公众号,非常值得大家关注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/34921.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

炸裂!万字长文拿下HTTP 我在字节跳动等你!

本文将从以下几个方面进行分享。其中包括HTTP发展史&#xff0c;HTTP缓存代理机制&#xff0c;常用的web攻击&#xff0c;HTTP和HTTPS的流量识别&#xff0c;网络协议学习的工具推荐以及高频HTTP与HTTPS的高频面试题题解等&#xff0c;开工。ps(如果需要带目录pdf&#xff0c;私…

字节跳动青训营--前端day2

文章目录 前言一、css1. css的组成2. css三种使用方式3.css的工作方式 二、 css选择器Selector1. 选择元素的方式2. 伪类&#xff08;pseudo-classes&#xff09;2.1 状态伪类2.1 结构伪类 3.通过组合选择元素3.1 直接组合3.2 元素组合的拓展 4. 选择器的特异度&#xff08;Spe…

字节跳动第七期技术训练营——“抓到你了”项目

github地址 一. 项目要求&#xff1a; 作业名称 《抓到你了——具备安全防护能力的账号系统》 产品形态 具有安全风控防护能力的账号注册登录系统 产品功能介绍 设计并开发一个登录注册系统&#xff0c;可以支持注册、登录和登出或注销的基本功能&#xff0c;另外也需要…

字节跳动青训营--前端day8

文章目录 前言一、CSR&#xff0c;SSR&#xff0c;SSG1. CSR2. SSR3. SSG4. SSR&#xff0c;SSG的优势利于SEO更短的首屏时间 二、什么是Next.js三、Next.js客户端开发1. Api2. CSS Modules3. Layout4. 文件式路由 四、Next.js服务端开发 前言 仅以此文章记录学习历程。 一、C…

孙叫兽CSDN社区云----WebIT已创建,欢迎大家前端全栈小伙伴踊跃加入

目录 社区云是什么&#xff1f; 创建CSDN社区云WebIT的目的 推荐分享的技术点&#xff08;如下图所示&#xff09; 社区成员权益 版主权益 管理员权益 WebIT社区云积分规则 WebIT优质版主及管理员可以申请直播分享前端技术 WebIT社区云将为社区运营者提供&#xff1a; …

字节跳动在Rust高性能编程探索和实践

本文整理自字节跳动火山引擎基础架构服务框架工程师吴迪于Qcon大会上的分享内容。 嘉宾及内容介绍 本次分享内容主要分为以下三个部分&#xff1a; 我们为什么选择了 Rust 语言&#xff1b;我们做了什么&#xff1b;展望未来&#xff1a;机遇与挑战。 我们为什么选择了 Rust 语…

字节跳动自研 OpenBMC 方案成功上线,STE 团队工程师都做了哪些事?

OpenBMC 是 Linux Foundation 组织里的一个项目&#xff0c;也是目前开源 BMC 里方案最成熟、社区最活跃的项目。日前&#xff0c;我们得知字节跳动系统部 STE 团队自研的 OpenBMC&#xff0c;已在内部成功上线&#xff0c;并稳定运行了两个多月。这也是字节跳动首次正式上线并…

月薪11K!95后房产经纪人转行当程序员:工资过万不难,精神压力也不大

时代在不断的发展&#xff0c;人们对“衣食住行”的要求越来越高&#xff0c;而这其中人们对于“住”是格外的关注。 买房的人希望自己能买到合适的房子&#xff0c;而卖房的人也担心自己的房子卖便宜了&#xff0c;所以越来越多的人在买房卖房这一块儿很难抉择&#xff0c;因…

chatgpt赋能python:Python怎么装Pip

Python怎么装Pip Python是一种非常流行的编程语言&#xff0c;可以用于各种用途&#xff0c;包括网页开发、数据分析、科学计算等。如果你是一个Python编程新手&#xff0c;你可能不知道如何安装和使用Python包。Pip是Python包管理系统&#xff0c;可以帮助你安装和管理Python…

赛事报名启动丨百度Apollo星火自动驾驶大赛开始报名啦!

作为汽车智能化、网联化的关键环节&#xff0c;自动驾驶成为全球科技界、产业界竞争的新赛道。随着人工智能、5G通信、激光雷达、高精地图等多项技术不断完善&#xff0c;自动驾驶的判断力和理解力得到了显著提升。为了推动自动驾驶技术的发展、加快人工智能技术的迭代&#xf…

RocketMQ 在同程旅行的落地实践

本文作者&#xff1a;刘树东 - 同程艺龙技术专家 01/使用概况 同程旅行选择RocketMQ主要基于以下几个方面的考虑&#xff1a; 技术栈&#xff1a;公司主要以 Java 开发为主&#xff0c;因此我们倾向于选择一款用 Java 实现的MQ&#xff0c;且没有任何第三方依赖为最佳&#…

火爆全网的个人行程卡纪念版!3秒教你快速生成!

大家好 咱们直接开门见山&#xff01; 3 秒生成你的专属行程卡纪念版 用下面这款小工具&#xff0c;只需要 3 秒&#xff0c;就能帮大家生成【行程卡纪念版】。 用一张图片记录你三年去过的地方。 回顾过去三年&#xff0c;我们发现许多美好的回忆已经深深地留在了我们的心中。…

CAN网络管理唤醒功能

采用1043的can 芯片:工作模式 – 正常模式 – 具有 INH 输出以及本地和远程唤醒请求功能的待机模式 – 具有 INH 输出以及本地和远程唤醒请求的低功耗睡眠模式 状态切换流程图: CAN唤醒的需求: 唤醒请求(Wake Up Request) 唤醒请求可分为两种: ● 主动唤醒请求:来自模…

(智能车比赛)基于 ADS 逐飞库 英飞凌 TC264 377系列 的多核使用经验

多核并行主要有两个方面 一&#xff0c;程序&#xff0c;变量储存地址设置 二&#xff0c;运行核选择 一、内存分配 概念及过程描述 尽量将不同的功能划分为各个模块&#xff0c;然后交给不同的cpu运行。 或者说不同的cpu负责运行不同的功能&#xff0c;cpu之间以少量的参…

CK-UR05-US桌面式超高频RFID发卡器开发手册之USB控制命令格式

CK-UR05-US桌面式超高频RFID发卡器支持USB控制命令格式&#xff0c;本文重点就此格式展开说明&#xff01; CK-UR05-US桌面式超高频RFID发卡器 1、取版本号(GetReaderVersion) 功能:取读写器的硬件、软件版本 命令码: 02H 命令参数:无 命令包: 『40H 02H 02H BCH』 举例: 如…

RFID课程设计-图书管理系统用户端设计

RFID课程设计-图书管理系统用户端设计课程设计题目课程设计任务内容题目设计基本原理NFC开发概述标签调度系统如何将 NFC 标签映射到 MIME 类型和 URI如何将 NFC 标签分发到应用在 Android 清单中请求 NFC 访问权限过滤 NFC IntentACTION_NDEF_DISCOVEREDACTION_TAG_DISCOVERED…

Linux炫酷终端仪表盘

最近发现了一个适合装逼的终端命令&#xff0c;会在终端显示一个炫酷的仪表盘&#xff08;提示&#xff1a;终端全屏显示效果才好&#xff09; 先上图 首先安装三个软件 sudo apt-get install node nodejs-bin sudo apt install nodejs-legacy sudo apt install git 待会会下…

【袋鼠云】标签系统

文章目录 客户画像标签建设的演进1. 业务单元独立作战2. 离线数仓统一建设3. 实时数据多维补充4. 标签产品化管理5. 数据智能化管理 标签体系设计与加工一、标签体系设计1. 数据梳理2. 基于OLP模型体系化梳理标签3. 定义标签与加工口径 二、标签模型设计三、标签配置1. 根据业务…

AI最新开源:LMSYS Org开源LongChat、法律大语言模型ChatLaw、中文医疗对话模型扁鹊

一周SOTA&#xff1a;LMSYS Org开源LongChat、法律大语言模型ChatLaw、中文医疗对话模型扁鹊 文章目录 1. LMSYS Org发布LongChat&#xff0c;上下文碾压64K开源模型2. 北大团队发布法律大模型 ChatLaw3. 扁鹊&#xff1a;指令与多轮问询对话联合微调的医疗对话大模型 1. LMSY…

pta中级题库

目录 7-1 三个整数排序 7-3 求数列前n项之和 7-4 求一组数据的平均值 7-5 输出图形 7-6 一行字符变换 7-7 sdut- C语言实验——删除指定字符 7-35 二维数组中每行最大值和每行和 7-36 矩阵转置 7-38 二维数组元素变化 7-39 沙漏图形 7-40 连接两个字符串 7-41 统计…