如何进行Android客户端的优化?

本文从各个方面来讲解了如何进行Android客户端的优化。

一:网络方面的优化

 1:不用域名,而是直接使用IP进行直连。

省去了域名解析为ip的时间,首次域名解析大概需要几百毫秒,可以通过ip直连省去这部分的链接时间,同时也可以预防域名劫持带来的风险。

当然,为了保证安全和扩展,这个IP可以是动态的IP的列表,并且在IP不可访问的情况下进行域名访问。

 2:服务器合理部署

 服务器多运营多地部署,一般至少含三大运营商。这个一般公司具体的实际情况来进行考虑。你懂得。

 3:连接复用

HttpClient以及HttpUrlConnection都可以开启连接复用即Keep-alive。对于Android来说,在2.2之前由于HttpUrlConnection由于连接池出现bug,所以

在2.2之前建议用HttpClient,2.2之后使用HttpUrlConnection。原因在于后者更轻量级,有更好的API以及在4.x之后有缓存的加入。

 4:请求合并                                                                         

对应多个请求合并为一个进行请求,这样可以节约多次的网络访问。

 5:减小请求数据的大小

(1)对应POST请求,Body可以进行Gzip压缩,如日志。

(2)对请求头进行压缩(Http1.1不支持)

 6:CDN缓存静态的资源

缓存常见的静态资源,以免多次请求

 7:减小返回数据大小

(1)数据返回由服务器进行Gzip压缩

(2)采用Json格式数据代替XML  ,图片格式采用WebP格式。

(3)对应不同设备不同网络获取不同分辨率的图片大小 

(4)增量更新(只更新未更新的数据,而不是全部更新)

(5)数据缓存

 8:数据预取



二,从代码编写上进行优化

1:如果你要使用String,并且知道你要拼接字符串,那么就请使用StringBuilder而不是String。如果你要截取字符串,那么请用原来对象来代替截取的字符串

2:一组int型数据要比一组Interger数据更加的简洁,同时2个一维数组要比一个二维数组更加的简单。当然我们在代码可观以及优化上,可以适当的妥协。

3:尽可能的使用static final来修饰一个常量,因为当你使用的时候会更加的迅速。

4:在Android的JavaBean中,也就是实体类。尽量的不要使用setter/getter方法,这会影响效率,当然你可以根据需求适当的添加对应的方法。

5:比较下3中循环

static class Foo {
    int mSplat;
}

Foo[] mArray = ...

public void zero() {
    int sum = 0;
    for (int i = 0; i < mArray.length; ++i) {
        sum += mArray[i].mSplat;
    }
}

public void one() {
    int sum = 0;
    Foo[] localArray = mArray;
    int len = localArray.length;

    for (int i = 0; i < len; ++i) {
        sum += localArray[i].mSplat;
    }
}

public void two() {
    int sum = 0;
    for (Foo a : mArray) {
        sum += a.mSplat;
    }
}

通过比较你会发现用for each会更快,其中zero()方法执行最慢,one()其次,最后是two();

6:避免使用float,因为其速度会比int慢一倍。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值