当前位置: 首页 > news >正文

网站建设培训价格中山市安全平台教育

网站建设培训价格,中山市安全平台教育,蜗牛精灵seo,个人网页设计作品展示目录#xff1a;一、前言二、产生原因三、MultiDex的简要原理四、MultiDex的使用 一、前言 首先说一下我遇到的情况#xff0c;最近接手了一个项目是在已有的项目里进行更新添加一些功能#xff0c;然后该项目导了N多的包#xff0c;在我使用Android Studio的run”App”直… 目录 一、前言二、产生原因三、MultiDex的简要原理四、MultiDex的使用 一、前言 首先说一下我遇到的情况最近接手了一个项目是在已有的项目里进行更新添加一些功能然后该项目导了N多的包在我使用Android Studio的run”App”直接安装到手机上运行是正常的然后正式打包安装后就崩溃了当时觉得很奇怪然后一看日志 trouble writing output:  Too many field references: 131000; max is 65536.  You may try using --multi-dex option. 很明显方法数65536上限了那为什么直接运行又没问题呢  没办法只好查资料  Note: While using Instant Run, Android Studio automatically configures your app for multidex when your apps minSdkVersion is set to 21 or higher. Because Instant Run only works with the debug version of your app, you still need to configure your release build for multidex to avoid the 64K limit. 大概意思就是 如果使用Instant Run当app的minSdkVersion大于或等于21时Android Studio会自动配置支持multidex但是仅debug版本有效release版仍然需要配置multidex来突破64K限制。 原来当android sdk大于21的时候debug自动支持multidex好了回到正文multidex分包二、产生原因 在Android系统中一个App的所有代码都在一个Dex文件里面。Dex是一个类似Jar的存储了多有Java编译字节码的归档文件。因为Android系统使用Dalvik虚拟机所以需要把使用Java Compiler编译之后的class文件转换成Dalvik能够执行的class文件。这里需要强调的是Dex和Jar一样是一个归档文件里面仍然是Java代码对应的字节码文件。当Android系统启动一个应用的时候有一步是对Dex进行优化这个过程有一个专门的工具来处理叫DexOpt。DexOpt的执行过程是在第一次加载Dex文件的时候执行的。这个过程会生成一个ODEX文件即Optimised Dex。执行ODex的效率会比直接执行Dex文件的效率要高很多。但是在早期的Android系统中DexOpt有一个问题也就是这篇文章想要说明并解决的问题。DexOpt会把每一个类的方法id检索起来存在一个链表结构里面。但是这个链表的长度是用一个short类型来保存的导致了方法id的数目不能够超过65536个。当一个项目足够大的时候显然这个方法数的上限是不够的。尽管在新版本的Android系统中DexOpt修复了这个问题但是我们仍然需要对低版本的Android系统做兼容。 为了解决方法数超限的问题需要将该dex文件拆成两个或多个为此谷歌官方推出了multidex兼容包配合AndroidStudio实现了一个APK包含多个dex的功能。 三、MultiDex的简要原理  我们以APK中有两个dex文件为例第二个dex文件为classes2.dex。  兼容包在Applicaion实例化之后会检查系统版本是否支持 multidexclasses2.dex是否需要安装。  如果需要安装则会从APK中解压出classes2.dex并将其拷贝到应用的沙盒目录下。  通过反射将classes2.dex注入到当前的classloader中。  下面引入一下官方的文档  https://developer.android.com/tools/building/multidex.html#about 四、MultiDex的使用 1、在Gradle中配置使用Multidex 由于Android的Gradle插件在Android Build Tool 21.1开始支持使用multidex所以我们需要使用Android Build Tools 21.1及以上版本修改app目录下的build.gradle文件有两点需要修改。 1在defaultConfig中添加multiDexEnabled true这个配置项。  2在dependencies中添加multidex的依赖  compile ‘com.android.support:multidex:1.0.1’ 2、在Gradle中配置好之后我们还需要在代码中加入支持multidex的功能有三种方案可选 方案一在manifest文件中指定Application为MultiDexApplication如下 方案二写一个Application类并继承MultiDexApplication并在AndroidManifest.xml的application标签中进行注册在application标签中增加name属性并添加自己的Application类名即可如果不是想重写MultiDexApplication中一些方法的话还是方案一更方便些。如下 注册如下 方案三如果不想按方案二继承我们可以重写Application的attachBaseContext方法注意这个方法比onCreate方法先执行。具体方法是创建一个新类继承Application然后重写attachBaseContext方法并在AndroidManifest.xml的application标签中进行注册与方案二注册相同如下 对于在AndroidManifest.xml中注册与方案二的注册相同。
http://wiki.neutronadmin.com/news/107078/

相关文章:

  • 烟台网站营销交易网站开发文档
  • 网站开发过程及要求兰州做网站
  • 中国新闻社官方网站与安网站建设
  • 网站页面自适应屏幕单页设计思路
  • 青岛城阳网站建设公司网站进不去qq空间
  • 北京网站设计制作哪家好毕节市住房和城乡建设局网站
  • 爱做网站免费模板vip网站建设兼容性
  • 做服饰网站建筑网片厂家货源平台
  • 网站建设费怎么写会计科目网站上传格式
  • 响应式网站模板怎么得到wordpress文章加图片
  • 微信网站开发js框架学校网站建设申请报告
  • 专注江苏网站建设大型网站开发 广州
  • 抖音小程序推荐采集网站seo
  • 深圳cms建站系统建设工程资讯哪个网站好
  • 北京集团 网站建设响应式网站和自适应
  • 用dw制作网站模板下载下载软件的应用商店
  • 照片墙网站源码网店推广方案策划书
  • 建设公司网站管理制度的意义wordpress更改文章宽度
  • 做期货看啥子网站如何加强企业网站建设 论文
  • 中山网络公司网站建设做外贸用哪个网站好
  • 建设网站 宣传平台企业网站建设毕业设计
  • 昆明自助建站模板沈阳城乡建设工程信息网
  • 襄阳网站建设xtehuswordpress 数据库导入
  • 单位做网站资料需要什么软件新开发的app怎么推广
  • 加强公司门户网站建设wordpress手机导航三横拦
  • 12306网站哪个公司做的重庆网站建设公
  • 贵阳网站建设1685建立购物网站
  • 万盛建设局官方网站云浮网站网站建设
  • 贵阳门户网站建设3d建模自学
  • 做书籍的网站网站建设自我总结