android相关性能优化Android专题

APK优化(一)之SVG--------------解决大量的套

2019-02-27  本文已影响24人  晓晓桑

一. SVG(Scalable Vector Graphics)--------------解决大量的套图问题

可缩放矢量图形,SVG不会像位图一样因为缩放而让图片质量下降。
优点:节约空间与内存,常用于简单小图标

SVG 使用 XML 格式定义图形,标准svg根节点为<svg>,在Android中通过Vector实现对svg的支持,根节点为<vector>。获得一张svg需要先进行转换才能在android当中使用。

使用方法:
image.png
image.png
image.png

需要注意: 当选Local file 中 的psd的时候,不支持图片的渐变色、透明度。

批量转换svg

多个svg转换android的vector,下载svg2vector-cli-1.0.1.jar
执行转换:
java -jar svg2vector-cli-1.0.1.jar -d .-o convert -h 20 -w 20

image.png
下载地址:https://github.com/MegatronKing/SVG-Android/tree/master/svg-vector-cli/bat
SVG兼容两种方式

这样就不需要 xh xxh 两套图了,只需要导入svg文件,自动生成xh xxh ... 多种所需的png套图

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.zhi.shi.myklik"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0.0"

  //将svg图片生成制定维度的图片
vectorDrawables.generatedDensities('xhdpi','xxhdpi')
    }
}
android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.zhi.shi.myklik"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0.0"

       //使用support-v7兼容
        vectorDrawables.useSupportLibrary = true
    }
}
布局使用
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/ic_favorite_black_24dp"/>
</LinearLayout>
image.png

APK优化(一)之SVG--------------解决大量的套图问题
APK优化(二)之Tint着色器-------------减少apk体积
APK优化(三)之资源打包配置----resources.arsc
APK优化(四)之.so动态库打包配置
APK优化(五)之移除无用资源,物理删除
APK优化(六)之代码混淆
APK优化(七)之启用shrinkResources资源缩减 ,不需要物理上的删除
APK优化(八)之启用webp转换插件-----图片变小
APK优化(九)之资源res文件混淆和7ZIP压缩

上一篇 下一篇

猜你喜欢

热点阅读