2016年9月17日
摘要: Bitmap是Android应用程序引起OOM的罪魁祸首之一,当我们从网络上下载图片的时候无法知道网络图片的准确大小,所以为了节约内存,一般会在服务器上缓存 一个缩略图,提升下载速度。除此之外,我们还可以在本地显示图片前将图片进行压缩,使其完全符合imageview的大小,这样可以最大限度避免内存浪 阅读全文
posted @ 2016-09-17 19:27 Jackwen 阅读(8510) 评论(0) 推荐(0) 编辑
  2016年7月16日
摘要: 1. Volley特点 (1) 特别适合数据量小,通信频繁的网络操作。 (2) 扩展性强。Volley 中大多是基于接口的设计,可根据需要自行定制。 (3) 一定程度符合 Http 规范,包括返回 ResponseCode(2xx、3xx、4xx、5xx)的处理,请求头的处理, 缓存机制的支持等。并 阅读全文
posted @ 2016-07-16 10:23 Jackwen 阅读(478) 评论(0) 推荐(0) 编辑
  2016年3月20日
摘要: 1. 简介 先来看一个表: Touch事件相关方法 功能 Activity ViewGroup View public boolean dispatchTouchEvent(MotionEvent ev) 事件分发 Yes Yes Yes public boolean onInterceptTouc 阅读全文
posted @ 2016-03-20 16:29 Jackwen 阅读(3946) 评论(0) 推荐(0) 编辑
  2016年2月26日
摘要: 1.AMS简介 在Android中,一个应用运行时为一个进程,系统对应用的管理是通过一个专门的系统级service——ActivityManagerService,即AMS。 系统通过AMS来管理应用进程的生命周期,也包括应用的activity和service的生命周期。 AMS是一个独立的进程,它 阅读全文
posted @ 2016-02-26 16:55 Jackwen 阅读(970) 评论(0) 推荐(0) 编辑
  2016年2月23日
摘要: ActivityManagerService管理着Activity,Task和应用程序进程。三者在AMS中的表现形式分别为:ActivityRecord,TaskRecord,ProcessRecord。这三者的关系如下图所示: 从图中可以看出,AMS是按层次关系进行管理所有的Activity的。( 阅读全文
posted @ 2016-02-23 09:57 Jackwen 阅读(3012) 评论(0) 推荐(0) 编辑
  2016年1月24日
摘要: 上一篇文章最后结束在ViewRootImpl.setView()函数,这个函数之后发生了什么事情,我们接着分析。 1. ViewRootImpl简介 ViewRootImpl作为视图层次中的顶层,实现了View和WindowManager之间需要的协议,与SystemServer进程的WindowM 阅读全文
posted @ 2016-01-24 18:20 Jackwen 阅读(2624) 评论(2) 推荐(1) 编辑
  2016年1月16日
摘要: Activity启动过程中做了哪些事情?下面的时序图展示里启动过程中函数的调用过程, 从图中可以知道大概流程。 在介绍细节的时候是从上往下函数调用过程介绍的,如果不知道某个函数是在哪里被谁调用的,可以回过头来看下时序图。下面是对一些细节进行介绍。 1. 在Android中有两种操作会引发Activi 阅读全文
posted @ 2016-01-16 17:29 Jackwen 阅读(4836) 评论(0) 推荐(0) 编辑
  2016年1月12日
摘要: 1。统计启动耗时分布的方法 1.1 通过log统计函数运行耗时 在需要检测的代码的前后调用System.currentTimeMillis();获取时间然后通过log输出时间。 通过这种方式,可以定位到哪个函数,甚至是哪句语句执行得慢。1.2 通过log打印一个activity从启动到第一次显示的时 阅读全文
posted @ 2016-01-12 16:37 Jackwen 阅读(1160) 评论(0) 推荐(0) 编辑
  2016年1月4日
摘要: 1.继承 继承指的是一个类(称为子类)继承另外的一个类(称为父类)的功能,并可以在子类中增加自己的新属性和功能。在Java中继承关系可以通过关键字 extends明确标识。在UML类图表示中,用一条带空心三角箭头的实线表示继承关系,由子类指向父类。2.实现关系 实现指的是一个class类实现inte... 阅读全文
posted @ 2016-01-04 20:04 Jackwen 阅读(2435) 评论(0) 推荐(0) 编辑
  2015年6月25日
摘要: 1. 多个PendingIntent时如何区分不同的Intent? 调用下面两个函数可以获得对应的PendingIntent,如果requestCode相同,获得的PendingIntent里的intent总是最后一个。所以要想区分,需要指定不同的requestCode. public static 阅读全文
posted @ 2015-06-25 09:49 Jackwen 阅读(282) 评论(0) 推荐(0) 编辑