Android 性能优化(六) RelativeLayout和LinearLayout性能比较
众所周知,APP包体的大小,会影响推广的难度,用户不太喜欢下载太大的APP,同类型同等功能的APP中往往是包体小的更受用户的青睐,所以降低包体是一项非常必要的事情!
1. Analyze - -> Run Inspection by Name --> 输入 unused resource 之后敲下回车Android Lint就会开始分析项目中哪里存在着无用资源
2. 根据Android Lint给出的分析结果,确认资源的使用情况,确认为无用资源后(一般来说全局搜索下资源名,除了在R.Java中外其他地方都没引用就是无用资源)删除即可
buildTypes { release { //是否进行混淆 minifyEnabled true // 移除无用的resource文件g shrinkResources true //混淆规则文件 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } debug { // buildConfigField 自定义配置默认值 signingConfig signingConfigs.debug debuggable true } }
buildTypes { release { //是否进行混淆 minifyEnabled true // 移除无用的resource文件g shrinkResources true //混淆规则文件 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release }
1. 资源(png, xml, jpg等)名称混淆,资源路径名称混淆以及名称长度压缩;
2. 原来以STORED形式存储到zip中的png文件被改成了DEFLATED(普通压缩存储)方式;
3. 意外发现resources.arsc, META-INF/*.SF 以及 META-INF/*.MF变小了,而且是解压之后的文件大小也变小了。
用 SVG 的优势在于:
1.SVG 可被非常多的工具读取和修改(比如记事本),由于使用xml格式定义,所以可以直接被当作文本文件打开,看里面的数据;
2.SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强,SVG 图就相当于保存了关键的数据点,比如要显示一个圆,需要知道圆心和半径,那么SVG 就只保存圆心坐标和半径数据,而平常我们用的位图都是以像素点的形式根据图片大小保存对应个数的像素点,因而SVG尺寸更小;
3.SVG 是可伸缩的,平常使用的位图拉伸会发虚,压缩会变形,而SVG格式图片保存数据进行运算展示,不管多大多少,可以不失真显示;
4.SVG 图像可在任何的分辨率下被高质量地打印;
5.SVG 可在图像质量不下降的情况下被放大;
6.SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图);
7.SVG 可以与 Java 技术一起运行;
8.SVG 是开放的标准;
9.SVG 文件是纯粹的 XML;