Houve um tempo em que os usuários tinham paciência e esperavam que o resultado saísse do servidor. Mas agora, vivemos uma nova era, onde precisamos de muitas informações em menos tempo. Devido a esta necessidade, foi introduzido o algoritmo de “compressão GZIP” que elimina os caracteres que já eram usados antes.
A compactação é uma das maneiras eficazes de economizar largura de banda e acelerar seu site. A compactação GZIP é recomendada para acelerar o JavaScript, devido a problemas nos navegadores mais antigos. No século 21, a maior parte do tráfego vem dos navegadores modernos e as pessoas agora estão familiarizadas com a tecnologia, então é necessário usar a compactação GZIP para acelerar o aplicativo móvel. A compressão GZIP também é usada pelo Google e Yahoo.
A compactação GZIP reduz o tempo de resposta do servidor, o que resulta na manipulação de mais solicitações por segundo do que no bloqueio da solicitação em uma fila. Portanto, se você é o único que tem um aplicativo móvel lento, pode verificar seu teste de benchmark e verificar se a compactação GZIP está ativada ou não. Existem outros parâmetros, como estratégia de supercache, mas, neste tópico, estamos nos concentrando apenas no GZIP.
Como usar a compressão GZIP?
Tecnologia usada: Android
Você precisa passar as informações ao servidor dizendo que vou processar o GZIP, então me envie uma resposta do GZIP. E abaixo está o código para fazer isso:
Para fazer isso, precisamos fornecer “Accept-Encoding”, “gzip” no cabeçalho da solicitação.
Usando HttpUrlConnection:
URL url = novo URL (” http://www.android.com/” );
Conexão HttpURLConnection = (HttpURLConnection) novo URL (url) .openConnection ();
connection.setRequestProperty (“Accept-Encoding”, “gzip”);
connection.connect ();
InputStream in;
if (connection.getContentEncoding ()! = null && connection.getContentEncoding (). equalsIgnoreCase (“gzip”))
{
in = new GZIPInputStream (connection.getInputStream ());
} else {
in = new BufferedInputStream (urlConnection.getInputStream ());
}
// Lê dados do fluxo de entrada
readStream (in);
Usando a solicitação Apache HTTP:
URL url = novo URL (” http://www.android.com/” );
Cliente HttpClient = novo DefaultHttpClient ();
HttpGet httpGet = novo HttpGet (url);
httpGet.addHeader (“Accept-Encoding”, “gzip”);
HttpResponse httpResponse = httpClient.execute (httpGet);
HttpEntity httpEntity = httpResponse.getEntity ();
é = httpEntity.getContent ();
Header contentEncoding = httpResponse.getFirstHeader (“Content-Encoding”);
if (contentEncoding! = null && contentEncoding.getValue (). equalsIgnoreCase (“gzip”)) {
is = new GZIPInputStream (is);
}
// Lê dados do fluxo de entrada
readStream (is);
Usando o volley:
você precisa substituir esses dois métodos na solicitação do Volley:
parseNetworkResponse
@Override
protected Response <T> parseNetworkResponse (
NetworkResponse response) {
try {
String json = null;
String contentType = response.headers.get (“Content-Encoding”);
if (contentType.equalsIgnoreCase("gzip")) {
GZIPInputStream zis = new GZIPInputStream(new BufferedInputStream(new
ByteArrayInputStream (response.data)));
// Ler dados do fluxo de entrada
json = readStream (zis);
} else {
json = new String (response.data,
HttpHeaderParser.parseCharset (response.headers));
}
return Response.success(
gson.fromJson(json, clazz),
HttpHeaderParser.parseCacheHeaders(response));
}catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JsonSyntaxException e) {
return Response.error(new ParseError(e));
}
}
getParams
@Override
protected Map <String, String> getParams () {
Map <String, String> params = new HashMap <String, String> ();
params.put (“Accept-Encoding”, “gzip”);
return params;
}
};
Usamos a compactação GZIP em nossos dois aplicativos: SmartCity-311 e NDMC-311. Nosso SmartCity-311 é um pacote móvel completo, com cinco módulos diferentes que permitem que o governo local gerencie seu trabalho usando um smartphone. É essencial desenvolver um aplicativo ágil, para que cada funcionário resolva o problema com mais rapidez.
Outro é o NDMC-311, que é uma solução baseada em nuvem altamente escalonável disponível nas plataformas Android e iOS. Estamos disponibilizando uma solução que gerencia, fiscaliza e regulariza a cidade usando smartphones e é óbvio que este aplicativo possui grande base de usuários. Por ser um aplicativo baseado em cidadão e oficial, permite que todos realizem várias tarefas com mais rapidez, já que usamos a compactação GZIP.
Se você deseja acelerar seu aplicativo móvel para os usuários acessarem sem qualquer interrupção, siga o processo acima. Se você estiver encontrando dificuldades, entre em contato com nosso desenvolvedor de aplicativos Android e iOS para obter ajuda.