一使用线程操作
在我们应用中总能出现线程的身影, 那么线程也是很占用资源的, 我们应该怎么操作来让app的响应得到优化呢, 我们的更新操作全部是在主线程,如果我们也让线程在主线程运行无疑会导致系统卡顿,ANR一些问题,所以为了加快响应,我们把费时操作(网络请求, 数据库访问,复杂的计算)移动到单独的一个线程完成,可以使用AsyncTask (异步任务)或者IntentService来创建后台操作.它在需要的时候开启使用IntentService注意:1这个类不要给UI传递信息,如果要向用户展示处理结果信息用Activity;2,每次只能处理一个请求.3.每一个请求过程都不能中断;
在UI中移出费时操作,这个方式可以防止ANR出现,继承AsyncTask来创建一个后台工作线程, 并实现doingBackground()方法.或者自己创建一个Thread类或者HandlerThread类,需要注意这样会使app变慢,因为默认的线程优先级和主线程是一样的,除非你明确设定线程的优先级;
二优化网络
网络连接,让应用在网络连接并且无漫游的情况下更新数据;
选择兼容的数据格式, 把含有文本数据和二进制数据的请求全部转成二进制数据的格式请求;
使用高效的转换工具, 多考虑使用流式转换工具, 少用树形转换工具;
减少重复访问服务器的操作,
如果使用framework的GZIP库来压缩文本数据以高效使用CPU资源
优化应用在前端的工作
防止潜在的bug导致电量消耗,明确指定超时时间;
除了系统的GC操作, 考虑手动回收java对象, 确保service生命周期都是短暂的因为每个进程都需要2mb的内存, 所以需要确保service生命周期短暂.