Android开发优化之Apk瘦身优化指南

2022-05-18 06:56:55
目录
了解APK结构Android Size Analyzer移除未使用的资源启用资源缩减 (不打包)动态库打包配置总结

了解APK结构

在讨论如何缩减应用的大小之前,需要了解应用APK的结构。APK文件是由一个Zip压缩文件组成,其中包含构成应用的所有文件。其中包括Java类文件、资源文件及已编译资源的文件。

APK>

    META-INF/ :包含 CERT.SF 和 CERT.RSA 签名文件,以及 MANIFEST.MF 清单文件。assets/ :包含应用的资源;应用可以使用 AssetManager 对象检索这些资源。res/ :包含未编译到 resources.arsc 中的资源(图片、音视频等)。lib/ :包含特定于处理器软件层的已编译代码。此目录包含每种平台类型的子目录,如 armeabi 、armeabi-v7a 、 arm64-v8a 、 x86 、 x86_64 和 mips 。

    APK 还包含以下文件。在这些文件中,只有 AndroidManifest.xml 是必需的。

      resources.arsc :包含已编译的资源。此文件包含 res/values/ 文件夹的所有配置中的 XML 内容。打包工具会提取此 XML 内容,将其编译为二进制文件形式,并压缩内容。此内容包括语言字符串和样式,以及未直接包含在 resources.arsc 文件中的内容(例如布局文件和图片)的路径。classes.dex :包含以 Dalvik/ART 虚拟机可理解的 DEX 文件格式编译的类。AndroidManifest.xml :包含核心 Android 清单文件。此文件列出了应用的名称、版本、访问权限和引用的库文件。该文件使用 Android的二进制XML文件

      Android>

      Android Size Analyzer 工具可轻松地发现和实施多种缩减应用大小的策略。

      首先在 Android Studio 中的插件市场下载安装 Android Size Analyzer 插件。安装插件后,从菜单栏中依次选择 Analyze > Analyze App Size,对当前项目运行应用大小分析。分析了项目后,系统会显示一个工具窗口,其中包含有关如何缩减应用大小的建议。

      移除未使用的资源

      APK瘦身关键就在一个字:删!没用的就删了。

      启用资源缩减>

      如果在应用的 build.gradle 文件中启用了资源缩减: shrinkResources ,则 Gradle 在打包APK时可以自动忽略未使用资源。 资源缩减只有在与代码缩减: minifyEnabled 配合使用时才能发挥作用。在代码缩减器移除所有不使用的代码后,资源缩减器便可确定应用仍要使用的资源 。

      android { 
          // Other settings 
          buildTypes { 
              release { 
                  minifyEnabled true 
                  shrinkResources true 
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
              } 
          } 
      }    

      动态库打包配置

      so文件是由ndk编译出来的动态库,是>

      android{ 
          defaultConfig{ 
              ndk{
                  abiFilters "armeabi-v7a" 
              } 
          }
       }

      对于第三方服务,如百度地图、Bugly等会提供全平台的cpu架构。进行了上面的配置之后,表示只会把armeabi-v7a打包进入Apk。从而减少APK大小。

      总结

      到此这篇关于Android开发优化之Apk瘦身优化指南的文章就介绍到这了,更多相关Android>