性能优化之瘦身.pptx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Android高级开发正式课码牛学院-用代码码出精彩的人生

性能优化之APK全面瘦身优化码牛学院-用代码码出牛逼人生今晚课题

目录COMPANY01APK瘦身维度分析03APK优化实战02APK结构分析

APK结构分析APK目录:assets/:包含了应用的资源,这些资源能够通过AssetManager对象获得。lib/:包含了针对处理器层面的被编译的代码。这个目录针对每个平台类型都有一个子目录,比如armeabi,armeabi-v7a,arm64-v8a,x86,x86_64和mips。res/:包含了没被编译到resources.arsc的资源。META-INF/:包含CERT.SF和CERT.RSA签名文件,也包含了MANIFEST.MF文件。(译注:校验这个APK是否被人改动过)包含以下文件:classes.dex:包含了能被Dalvik/Art虚拟机理解的dex文件格式的类。resources.arsc:包含了被编译的资源。该文件包含了res/values目录的所有配置的xml内容。打包工具将xml内容编译成二进制形式并压缩。这些内容包含了语言字符串和styles,还包含了那些内容虽然不直接存储在resources.arsc文件中,但是给定了该内容的路径,比如布局文件和图片。所以又叫资源映射表AndroidManifest.xml:包含了主要的Android配置文件。这个文件列出了应用名称、版本、访问权限、引用的库文件。该文件使用二进制xml格式存储。(译注:该文件还能看到应用的minSdkVersion,targetSdkVersion等信息)

APK瘦身维度分析图片优化无用资源剔除国际化资源配置优化动态库打包优化代码压缩/代码混淆资源压缩/资源混淆瘦身维度

图片优化之SVG导入SVG(ScalableVectorGraphics),可缩放矢量图。SVG不会像位图一样因为缩放而让图片质量下降。优点在于可以减小APK的尺寸。常用于简单小图标。svg是由xml定义的,标准svg根节点为svg。Android中只支持vector,我们可以通过vector将svg的根节点svg转换为vector。在AndroidStudio中打开工程,在res目录中点击右键

图片优化之SVG批量转换如果有多个svg需要转换为android的vector,则可以通过第三方工具svg2vector进行批量转换。执行转换命令:java-jarsvg2vector-cli-1.0.0.jar-d.-oa-h20-w20-d指定svg文件所在目录-o输出androidvector图像目录-h设置转换后svg的高-w设置转换后svg的宽

图片优化之SVG注意事项如果SVG文件包含不受支持的功能,将在VectorAssetStudio的底部显示一个错误提示,如图:不支持的功能举例:滤镜效果:不支持投影,模糊和颜色矩阵等效果。文本:建议使用其他工具将文本转换为形状。

图片优化之SVG兼容问题Android5.0(API21)之前的版本不支持矢量图,使用VectorAssetStudio有两种方式适配。方式一:生成png格式的图片VectorAssetStudio可在构建时针对每种屏幕密度将矢量图转换为不同大小的位图,在build.gradle中配置如下:SVG适用于Gradle插件1.5及以上版本;android{defaultConfig{//5.0(API21)版本以下,将svg图片生成指定维度的png图片generatedDensities=[xhdpi,xxhdpi]}}

图片优化之SVG兼容支持库方式二:支持库在build.gradle中配置如下,适用于Gradle插件2.0及以上版本:android{//GradlePlugin2.0+defaultConfig{//利用支持库中的VectorDrawableCompat类,可实现2.1版本及更高版本中支持VectorDrawablevectorDrawables.useSupportLibrary=true}}dependencies{//支持库版本需要是23.2或更高版本compilepat-v7:23.2.0}使用矢量图必须使用app:srcCompat属性,而不是android:src,如下:

图片优化之SVG图片颜色修改我们是可以单独修改矢量图某一部分的颜色的,如图:

文档评论(0)

158****9376 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档