当前位置: 首页 > news >正文

网站推广找安徽注册公司网站

网站推广找,安徽注册公司网站,网络营销的八种方法,西安市未央区最新消息随着业务迭代#xff0c;apk体积逐渐变大。项目中积累的无用资源#xff0c;未压缩的图片资源等#xff0c;都为apk带来了不必要的体积 增加。而APK 的大小会影响应用加载速度、使用的内存量以及消耗的电量。在讨论如何缩减应用的大小之前#xff0c;有必要了解下应用 APK …随着业务迭代apk体积逐渐变大。项目中积累的无用资源未压缩的图片资源等都为apk带来了不必要的体积 增加。而APK 的大小会影响应用加载速度、使用的内存量以及消耗的电量。在讨论如何缩减应用的大小之前有必要了解下应用 APK 的结构。 一、APK 结构 APK 文件由一个 Zip 压缩文件组成其中包含构成应用的所有文件。这些文件包括 Java 类文件、资源文件和包含已编译资源的文件。 1、APK 包含以下目录 1. META-INF/ 包含 CERT.SF 和 CERT.RSA 签名文件以及 MANIFEST.MF 清单文件。 2. assets/ 包含应用的资源应用可以使用 AssetManager 对象检索这些资源。 3. res/ 包含未编译到 resources.arsc 中的资源图片、音视频等。 4. lib/ 包含特定于处理器软件层的已编译代码。此目录包含每种平台类型的子目录如 armeabi 、armeabi-v7a 、 arm64-v8a 、 x86 、 x86_64 和 mips 。  2、APK 还包含以下文件  1. resources.arsc 包含已编译的资源。此文件包含 res/values/ 文件夹的所有配置中的 XML 内容。打包工具会提取此 XML 内容将其编译为二进制文件形式并压缩内容。此内容包括语言字符串和样式以及未直接包含在 resources.arsc 文件中的内容例如布局文件和图片的路径。 2. classes.dex 包含以 Dalvik/ART 虚拟机可理解的 DEX 文件格式编译的类。 3. AndroidManifest.xml 包含核心 Android 清单文件。此文件列出了应用的名称、版本、访问权限和引用的库文件。该文件使用 Android 的二进制 XML 格式。  二、Android Size Analyzer  Android Size Analyzer 工具可轻松地发现和实施多种缩减应用大小的策略。 首先在 Android Studio 中的插件市场下载安装 Android Size Analyzer 插件。安装插件后从菜单栏中依次选择 Analyze Analyze App Size对当前项目运行应用大小分析。分析了项目后系统会显示一个工具窗口其中包含有关如何缩减应用大小的建议。 三、移除未使用资源  APK瘦身关键就在删除未使用的资源。 1、启用资源缩减 不打包  如果在应用的 build.gradle 文件中启用了资源缩减 shrinkResources 则 Gradle 在打包APK时可以自动忽略未使用资源。 资源缩减只有在与代码缩减 minifyEnabled 配合使用时才能发挥作用。在代码缩减器移除所有不使用的代码后资源缩减器便可确定应用仍要使用的资源 。  android {// Other settingsbuildTypes {release {minifyEnabled trueshrinkResources trueproguardFiles getDefaultProguardFile(proguard-android.txt), proguard-rules.pro}} } 2、使用Lint分析器物理删除 lint 工具是 Android Studio 中附带的静态代码分析器可检测到 res/ 文件夹中未被代码引用的资源。从菜单栏中依次选择 Analyze Run Inspection By Name。 分析完成后会弹出 lint 工具不会扫描 assets/ 文件夹、通过反射引用的资源或已链接至应用的库文件。此外它也不会移除资源只会提醒您它们的存在。 与资源缩减不同这里点击删除那就是把文件删了。 3、自定义要保留的资源 如果有想要特别声明需要保留或舍弃的特定资源在项目中创建一个包含 resources 标记的 XML 文件并在 tools:keep 属性中指定每个要保留的资源在 tools:discard 属性中指定每个要舍弃的资源。这两个属性都接受以逗号分隔的资源名称列表。还可以将星号字符用作通配符。 ?xml version1.0 encodingutf-8? resources xmlns:toolshttp://schemas.android.com/toolstools:keeplayout/l_used*_c,layout/l_used_a,layout/l_used_b*tools:discardlayout/unused2 / 将该文件保存在项目资源中例如保存在 res/raw/keep.xml 中。构建系统不会将此文件打包到 APK 中。 4、移除未使用的备用资源  Gradle 资源缩减器只会移除未由应用代码引用的资源这意味着它不会移除用于不同设备配置的备用资源。可以使用 Android Gradle 插件的 resConfigs 属性移除应用不需要的备用资源文件。 例如如果使用的是包含语言资源的库如 AppCompat 那么 APK 中将包含这些库中所有已翻译语言的字符串。如果只想保留应用正式支持的语言则可以使用 resConfig 属性指定这些语言。系统会移除未指定语言的所有资源。 配置resConfigs 只打包默认与简体中文资源。  android {defaultConfig {...resConfigs zh-rCN} } 5、动态库打包配置 so文件是由ndk编译出来的动态库是 c/c 写的所以不是跨平台的。ABI 是应用程序二进制接口简称Application Binary Interface定义了二进制文件尤其是.so文件如何运行在相应的系统平台上从使用的指令集内存对齐到可用的系统函数库。在Android 系统中每一个CPU架构对应一个ABI目前支持的有armeabi-v7aarm64- v8ax86x86_64。目前市面上手机设备基本上都是arm架构 armeabi-v7a 几乎能兼容所有设备。因此可以配置 android{defaultConfig{ndk{abiFilters armeabi-v7a}} } 对于第三方服务如百度地图、Bugly等会提供全平台的cpu架构。进行了上面的配置之后表示只会把armeabiv7a打包进入Apk。从而减少APK大小。 四、图片资源 1、使用矢量图 Apk中图片应该算是占用空间最多的资源。我们可以使用webp减少png、jpg图片占用空间的大小。对于小图标也可以使用矢量图。 矢量图可以创建与分辨率无关的图标和其他可伸缩媒体。使用这些图形可以极大地减少 APK 占用的空间。 矢量图片在 Android 中以 VectorDrawable 对象的形式表示。借助 VectorDrawable 对象100 字节的文件可以生成与屏幕大小相同的清晰图片。 不过系统渲染每个 VectorDrawable 对象需要花费大量时间而较大的图片则需要更长的时间才能显示在屏幕上。因此建议仅在显示小图片时使用这些矢量图。 2、重复使用资源 现在我们有一个矢量图 vector xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:width24dpandroid:height24dpandroid:viewportWidth24android:viewportHeight24android:tint?attr/colorControlNormalpathandroid:fillColorandroid:color/whiteandroid:pathDataM10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z/ /vector 如果我们需要让矢量图显示红色怎么办这种情况我们不需要再去创建一个新的矢量图。可以直接给 ImageView设置   android:tint 属性 来完成颜色的修改。 ImageViewandroid:layout_width50dpandroid:layout_height50dpandroid:tintcolor/colorAccentandroid:srcdrawable/tabbar_home_vector / 3、使用选择器 如果需要让矢量图实现触摸变色。只需要创建selector设置给tint即可。 !-- tabbar_home_tint_selector -- ?xml version1.0 encodingutf-8? selector xmlns:androidhttp://schemas.android.com/apk/res/androiditem android:colorcolor/colorPrimary android:state_pressedtrue /item android:colorcolor/colorAccent / /selector ImageView ImageViewandroid:clickabletrueandroid:layout_width50dpandroid:layout_height50dpandroid:srcdrawable/tabbar_home_vectorandroid:tintcolor/tabbar_home_tint_selector / 4、其他 阿里矢量图库 https://www.iconfont.cn/help/detail?spma313x.7781069.1998910419.d8d11a391helptypecode 开启资源混淆 https://github.com/shwenzhang/AndResGuard 对于发布Google paly的应用选择使用AAB  https://developer.android.google.cn/guide/app-bundle
http://www.pierceye.com/news/215076/

