Android高性能编码
文章平均质量分 85
疾风细语
Soon or later
展开
-
RESTful API的理解
最近在学习Retrofit2.0这个开源框架,对于RESTful API架构不是很理解,下面这篇文章很好的介绍了这种架构。转自http://www.ruanyifeng.com/blog/2011/09/restful越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high转载 2017-02-18 18:41:30 · 1667 阅读 · 0 评论 -
Android 利用annotationProcessor生成Java代码
现在很多开源框架使用注解来解耦,但是利用反射来使用注解的方式很耗费性能,随着annotationProcessor和android-apt的出现通过注解根据反射机制动态编译生成代码的方式来解决在运行时不再使用发射机制,下面我们试着利用annotationProcessor和android-apt来替换反射的方式。 public static Map createPresenters(Ba原创 2017-05-03 11:29:43 · 1166 阅读 · 0 评论 -
Android 高性能编码一:多线程并发或分布式提高TPS
TPS(Transaction Per Second)TPS为每秒处理的事务数,是系统吞吐量的指标,在搜索系统中也用QPS(Query Per Second)衡量。TPS一般与响应时间反相关。通常所说的性能问题就是指响应时间过长、系统吞吐量过低。多线程的优点:1.多线程并发,防止线程阻塞带来的性能损失Java线程存在创建、可运行、阻塞、运行中、死亡等生命周期,每个线程在原创 2017-04-23 01:21:10 · 2550 阅读 · 2 评论 -
Android 高性能编码二:利用缓存提高TPS
缓存主要包括对象缓存、IO 缓存、网络缓存、图片缓存等 。1.对象缓存gc执行的时候,系统是阻塞的,gc数据较大的时候,系统会很明显的卡顿。a.listview对象缓存listview快速滚动时,重复利用item,不必重新创建新的对象,也避免了对象的频繁销毁,减少了gc的数据的大小和时间。b.调用频繁的对象设为全局变量,或保存到容器中。c.在方法体中,如果频繁使用某一全原创 2017-04-24 00:28:44 · 971 阅读 · 0 评论 -
Android高性能编码四:代码优化
1.选择ArrayList最佳的遍历方式 //方法1 Iterator it1 = list.iterator(); while(it1.hasNext()){ System.out.println(it1.next()); } //方法2 for(Iterator it2原创 2017-04-25 11:41:10 · 722 阅读 · 0 评论 -
Android高性能编码实战:App启动优化
App冷启动是很慢的,期间有大量的对象被创建,进程创建,分配内存,绘制界面,建立消息队列,各种第三方控件初始化等等,用户安装完APP,第一次启动,往往第一印象特别重要,启动迅速,显示流畅,就有很好的用户体验。04-25 14:15:10.803 7202-7202/com.js.test E/Test: app start at 149310091080204-25 14:15:12.200原创 2017-04-25 15:36:56 · 921 阅读 · 0 评论 -
Android高性能编码实战:网络框架优化
之前的文章从理论上介绍了Android高性能编码的几个优化的方向,下面我们从实战的角度讲述如何优化Android高性能编码实战:App启动优化Android高性能编码实战:网络框架优化之前的App启动优化最后提到了网络框架的优化问题,本篇将针对这个问题对APP进一步优化04-26 18:14:59.504 11295-11295/com.js.test E/xuti原创 2017-04-26 18:54:43 · 1349 阅读 · 1 评论 -
Android高性能编码实战:修复内存泄漏
之前的文章从理论上介绍了Android高性能编码的几个优化的方向,下面我们从实战的角度讲述如何优化Android高性能编码实战:App启动优化Android高性能编码实战:网络框架优化Android高性能编码实战:修复内存泄漏 内存泄漏也称作“存储渗漏”,用动态储存分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(原创 2017-05-18 10:15:29 · 569 阅读 · 0 评论 -
Android高性能编码三:数据结构和算法优化
TPS(Transaction Per Second)TPS为每秒处理的事务数,是系统吞吐量的指标,在搜索系统中也用QPS(Query Per Second)衡量。TPS一般与响应时间反相关。通常所说的性能问题就是指响应时间过长、系统吞吐量过低。Android高性能编码一:多线程并发或分布式提高TPSAndroid高性能编码二:利用缓存提高TPSAndroid高性能编码原创 2017-04-24 16:09:44 · 2804 阅读 · 0 评论 -
Android handler的内存泄漏问题
在Activity或者Fragment中创建异步处理对象时,比如Handler、AsyncTask,要特别注意内存泄漏问题,这些异步对象在子线程处理请求,生命周期和外面Activity和Fragment存在不同步的问题,当Activity的生命周期结束时,若不显式在onDestroy中将这些异步控件结束,将会造成activity无法被回收,也就造成了内存泄漏。下面我们从smali文件和内存堆栈原创 2017-05-05 13:43:34 · 504 阅读 · 0 评论 -
Android 使用RxJava+Retrofit 2.0合并网络请求
在开发验证码的功能时,要求验证code的同时判断这个是不是服务码(万能码),这个就需要同时去请求两个接口,只要有一个功能就算成功。 @Override public void checkConfirmCode(String deviceId, String code, OnAPIListener listener) { Map map = new Has原创 2017-03-28 16:07:54 · 6310 阅读 · 0 评论 -
Android Retrofit 2.0 注解的理解
Retrofit 2.0包含众多的注解,包括方法注解,包含@GET、@POST、@PUT、@DELETE、@PATH、@HEAD、@OPTIONS、@HTTP。标记注解,包含@FormUrlEncoded、@Multipart、@Streaming。参数注解,包含@Query,@QueryMap、@Body、@Field,@FieldMap、@Part,@PartMap。其他注解,原创 2017-03-30 23:22:06 · 4758 阅读 · 2 评论 -
Android 高性能编码-IOC模式
IoC模式1.依赖依赖就是有联系,有地方使用到它就是有依赖它,一个系统不可能完全避免依赖。如果你的一个类或者模块在项目中没有用到它,恭喜你,可以从项目中剔除它或者排除它了,因为没有一个地方会依赖它。下面看一个简单的示例: /// /// 用户播放媒体文件 /// public class OperationMain {转载 2017-03-21 18:08:03 · 280 阅读 · 0 评论 -
Android 开源网络框架(Android-Async-Http、Volley、OkHttp3、Retrofit2.0)对比
思维导图一、为什么要使用网络开源框架1. Android系统自带网络请求Android系统自带的网络请求模块有两个,一个是HttpClient,另一个是HttpUrlConnection。1.1. HttpUrlConnectionHttpURLConnection是一种多用途、轻量极的HTTP客户端,使用它来进行HTTP操作可以适用于大原创 2017-02-18 17:32:30 · 2551 阅读 · 2 评论