App优化总结

本文主要介绍了移动应用性能优化的方法,包括启动加速、电量优化及网络优化三个方面。启动加速通过优化Activity主题、MultiDex和DDMS来提升用户体验;电量优化涉及合理管理广播、数据传输、定位服务以及使用AlarmManager和WakeLock;网络优化则关注减少DNS解析、合并网络请求、离线缓存等策略。

一.启动优化

启动加速方向
  1. 利用提前展示出来的Window,快速展示出来一个界面,给用户快速反馈的体验;
  2. 避免在启动时做密集沉重的初始化(Heavy app initialization);
  3. 定位问题:避免I/O操作、反序列化、网络操作、布局嵌套等。

方向一

为启动的Activity设置一个主题,指定android:windowBackground属性

<style name="Launcher">
        <!--利用提前展示出来的Window,快速展示出来一个界面,给用户快速反馈的体验-->
        <item name="android:windowBackground">@drawable/loading_style</item>
    </style>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
    <item android:drawable="@color/white"/>
    <item>
        <bitmap android:src="@drawable/img_loading"
            android:gravity="center"
            />
    </item>
</layer-list>

然后再Activity的onCreate方法之前,切换到我们自己的主题

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        setTheme(R.style.loadingStyle); // 在super.onCreate之前调用
        super.onCreate(savedInstanceState);

方向二

MultiDex优化 可以参考Multidex(一)之源码解析

异步,延迟初始化第三方组件

方向三

DDMS实际查看每个耗时方法,定位问题

无用代码,重复逻辑,


点击Record a method trace之后,启动app,然后就可以看到每个方法执行的时间了

二.电量优化

广播:应用退出或者位于后台是停止广播

数据传输:蓝牙,wifi,移动网络

位于后台时禁用某些传输,避免冗余重复数据传输,数据传输过程中要压缩数据大小,合并网络请求,避免轮询

定位:及时注销位置监听器,位置更新监听频率,

位置服务选择:

1.GPS定位,精度高,10米之内,电量消耗最高

2.网络定位,精度低,几百米之内

不同时机要采用不同的定位方式,通常使用第三方的定位SDK,因为它们再定位时间,定位精度以及耗点量都做了优化

AlarmManager(唤醒API,在特定的时候广播一个intent)

避免频繁唤醒,不使用的时候要尽快取消

WakeLock(保持设备处于唤醒状态的API,某些情况下,需要阻止设备休眠)

及时释放锁,

三.网络优化

  1.   避免DSN解析,直接访问IP地址
  2. 合并网络请求(DNS查找,三次握手,HTTPS还需要TLS握手)
  3. 预先获取数据
  4. 避免轮询
  5. 优化重连机制
  6. 离线缓存
  7. 压缩数据大小
  8. 不同网络环境使用不同的超时策略
  9. CDN使用




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值