首页 > 其他分享 >MultiDex介绍与使用

MultiDex介绍与使用

时间:2023-10-10 10:33:44浏览次数:34  
标签:... multidex 介绍 Application MultiDex 使用 Android class

MultiDex

Class文件与Dex文件

Dex(Dalvik-executable) class文件处理后的产物,专门为安卓上的虚拟机设计的一种压缩格式
in JAVA: *.java *.kt => *.class => JVM
in Android: *.java *.kt => *.class =>(去冗余) *.dex => Dalvik VM or ART VM

使用MultiDex的原由

当 Android 应用程序包含太多的方法数时,会出现 "方法数超过 65536" 的编译错误。这是由于 Android 操作系统对单个 Dex 文件(Dalvik Executable)的方法数有限制所致。为了解决这个问题,Android 提供了 Multidex 支持。

如何使用

  • Android 5.0及更高版本
//in Build.gradle
android {
	defaultConfig {
		...
		minSdkVersion 21// Android 5.0
		multiDexEnabled true// 启用MultiDex,Android 5.0及更高版本默认启用,实际无需配置
	}
}
  • Android 5.0之前版本
//in Build.gradle
android {
	defaultConfig {
		...
		minSdkVersion 14// Android 4.0
		multiDexEnabled true// 启用MultiDex
	}
}
dependencies {
	def multidex_version = "2.0.1"
	implementation "androidx.multidex:multidex:$multidex_version"
}

如果没有自定义Application

<!-- in AndroidManifest.xml -->
<application
	android:name="androidx.multidex.MultiDexApplication" >
	...
</application>

如果自定义了Application

// in your custom Application
public class MyApplication extends MultiDexApplication { ... }

如果您替换 Application 类,但无法更改基类,可以这么做以开启MultiDex

// in your custom Application
public class MyApplication extends SomeOtherApplication {
  @Override
  protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
  }
}

标签:...,multidex,介绍,Application,MultiDex,使用,Android,class
From: https://www.cnblogs.com/hanayouco/p/17753996.html

相关文章

  • ftrace在应用上的使用
    之前介绍通过命令行配置和使用ftrace功能,但是实际中,我们也会希望抓C/C++程序中某段代码的调度情况。笔者前不久就遇到这种问题,某个函数调用时延概率超过100ms,是为什么?这时候就需要在他们代码中使能ftrace抓执行此函数时候,任务的调度情况。观察某段代码执行过程中的情况,ftrace提供......
  • 8种品牌PLC单片机使用Socket编程实现以太网开放式通信服务器视频教程
    8种品牌PLC单片机使用Socket编程实现以太网开放式通信服务器视频教程一、罗克韦尔ABMicro850系列PLC实现ModbusTCP以太网通信协议​服务器视频教程:罗克韦尔ABMicro850系列PLC做ModbusTCP以太网通信服务器、以太网调试助手和ModbusPoll调试助手做ModbusTCP以太网通信客户端,......
  • C# DataTable使用方法详解
    在项目中常常常使用到DataTable,假设DataTable使用得当,不仅能使程序简洁有用,并且可以提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结。1、添加引用1using System.Data;2、创建表1234//创建一个空表DataTabledt=n......
  • python接口自动化之request请求,如何使用 Python调用 API?
    Python实战|如何使用Python调用API一、HTTP 请求HTTP 请求是在 HTTP 协议下的一种数据格式,用于向服务器发送请求,其通常由请求行、请求头和请求体三部分构成,请求头和请求体之间用空行隔开,其中各部分包含的信息如下:请求行 (Request Line):包括请求方法 (GET请求、POST请......
  • 01 | vim的一些使用说明
    我们在使用vim编写C或者C++的代码的时候,没有自动提示很影响编辑体验。那么我建议安装YCM插件,本文是基于安装完毕该插件的情况下,依然没有头文件自动提示的情况进行说明。YCM插件有三个头文件提示来源。vim自带的ctags机制vim打开的文件夹内的compile_commands.j......
  • C# Winform ComboBox使用笔记
    ComboBox添加元素//添加元素到ComboBoxcomboBox1.Items.Add("元素1");comboBox1.Items.Add("元素2");comboBox1.Items.Add("元素3");for(inti=4;i<6;i++){comboBox1.Items.Add($"元素{i}");}//设置默认显示的项comboBox1.Selecte......
  • 使用C#在Windows上压缩文件
    使用C#通过Zip实现文件的压缩可以设置输出文件的路径也可以留空,留空则会在压缩文件创建一个同名的.压缩包可以设置压缩包的密码可以设置压缩包的加密方式(ASE-256),可以使用LZMA但是加密码会报错可以设置压缩包的格式(zip),可以使用7z但是加密码会报错添加了密码最大长度的限......
  • 浅谈locust 性能压测使用
    1.基本介绍Locust是一个开源的负载测试工具,用于模拟大量用户并发访问一个系统或服务,以评估其性能和稳定性。编写语言为Python,可通过Python来自定义构建性能压测场景脚本。Locust支持分布式负载测试,可以通过多个机器协同工作来模拟大量用户并发访问。并提供了一个Web界面,可以实......
  • js_使用js读取link外部样式
    <linkrel="stylesheet"href="https://at.alicdn.com/t/c/font_1826665_p96ije5uc2f.css"crossorigin>varlinkStyle=document.getElementsByTagName("link")[0];varsheet=linkStyle.sheet||linkStyle.styleSheet;letreg=......
  • Docker基本使用
     虚拟机:通过虚拟化技术模拟真实的硬件从而创建出来的一台拥有完整功能的逻辑计算机。Docker容器:docker容器也是一种虚拟化技术,和传统虚拟化不一样的是docker只模拟一个程序最核心的运行环境,所以十分小巧,启动更快。Docker虚拟化技术和传统虚拟化技术架构对比:对比特点虚......