美文网首页
我是如何通过 nimbledroid 做android app性

我是如何通过 nimbledroid 做android app性

作者: ahking17 | 来源:发表于2018-03-21 19:38 被阅读505次
    简介

    目前我负责开发的360 hola weather项目, 收到了360 OS的一个性能要求反馈, 一是要求apk size < 10 MB, 目前是12.2MB, 二是要求内存占用 < 42MB.

    NimbleDroid 是美国哥伦比亚大学的博士创业团队研发出来的分析Android app性能指标的系统,分析的方式有静态和动态两种方式,
    其中静态分析可以分析出APK安装包中大文件排行榜,各种知名SDK的大小以及占代码整体的比例。
    动态分析可以给出冷启动时间, 列出block UI的具体方法, 内存占用, 以及Hot Methods, 从这些分析报告中, 可以定位出具体的优化点.

    使用方法其实很简单, 只需要上传你apk, 网站后台会自动分析, 并给出直观化的分析报告.


    屏幕快照 2018-03-21 上午11.03.06.png
    apk文件大小优化

    首先, 查看apk中的文件大小排行榜.
    从中, 可以非常明显的看到一些图片png文件的使用是不当的.

    屏幕快照 2018-03-21 上午11.03.47.png

    非常简单的通过tinypng网站进行处理后, 就可以得到非常好的优化效果.


    屏幕快照 2018-03-21 上午11.24.44.png

    初步优化后的apk文件大小已经满足了360OS的要求.


    屏幕快照 2018-03-21 下午6.45.02.png

    这是从资源文件的角度入手, 从代码角度优化, 可以查看报告中的方法数报告. 从中可以快速定位出项目使用各个SDK的情况, 从中寻找优化空间.

    屏幕快照 2018-03-21 上午11.09.15.png
    冷启动优化
    屏幕快照 2018-03-21 上午11.11.00.png

    这里给出了 8 个导致冷启动慢的原因点. 优秀app的冷启动时间应该控制在2秒内, 目前是2.8秒, 超出了800毫秒.

    Real Time 2.8 seconds0.80 seconds longer than max recommended time.

    查看详情报告, 可以看到block UI的具体方法名.

    屏幕快照 2018-03-21 上午11.11.16.png

    之前在浏览器部门, 阅读chrome源码, google用到了

            Looper.myQueue().addIdleHandler(new MessageQueue.IdleHandler() {
                @Override
                public boolean queueIdle() {
                    return false;
                }
            });
    

    来优化页面的启动速度. 这里正好可以用到. 把一些方法抽取出来. 在页面绘制后, 等到UI线程空闲的时候, 再去执行这些耗时方法.


    屏幕快照 2018-03-21 下午6.59.35.png
    优化后的结果
    屏幕快照 2018-03-21 下午7.35.24.png 屏幕快照 2018-03-21 下午7.36.25.png

    冷启动优化了300ms出来.

    ---DONE.---

    相关文章

      网友评论

          本文标题:我是如何通过 nimbledroid 做android app性

          本文链接:https://www.haomeiwen.com/subject/ebcnqftx.html