2016-07-21 77 views
-1

我搜索了很多問題,但唯一可以找到的答案是重構onCreate中的代碼以啓用快速啓動。但這個問題在我的情況下看起來不同。 我和我的團隊成員正在研究通過GITHUB同步的代碼,由他製作的構建在Flash中打開,由我製作的構建需要超過10秒才能啓動。 另一個問題,他的構建是90MB左右,我的構建只有30MB。應用程序無論如何功能齊全,但啓動時間和構建尺寸的差異太大。Android應用程序啓動時間過長

我不確定他的系統配置,但我使用JAVA8編譯,SDK 24和Gradle 2.10來構建應用程序。

這裏是我的gradle這個文件

buildscript { 
    repositories { 
     jcenter() 
     /*flatDir { 
      dirs 'libs' 
     }*/ 
     maven { url 'https://maven.fabric.io/public' } 
    } 

    dependencies { 
     //compile(name:'library-release', ext:'aar') 
     classpath 'io.realm:realm-gradle-plugin:0.88.0' 
     classpath 'io.fabric.tools:gradle:1.21.2' 
    } 
} 
apply plugin: 'com.android.application' 
apply plugin: 'realm-android' 
apply plugin: 'io.fabric' 

repositories { 
    maven { url 'https://maven.fabric.io/public' } 
} 


android { 
    compileSdkVersion 24 
    buildToolsVersion '24.0.0' 

    useLibrary 'org.apache.http.legacy' 
    dexOptions { 
     maxProcessCount 4 // this is the default value 
     javaMaxHeapSize "4g" 
     dexInProcess = false 
    } 

    defaultConfig { 
     applicationId "com.sample.app" 
     minSdkVersion 21 
     targetSdkVersion 24 
     versionCode 31 
     versionName "1.0" 
     multiDexEnabled true 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     /*debug { 
      minifyEnabled true 
      useProguard false 
     }*/ 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    sourceSets { 
     main { 
      java.srcDirs = ['src/main/java'] 
     } 
     robolectric { 
      java.srcDir file('src/test/java/') 
     } 
    } 

} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile('com.twitter.sdk.android:twitter:[email protected]') { 
     transitive = true; 
    } 
    testCompile 'org.robolectric:shadows-play-services:3.0' 
    testCompile 'org.robolectric:shadows-support-v4:3.0' 
    testCompile 'org.powermock:powermock-module-junit4:1.6.2' 
    testCompile 'org.powermock:powermock-module-junit4-rule:1.6.2' 
    testCompile 'org.powermock:powermock-api-mockito:1.6.2' 
    testCompile 'org.powermock:powermock-classloading-xstream:1.6.2' 
    testCompile 'junit:junit:4.12' 
    testCompile 'org.robolectric:robolectric:3.0' 
    testCompile 'org.assertj:assertj-core:1.7.0' 
    androidTestCompile 'com.android.support:support-annotations:24.0.0' 
    androidTestCompile 'com.android.support.test:runner:0.4' 
    androidTestCompile 'com.android.support.test:rules:0.4' 
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1' 
    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 

    // compile(group: 'com.google.gms', name: 'google-services', version: '2.0.0-beta4', ext: 'pom') 
    //apply plugin: 'com.android.application' 
    compile 'com.google.android.gms:play-services:9.2.1' 
    compile 'com.google.android.gms:play-services-location:9.2.1' 
    compile 'com.google.android.gms:play-services-gcm:9.2.1' 
    compile 'com.mcxiaoke.volley:library:1.0.15' 
    compile 'com.github.bumptech.glide:glide:3.7.0' 
    compile 'com.android.support:support-v4:24.0.0' 
    compile 'com.android.support:appcompat-v7:24.0.0' 
    compile 'com.android.support:design:24.0.0' 
    compile 'com.android.support:recyclerview-v7:24.0.0' 
    compile 'com.facebook.android:facebook-android-sdk:4.7.0' 
    compile 'com.squareup.okhttp3:okhttp:3.2.0' 
    compile 'com.coinbase.android:coinbase-android-sdk:1.0.1' 
    compile 'org.roboguice:roboguice:2.0' 
    compile 'pl.droidsonroids.gif:android-gif-drawable:1.1.14' 
    compile 'com.sprylab.android.texturevideoview:texturevideoview:1.1.1' 
    compile 'com.google.code.gson:gson:2.4' 
    compile 'com.google.android.gms:play-services-ads:9.2.1' 
    compile 'com.google.android.gms:play-services-auth:9.2.1' 
} 
//put 'com.google.gms.google-services' plugin at the bottom 
apply plugin: 'com.google.gms.google-services' 
+1

APK的大小不應該是那麼不同!知道他正在使用哪個IDE /版本,以及如果你們兩個都使用相同的資源等等可能是有用的.30和90MB大小似乎很奇怪。 – Sufian

+0

是的,我知道@Sufian,我們已經匹配資源,他們幾乎一樣。我們都使用Android Studio 2.1.2 –

+0

請參閱此主題以及http://stackoverflow.com/questions/22064591/apk-size-is-bigger-than-expected-android-studio – Sufian

回答

6

如果僅在調試模式下發生的,所以你可以嘗試禁用即時運行

首選項>構建,執行,部署>即時運行

並在那裏取消選中「啓用即時運行...」

+0

我不排除即時運行導致這樣的怪異。它一直如此混亂。 – Sufian

+0

的權利,但只是爲了檢查這是否是問題 – Yoni

+0

它的工作,應用程序運行速度更快,大小從30MB更改爲120MB。運作良好,但如果您可以提供此行爲的任何鏈接或解釋,它將會更有幫助。 –

-1

有時候是由於主線程執行的任務更多。 它減慢了應用程序的啓動速度。 避免主線程中的更多任務。

+0

正如我的問題的第一行中提到的,它不是因爲主線程或onCreate問題。不過謝謝你的嘗試。 –