apk体积过大, scrollview去掉滑动条,setAnti

2017-09-18  本文已影响0人  dream0915

之前开发遇到过许多的bug,还有坑.现在记录一下.还有一些不清楚的地方,也记录一下.

(一)  apk体积过大.当开发已经完成,apk打包完成,你突然发现,明明功能也不多,包怎么会这么大....这时候应该怎么处理呢?

1. 仔细查看项目中的第三方库.

a.   因为我们的app开发周期短,急于呈现一个开发结果,当时不熟悉视频开发的我直接使用了第三方库-vitamio.

因为这个库的体积比较大,所以打包出来的apk相应的体积就变大了.想想vitamio在项目中的使用,不过就是封装了个视频播放进度条(包含起始时间,结束时间,以及正在播放的进度Progressbar),这样的视频播放进度条完全可以自己使用surfaceView和mediaplayer来封装.所以就自己封装了一个.

去掉这个第三方库后release包的体积比之前减少了10M.

b. 直接把第三方库中的代码抽出来.

本来我们使用gradle进行代码管理,加入第三方库都是在

图-1

将第三库需要的带抽出来,然后去掉依赖.

2.  删除多余的代码.根据项目进度来看,需求是不断改变的.很多代码的可用性已经变成了0.所以把多余的代码删掉.也能节省一些空间.

3. 清理asset文件夹.也许有一些文件放到asset中并没有使用过,清理掉.

(二)当一个布局文件太长,超出屏幕之外的时候(纵向),我们就要使用scrollview来包装一下.使用户能够通过手指滑动看到全部的内容.           

但是右侧的滑动条实在是太丑了,使用android:scrollbars="none" 来去掉滑动条.

还有要注意的就是scrollview只能有一个子View,否则就会报错.

(三)当看PagerSlidingTabStrip(一个类似头条新闻顶部随着viewpager的滑动文字下面的线条页跟着滑动的控件)的时候,发现在构造器中出现了

setFillViewport(true);

这句话的官解是:

就是如果你的内容没有填满屏幕,那么该空间是不会填满屏幕的.但是设置了这个之后,无论你的内容有没有填满屏幕,都会默然填满.

setWillNotDraw(false);

如果一个自定控件继承的是ViewGroup,那么重写onDraw方法可能不会执行onDraw里面的内容.设置这条之后便会执行onDraw的内容了.

顺便补充一下:

setAntiAlias(true).  这个的作用是抗锯齿.即用来防止边缘的锯齿.

@SuppressLint标注忽略指定的警告

上一篇下一篇

猜你喜欢

热点阅读