相关文章:

  • 餐饮官网建站模板网站开发实验报告可行性分析
  • 美食网站建设规划书外链工具软件
  • 网站设计模板代码七牛wordpress后台慢
  • 佛山网站建设怎么办huang色网站
  • 涞水县建设局网站wordpress wp_enqueue_script
  • 网站怎么添加音乐wordpress livechat
  • 网站开发的业务需求分析学校网站建设运行简介
  • 网站建设找博网iis7.0网站错误代码解决
  • 嘉鱼网站建设公司php网站开发技术期末题库
  • 企业网站搭建方案wordpress代码编辑器件
  • 网站的大小黄埔移动网站建设
  • 建设网站的语言中囯军事网
  • 网站开发职业访谈上海 建设工程质量监督站网站
  • 网站开发程序用什么好用新浪微博做网站
  • 什么免费推广网站好旅游订房网站开发需求文档
  • 网站运营是做啥的wordpress带会员中心主题
  • 网站设计怎么弄微信表情开放平台官网
  • 做网站纸张大小滨州网站建设模板建设
  • wordpress建站位置被跨境电商骗了怎么办
  • 巫山网站建设哇塞fm网站维护
  • 南宁百度网站推广计算机网站建设与推广
  • 汉中网站建设开发做微网站是订阅号还是服务号号
  • 中国商城网站建设h5响应式网站模板下载
  • 建设个商城网站需要多少钱网上商城系统平台官网
  • 软件开发与网站开发的区别最新源码
  • 电子商务网站建设策划中国网站建设公司排行
  • 网站的推广方式组合经验丰富的网站制作公司
  • 北京企业网站建设php制作公司网站首页
  • 保险网站建设网站 为何要 备案
  • 南宁网站设计可以找我wordpress 主题