1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【Android 安装包优化】资源打包配置 ( resources.arsc 资源映射表 | 配置国际化资源 )

【Android 安装包优化】资源打包配置 ( resources.arsc 资源映射表 | 配置国际化资源 )

时间:2022-07-30 20:28:19

相关推荐

【Android 安装包优化】资源打包配置 ( resources.arsc 资源映射表 | 配置国际化资源 )

文章目录

一、resources.arsc 资源映射表二、配置国际化资源三、完整 build.gradle 构建脚本示例四、参考资料

一、resources.arsc 资源映射表

分析 Android 应用打包后的 APK 文件 , 打开resources.arsc文件 , 该文件是 Android 应用的资源映射表 ,

点击 string , 查看字符串资源 , 在 strings.xml 中定义的字符串 , 都在打包在了该位置 ;

在该资源映射表中的 string 字符串 , 包含了所有语言类型 , 浪费了很多不必要的空间 ;

这些字符串很多都是国际化时用的 , 查看项目源码 , 发现 res 资源目录中 , 并没有进行国际化 , 这些国际化资源都是随着依赖库引入而进入到应用中的 , 国际化资源最多的就是 androidx.appcompat:appcompat 依赖库 , 配置了所有国家语言的国际化资源 ;

二、配置国际化资源

在 build.gradle 构建脚本中的 " android / defaultConfig " 层级配置 resConfigs ‘en’ , 配置后只打包默认资源与英文资源 , 不会打包其它语言的国际化资源 , 最大限度节省空间 ;

android {defaultConfig {// 国际化资源配置, 只打包默认资源与英文资源resConfigs 'en'}}

配置完毕后 , 选择 " 菜单栏 / Build / Build Bundle(s)/APK(s) / Build APK(s) " , 再次编译生成 APK 安装包 ;

此时就可以看到 APK 减小了 1MB\rm 1 MB1MB , 由 3.9MB\rm 3.9 MB3.9MB , 减小为 3.8MB\rm 3.8 MB3.8MB ;

原来的 resources.arsc 资源映射表文件 , 由 704.6KB\rm 704.6 KB704.6KB 减小为 366.9KB\rm 366.9 KB366.9KB ;

文件中几十种语言的国际化资源只剩下一个默认资源 ;

资源越多 , 该配置减小的体积就越多 ;

三、完整 build.gradle 构建脚本示例

plugins {id 'com.android.application'id 'kotlin-android'}android {compileSdkVersion 30buildToolsVersion "30.0.3"defaultConfig {applicationId "kim.hsl.svg"minSdkVersion 18targetSdkVersion 30versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"// 生成 PNG 图片配置//generatedDensities = ['hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi']// 使用 com.android.support:appcompat 支持库配置vectorDrawables.useSupportLibrary = true// 国际化资源配置, 只打包默认资源与英文资源resConfigs 'en'}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}kotlinOptions {jvmTarget = '1.8'}}dependencies {implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"implementation 'androidx.core:core-ktx:1.3.2'// 矢量图支持库 , 支持 5.0 以下版本手机使用矢量图 , 这个是创建应用时自带的配置implementation 'androidx.appcompat:appcompat:1.2.0'implementation 'com.google.android.material:material:1.3.0'implementation 'androidx.constraintlayout:constraintlayout:2.0.4'testImplementation 'junit:junit:4.+'androidTestImplementation 'androidx.test.ext:junit:1.1.2'androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'}

四、参考资料

博客资源 :

GitHub 项目源码 :/han120/SVG

下载地址 :/download/han120/18542570

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。