APK大小的瘦身的总结:
2017-04-05 09:56
176 查看
首先是看了博客:http://blog.csdn.net/sw950729/article/details/64919051
时,觉得大神我就是马云飞写的很有道理,所有自己就自己写了一遍,长话短说:
在实际开发中,特别是多人接手迭代开发的项目中,随着时间的推移,项目会越来越大。所以让项目大小变小是可以如下操作:
1,在gradle使用minifyEnabled进行Proguard混淆的配置,可大大减小APP大小,如以下代码:
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
2,删除无用资源,主要是xml文件,操作–点击Analyze——>Run Inspection by Name–然后输入unused Resources即可显示出未使用的资源文件,其操作步骤为:
![](http://img.blog.csdn.net/20170404150141157?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lsbGJh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170404150207494?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lsbGJh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170404150238166?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lsbGJh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
3,图片瘦身值熊猫大法–使用tinypng压缩图片,官方网站:https://tinypng.com
PNG是有用的,因为它是唯一广泛支持的格式,可以存储部分透明的图像。格式使用压缩,但是文件仍然可能很大。使用TinyPNG缩小您的应用程序和网站的图像。它将使用更少的带宽和更快的加载。图片就不截取出来了,大家可以直接去官网查看了解。
4,通过重构Refactor来删除无用的资源(通过id找到),具体操作如下
通过Remove Unused Resources来删除无用的资源
![](http://img.blog.csdn.net/20170404151332235?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lsbGJh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20170404151411470?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lsbGJh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
其中Refactor表示直接重构,Preview表示预览的意思,建议大家先使用预览的方式,因为代码中引用方式不同,所以存在代码中使用了某个资源,但是依然被当成没有引用的情况,例如通过使用getIdentifier、Uri等方式。
5,针对不同cpu的so库进行打包,目前仍就在试验当中
armeabi、armeabi-v7a(32的cpu),armeabi-v8a(64位的cpu)和x86,
在其安装设备中,是默认以armeabi为选项,同时需要指出:打包出的x86的so,总会比armeabi平台的体积更小,但是却有性能的损耗。
如果项目只包含了 armeabi,那么在所有Android设备都可以运行;
如果项目只包含了 armeabi-v7a,除armeabi架构的设备外都可以运行;
如果项目只包含了 x86,那么armeabi架构和armeabi-v7a的Android设备是无法运行的;
如果同时包含了 armeabi, armeabi-v7a和x86,所有设备都可以运行,程序在运行的时候去加载不同平台对应的so,这是较为完美的一种解决方案,同时也会导致包变大。
所以其操作为:
5.1为了减小apk体积,只保留armeabi和armeabi-v7a两个文件夹,并保证这两个文件夹中so数量一致。
2,对只提供aremabi版本的第三方so,原样复制一份到armeabi-v7a文件夹
以上!
顶
时,觉得大神我就是马云飞写的很有道理,所有自己就自己写了一遍,长话短说:
在实际开发中,特别是多人接手迭代开发的项目中,随着时间的推移,项目会越来越大。所以让项目大小变小是可以如下操作:
1,在gradle使用minifyEnabled进行Proguard混淆的配置,可大大减小APP大小,如以下代码:
buildTypes { release { //开启混淆(as自带默认配置) minifyEnabled ture //去出无用的资源文件 shrinkResources true //移除无用的Resources的资源文件 zipAlignEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
2,删除无用资源,主要是xml文件,操作–点击Analyze——>Run Inspection by Name–然后输入unused Resources即可显示出未使用的资源文件,其操作步骤为:
3,图片瘦身值熊猫大法–使用tinypng压缩图片,官方网站:https://tinypng.com
PNG是有用的,因为它是唯一广泛支持的格式,可以存储部分透明的图像。格式使用压缩,但是文件仍然可能很大。使用TinyPNG缩小您的应用程序和网站的图像。它将使用更少的带宽和更快的加载。图片就不截取出来了,大家可以直接去官网查看了解。
4,通过重构Refactor来删除无用的资源(通过id找到),具体操作如下
通过Remove Unused Resources来删除无用的资源
其中Refactor表示直接重构,Preview表示预览的意思,建议大家先使用预览的方式,因为代码中引用方式不同,所以存在代码中使用了某个资源,但是依然被当成没有引用的情况,例如通过使用getIdentifier、Uri等方式。
5,针对不同cpu的so库进行打包,目前仍就在试验当中
armeabi、armeabi-v7a(32的cpu),armeabi-v8a(64位的cpu)和x86,
在其安装设备中,是默认以armeabi为选项,同时需要指出:打包出的x86的so,总会比armeabi平台的体积更小,但是却有性能的损耗。
如果项目只包含了 armeabi,那么在所有Android设备都可以运行;
如果项目只包含了 armeabi-v7a,除armeabi架构的设备外都可以运行;
如果项目只包含了 x86,那么armeabi架构和armeabi-v7a的Android设备是无法运行的;
如果同时包含了 armeabi, armeabi-v7a和x86,所有设备都可以运行,程序在运行的时候去加载不同平台对应的so,这是较为完美的一种解决方案,同时也会导致包变大。
所以其操作为:
5.1为了减小apk体积,只保留armeabi和armeabi-v7a两个文件夹,并保证这两个文件夹中so数量一致。
2,对只提供aremabi版本的第三方so,原样复制一份到armeabi-v7a文件夹
以上!
顶
相关文章推荐
- APK大小的瘦身的总结:
- APK大小的瘦身的总结:
- APK 瘦身总结
- Android 减小安装包大小(二) 利用 APK Analyzer 为应用“瘦身”
- [个人总结]APK瘦身实践
- android APK瘦身全面总结——如何从32.6M到13.6M
- Android 之美] APK 瘦身,减少APK的大小
- APK--瘦身之路--减小软件大小
- Android APK 瘦身实践(减小apk的大小)
- APK瘦身全面总结——如何从32.6M到13.6M
- Android 安装包APK瘦身、多渠道打包总结
- Android APK瘦身经验总结
- Android APK瘦身经验总结
- APK瘦身优化,减小apk的大小
- C和C++获取文件大小的方法总结
- 有关socket通信包大小的问题总结(UDP传输模式)
- apk反编译问题总结
- 【分享】对吞吐量、点击率、带宽大小等基础单位知识的总结
- 修改 堆栈大小 普适性方案总结 (跨平台 windows linux 栈设置大小)
- Flex学习总结:Flex更改Alert提示框的字体大小和样式等