Android网络问题

来源:互联网 发布:女装知茵品牌 编辑:程序博客网 时间:2024/05/22 17:32

一、连接服务器优化

1、直接连接IP  域名需要解析的时间

2、服务器合理部署

二、获取数据优化

1、连接复用

节省简历连接的时间可以设置keep-alive

2、减少交互的数据大小

(1)压缩数据如gzip压缩

如volley

public class GZipRequest extends Request<String> {      private final Listener<String> mListener;        public GZipRequest(int method, String url, Response.Listener<String> listener,                         Response.ErrorListener errorListener) {          super(method, url, errorListener);          mListener = listener;      }        /**      * Creates a new GET request.      *      * @param url           URL to fetch the string at      * @param listener      Listener to receive the String response      * @param errorListener Error listener, or null to ignore errors      */      public GZipRequest(String url, Response.Listener<String> listener, Response.ErrorListener errorListener) {          this(Method.GET, url, listener, errorListener);      }        @Override      protected void deliverResponse(String response) {          mListener.onResponse(response);      }        @Override      protected Response<String> parseNetworkResponse(NetworkResponse paramNetworkResponse) {          String str1 = "";            try {              GZIPInputStream gzipInputStream = new GZIPInputStream(                      new ByteArrayInputStream(paramNetworkResponse.data));              InputStreamReader inputStreamReader = new InputStreamReader(                      gzipInputStream);              BufferedReader bufferedReader = new BufferedReader(                      inputStreamReader);              while (true) {                  String str2 = bufferedReader.readLine();                  if (str2 == null)                      break;                  str1 = str1 + str2;              }              inputStreamReader.close();              bufferedReader.close();              gzipInputStream.close();              return Response.success(str1, HttpHeaderParser.parseCacheHeaders(paramNetworkResponse));          } catch (IOException e) {              return Response.error(new ParseError(e));          }      }  }  
(2)使用数据量小的格式如json替换xml(Protobuffer这种数据格式更节省)    图示使用webP代替其他格式

图片记载中可以使用缩略图

(3)大文件下载使用断点续传,多线程处理

(4)数据缓存 如volley等框架的缓存机制    图片Lrucache等做缓存处理

(5)使用Fiddler Network Monitor等工具检测网络接口的好事情况  改善响应时间

设置重连的策越如volley中reqeust.setRetryPloicy(new ...)



原创粉丝点击