android无效代码,资源文件,原生文件对apk大小的影响
2016-03-23 20:42
399 查看
最近做apk优化,了解了一下不同的资源文件对apk,主要研究的是无效代码,资源文件,原生文件对apk大小的影响:
代码方面(主要是查看无效import语句):
![](http://img.blog.csdn.net/20160323193333423)
可以看到该类中包含了许多无用的import语句,编译、打包查看apk文件大小。
![](http://img.blog.csdn.net/20160323201632536)
可以看到我们的apk的大小是:49899字节;
然后我们删除无效的import语句:
![](http://img.blog.csdn.net/20160323194630632)
编译、打包:
![](http://img.blog.csdn.net/20160323195314712)
可以看到49897字节,可以看到大小还是有变换的,当然这是因为项目无效import语句少的缘故,我在我们项目中使用,apk大小从:
12146518 –> 12143113 字节,减少了3405字节,当然是有影响的,但是比较少而已。
这里推荐一个android studio的设置,可以避免引用无效的import语句:
![](http://img.blog.csdn.net/20160323202041569)
将复选框全部选中,在java源文件中引用包名的时候就可以删除无用的import语句了。
资源文件方面
还是以刚刚的项目为例,大小为49897字节,我们添加一个图片资源但是不引用:
![](http://img.blog.csdn.net/20160323203358269)
编译、打包:
![](http://img.blog.csdn.net/20160323203604444)
可以发现apk文件的大小增大不少,也就是说我们添加的资源文件即使不适用的话,IDE在打包apk的时候也会将其打包进入apk安装包中。
原生文件方面
还是以刚刚的项目为例,原本的大小为49897字节,我们在assets目录下添加一个原生文件:
![](http://img.blog.csdn.net/20160323203857654)
编译、打包:
![](http://img.blog.csdn.net/20160323204004951)
可以发现apk文件的大小也发生了变化,说明原生文件也会打包进入apk中,即使没有使用。
好了,到此我们可以知道了:
无效代码,没有引用的资源文件,原生文件都会被打包进入apk文件中所以我们平时编码过程中要注意细节一些没有使用的代码,资源文件都需要删除。
代码方面(主要是查看无效import语句):
可以看到该类中包含了许多无用的import语句,编译、打包查看apk文件大小。
可以看到我们的apk的大小是:49899字节;
然后我们删除无效的import语句:
编译、打包:
可以看到49897字节,可以看到大小还是有变换的,当然这是因为项目无效import语句少的缘故,我在我们项目中使用,apk大小从:
12146518 –> 12143113 字节,减少了3405字节,当然是有影响的,但是比较少而已。
这里推荐一个android studio的设置,可以避免引用无效的import语句:
将复选框全部选中,在java源文件中引用包名的时候就可以删除无用的import语句了。
资源文件方面
还是以刚刚的项目为例,大小为49897字节,我们添加一个图片资源但是不引用:
编译、打包:
可以发现apk文件的大小增大不少,也就是说我们添加的资源文件即使不适用的话,IDE在打包apk的时候也会将其打包进入apk安装包中。
原生文件方面
还是以刚刚的项目为例,原本的大小为49897字节,我们在assets目录下添加一个原生文件:
编译、打包:
可以发现apk文件的大小也发生了变化,说明原生文件也会打包进入apk中,即使没有使用。
好了,到此我们可以知道了:
无效代码,没有引用的资源文件,原生文件都会被打包进入apk文件中所以我们平时编码过程中要注意细节一些没有使用的代码,资源文件都需要删除。
相关文章推荐
- android 开发技巧(12)--更改 Toast 显示位置的技巧
- Android Studio实现侧滑菜单
- Android 通过ADB Wireless无线调试应用
- 【Android】通用系列 —— AbsListView适配器
- 【Android】4、分析HelloWorld项目如何运行
- Android中用户手势检测详述(OnCliskListener、OnTouchListener和GestureDetecter)
- Android相关的代码片段
- Android 高清加载巨图方案 拒绝压缩图片
- Android中的数据存储方式
- Android FragmentTransactionExtended:使Fragment以多种样式动画切换
- android中选择控件与选择界面自然过度效果的实现--一种新的交互设计
- Android FragmentActivity onActivityResult冲突问题
- android CheckBox控件的定义及事件监听
- Android实现计时与倒计时(限时抢购)的几种方法
- android学习笔记之Fragment两种获得FragmentManager方式比较
- Android WebView与JavaScript 交互
- Android课程---帧布局 FrameLayout
- Android Studio NDK 开发环境搭建
- Android Fragment 保存页面信息以及状态
- Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的屏幕