当前位置: 首页 > 知识库问答 >
问题:

在首次发布期间,Android需要更多的时间来启动应用程序

蒋波光
2023-03-14

在我的项目中,我使用了需要multidex支持的库。根据我所做的研究,我知道它会导致应用程序启动时的延迟。

我在Gradle中启用了multidex功能。defaultConfig{multiDexEnabled true}

我曾经为kitkat设备获得NoClassDefFound异常,所以我添加了以下内容:

我在manifest中添加了应用程序名为Android:name=“Android.support.multidex.multidexApplication”

我知道以上任何一个都足够了,但我刚刚写了两个。

我尝试了不同的方法来优化启动的持续时间,如下所示:

1.添加了productFlavors{dev{minSdkVersion 21}prod{minSdkVersion 14}}

dexOptions{preDexLibraries false javaMaxHeapSize“4G”}

我只需要导入google play服务的库,而不是导入完整的库。

你能不能建议我一个即兴的持续时间的方法,因为它实际上需要超过10秒,在一些设备中甚至超过10秒?

提前谢了。

我已经添加了build.gradle文件内容:

 apply plugin: 'com.android.application'
 apply plugin: 'com.google.gms.google-services'

 android {
  compileSdkVersion 23
  buildToolsVersion "23.0.3"
  useLibrary 'org.apache.http.legacy'

 defaultConfig {
    applicationId "com.example.app"
    minSdkVersion 17
    targetSdkVersion 23
    versionCode 3
    versionName "1.2"
    multiDexEnabled true
}

dexOptions {
    incremental true
    javaMaxHeapSize "10g"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}

  dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/ormlite-android-4.28.jar')
    compile files('libs/ormlite-core-4.28.jar')
    compile project(':volley')
    compile 'com.android.support:cardview-v7:23.2.1'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.google.code.gson:gson:2.3.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.github.siyamed:android-shape-imageview:0.9.+@aar'
    compile 'com.viewpagerindicator:library:2.4.1@aar'
    compile 'com.android.support:design:23.2.1'
    compile 'com.facebook.android:facebook-android-sdk:4.1.2'
    compile 'org.jsoup:jsoup:1.8.2'
    compile 'org.twitter4j:twitter4j:4.0.3'
    compile 'com.github.castorflex.smoothprogressbar:library-circular:1.1.0'
    compile 'com.orhanobut:dialogplus:1.11@aar'
    compile 'com.google.android.gms:play-services-maps:8.3.0'
    compile 'co m.google.android.gms:play-services-gcm:8.3.0'
    compile 'com.google.android.gms:play-services-location:8.3.0'
    compile 'org.java-websocket:Java-WebSocket:1.3.0'
    compile 'org.apache.commons:commons-lang3:3.4'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:recyclerview-v7:23.1.1'
 }

共有1个答案

孔运珧
2023-03-14

新发布的Android Studio2.0或2.1有一个奇怪的问题。第一次启动应用程序需要比通常更长的时间。此问题只在调试模式下发生,不会影响您发布的APK。我也在忍受这个问题,并找到了这个解决方案。

Settings/Preferences(Mac) → Build, Execution, Deployment → Instant Run and uncheck Instant Run

这将解决您的问题,如果是,请标记为接受的答案。

 类似资料:
  • 我有一个Android应用程序。在启动屏幕的方法中,我添加了 因此,我希望在onCreate退出后100ms后执行该代码。 但我可以看到,我的应用程序在onCreate()之后花了3秒时间来执行延迟后的代码(在3秒之后还会出现UI): 有人能告诉我为什么一个应用程序可以在onCreate()之后花3秒来执行延迟后的代码和UI开始出现? 请建议我如何优化这一次的技巧? 还有一个问题,Handler.

  • 我有一个使用模块的运行的进程: 其结果是: 这里,调用来处理图像(附件)并将OCR结果输出到myop。txt。 现在,我希望这在多个进程上发生,代表这个注释(或者直接看到这个),所以代码在这里: 这段代码所做的是调用4次,将流程对象保存在列表中,遍历所有这些对象,直到它们全部完成。下面给出了无限循环实现的说明。 这里的问题是后一个程序需要花费大量的时间来完成。它一直在使用函数等待进程完成,该函数为

  • 我的一个服务/执行器/健康endpoint花费了更多时间(大约9秒)。我正在使用以下依赖项,如何调试? 使用的Spring引导版本:2.0.3.RELEASE 谢谢,哈里

  • 问题内容: 我有一个听TIME_SET动作android的接收器。 但有时会在不改变时间的情况下采取有意图的行动(随机问题) 请帮助我解决这个问题 提前致谢。码 问题答案: 我也有同样的问题。看来,如果您的设备已选中“使用网络提供的时间”,则该设备将定期更新时间。似乎即使更新了时间(即使是最小的时间校正),也会发生TIME_SET广播…我希望可以检查/使用一些阈值参数,以便广播这些次要的时间校正,

  • 问题内容: 我的问题很简单,我该如何识别首次申请?我认为可以通过在RMS中保存一些值并在应用启动时读取它并决定要做什么来实现。 但是没有更简单的解决方案吗? 问题答案: 据我所知,没有比这更简单的方法了,但这还是很容易的。

  • 我有一个Spring Boot应用程序,它有一些外部依赖(例如,项目之外的文件,需要存在,以便应用程序正确启动)。 和一系列其他例外。有没有一种方法可以恰当地做到这一点?