我找到了两种可能的方法来生成发布APK
定义产品口味&在模块build.gradle文件中签名如下所示,然后单击“运行”按钮(betaRelease Config)
android {
signingConfigs {
my_alias {
keyAlias 'my_alias'
keyPassword '*******'
storeFile file('*******')
storePassword '******'
}
}
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 16
targetSdkVersion 22
versionCode 9
versionName "0.2"
resConfigs "en","hi","te"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.my_alias
}
debug {
minifyEnabled false
}
}
productFlavors {
alpha {
applicationId = "***************"
resValue 'string', 'app_name', '**********'
resValue 'string', 'instabug_app_id','*******************'
manifestPlaceholders = [onesignal_app_id : "*******************",
onesignal_google_project_number: "************"]
}
beta {
applicationId = "***************"
resValue 'string', 'app_name', '**********'
resValue 'string', 'instabug_app_id','*******************'
manifestPlaceholders = [onesignal_app_id : "*******************",
onesignal_google_project_number: "************"]
}
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
使用Android Studio中“构建”菜单中的“生成签名的APK”选项
第一个APK有14.5MB,第二个给出22.5MB,这有很大的不同。使用APK分析器我可以看到第二个是复制res文件夹中的drawables,如下所示。较小的发行版APK(14.5MB一个)在所有类型的设备上运行良好。
为什么我需要更大的?我可以将普通版APK上传到Play商店吗?
是否有任何配置可以避免重复的drawables?
答案 0 :(得分:2)
根据我的观察,我会尝试回答这个问题。
为什么我需要更大的?我可以将普通版APK上传到Play商店吗?
当您通过单击“运行”按钮释放apk时,您将定位特定设备(模拟器或USB设备),并且您只为此目标创建资源。这就是为什么你有更小的.apk文件。
如果要部署和定位所有设备密度,则应使用“生成签名APK”选项为所有设备提供资源(例如图像)。
较小的版本APK(14.5MB one)在所有类型的设备上运行良好。
我认为因为图像会缩放以适应屏幕。但是你以这种方式在图像上失去了质量。
Providing Resources instruction中的是否有任何配置可以避免重复的drawable?
写道:
应用程序的布局方向。 ldrtl的意思是“布局方向 - 从右到左”。 ldltr表示“layout-direction-left-to-right”,是默认的隐式值。
所有这些意味着您没有重复的drawable,但现在它们位于正确的目录中。
答案 1 :(得分:0)
Android自身为构建添加了一些文件......它还将几个清单文件合并到构建中,以便将其识别为版本构建。通过分析你的正常构建apk并使用APK分析工具在工作室2.2 +
中释放apk,你可以更好地了解你的apk被添加到什么和大的东西保持minifyEnabled为true,如果你也需要帮助你减少你的apk文件大小!