2016-06-11 18 views
1

私はminSDKVersion=17でAndroidスタジオからサンプルプロジェクトを作成しました。コンパイルされたAPKをapp\build\outputs\apk\からzipファイルとして開き、resディレクトリに移動しました。これには、minSDKより古いバージョンのレガシー用のディレクトリがたくさん含まれています。どうして?これは決して使用されない偽の43 KBを保持します。コンパイルされたAPKがminSdkVersionを尊重しないのはなぜですか?

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

    defaultConfig { 
     applicationId "vectordrawable.lelisoft.com.showvectordrawable" 
     minSdkVersion 17 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     vectorDrawables.useSupportLibrary = true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'com.android.support:design:23.4.0' 
} 

APK:

  1. RES \色V11
  2. RES \描画可能MDPI-V4
  3. RES \レイアウトsw600dp-V13
  4. RES \ミップマップ-hdpi-V4

答えて

1

これらのディレクトリはすべて、APIレベル17+のデバイスで有効です。 17が13,11、および4より高い。better matchのリソースがない場合、Androidアプリはこれらのディレクトリからリソースを取得する可能性があります。

+0

いいえ、それらを使用することができます。たとえば、res \ color-v11 \ abc_background_cache_hint_selector_material_dark.xmlがあります。あなたがそれを紹介したバージョンまで、v11からすべてのAndroidレガシーバージョンのためにAPKに存在しているということですか? –

+0

@LeosLiterak:AFAIK、その特定のリソースは 'appcompat-v7'から来るので、' appcompat-v7'を使わないAPKには存在しません。その特定のリソースは、Android SDK、AFAIKの一部ではありません。 – CommonsWare

関連する問題