- 博客(21)
- 资源 (3)
- 收藏
- 关注
原创 Android Touch 简易流程分析
Android Touch 简易流程概述流程分析由Activity开始,前面不管。触碰事件首先发放到Activity,Activity再转发给它依赖的Window(也就是PhoneWindow对象),Window转发给它所持有的DecorView(也就是顶层FrameLayout对象),由此开始就是经常说的ViewGroup与View的触碰事件传递流程了。把上面的流程分两部分分析,第一部分是Activity到DecorView(简单);第二部分是ViewGroup与View流程(复杂)。第一部分
2020-06-27 15:13:46 385
原创 LayoutInflater实例化布局流程分析
LayoutInflater通过inflate方法组装一个指定layout的布局Viewpublic void inflate(int resource, ViewGroup root, boolean attachToRoot) { final Resource res = getContext().getResources(); final XmlResourcePar
2017-01-11 09:54:11 664
转载 android之init.rc文件浅析
1. init.rc文件结构文件位置:init.c : /system/core/initinit.rc : /system/core/rootdir首先init.rc文件是以模块为单位的,每个模块里的内容都是一起执行的,模块分为3种类型:on、service、import。我们可以看下init.rc文件是怎么写的:1.importimport
2016-12-28 17:25:00 746
原创 ViewRootImpl的performDraw过程
ViewRootImpl充当的是View和window之间的纽带。在startActivity之后,经过与ActivityManagerService的IPC交互,会在ActivityThread的handleResumeActivity方法中执行到getWindow().addView,就是将根布局 Decor添加到window中以显示。getWindow会以WindowManagerGlobl
2016-12-22 14:40:29 2233
原创 WindowInsets和StatusBar
WindowInsets流程:setContentView过程可以分为两部分,一部分是构建DecorView布局,一部分是将布局添加到window中。主要看添加到window流程:ActivityThread.handleResumeActivity-WindowManager.addView-WIndowManagerImpl.addView-WindowManagerGloble.ad
2016-12-22 14:39:08 4263
原创 android关于dispatchTouchEvent和onTouchEvent的源码实验分析
(一)源码调试:设置build中编译版本为23(6.0);必须使用google官方6.0系统手机(如Nexus系列且安装6.0系统)或者使用虚拟机(配置也是Nexus6.0系统)。这样要求是为了运行设备和编译器编译使用同一个版本,而且都是google官方版本,在调试打断点的时候就不会出现断点行号和源码行号对不上的问题了。切记调试条件:1、编译版本和测试机版本必须相同。2、测试机使用
2016-12-22 14:35:50 677
翻译 图标动画技术入门(An Introduction to Icon Animation Techniques翻译)
原文地址:http://www.androiddesignpatterns.com/2016/11/introduction-to-icon-animation-techniques.html#drawing-paths以下为简单翻译,不足之处别见怪,有些关键词没有改动以免误解。文中带复选框的图片请到原文中查看效果,本文中只是静态图。创意定制是Material Desi
2016-12-22 14:33:14 819
翻译 KeyFrames-facebook(翻译)
原文github地址:https://github.com/facebookincubator/Keyframes/blob/master/README.md以下为简单翻译,不足之处别见怪,有些关键词没有改动以免误解。相关阅读:阅读后更助理解facebook原文地址:https://code.facebook.com/posts/354469174916519/keyframes-de
2016-12-22 14:30:02 1290
翻译 APK程序的运行过程
摘自:《内核剖析》 - 柯元旦 著 首先,ActivityThread从main()函数中开始执行,调用prepareMainLopper()为UI线程创建一个消息队列(MessageQueue)。 然后创建一个ActivityThread对象,在ActivityThread的初始化代码中会创建一个H(Handler)对象和一个ApplicationThread(Binder)
2013-11-25 18:16:33 1221
原创 简析 Android Adapter适配器的内部调用流程
我们都知道使用Adapter为ListView或GridView填充数据,而我们需要实现Adapter里的getView、getCount等方法。但内部到底是怎么调用,怎么调用的getView方法,就需要看源码了,下面来简单分析一下:
2013-11-21 22:58:29 8107
转载 【转】android中onMeasure初看,深入理解布局之一!
今天学习android自定义组件:docs/guide/topics/ui/custom-components.html其中有两个对布局界面影响很的方法,onDraw(),和onMeasure().onDraw()比较好理解.onMeasure()就比较难理解一些,也更复杂些 ,引用文档中的说法就是:onMeasure() is a little more invo
2013-11-19 17:59:04 1443
原创 套用DatePickerDialog源码实现自定义样式的日期选择对话框
我们一般会直接使用android提供的系统对话框,但有时候需要自己定义对话框样式,普通对话框还好,但是日期选择对话框中的日期选择部分十分复杂,为了一点样式的修改就去自定义View的话又得不偿失,这时通过套样系统源码来实现自己需要的样式就能很方便的实现我们的需求。下面的代码只是对DatePickerDialog源码稍加修改,只做演示,原理很简单,大家举一反三就可以自由定义需要的样式了。
2013-11-19 00:39:13 13300 3
转载 【转】java设计模式-桥接模式
本文介绍设计模式中的桥接(Bridge)模式的概念,用法,以及实际应用中怎么样使用桥接模式进行开发。Bridge模式的概念Bridge 模式是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立
2013-11-18 23:38:17 973
转载 【转】打开eclipse点更新后,出现This Android SDK requires Android Developer Toolkit version 22.0.0 or above.
本人最近在操作更新ANDROID SDK时出现类似于题目中的错误,是一启动ECLIPSE时。按照弹出的提示进行更新。但是,我现在只是想恢复到原先的开发环境。于是找到本文,方法有效!!!windows 下面安装Android虚拟机,有时候选择更新SDK后,在Eclipse preference里指向android_sdk_windows_x86时。会出现诸如This AndroidSDK
2013-11-18 10:55:26 1871
原创 java读书笔记-《java设计模式》-第5章 - 合成模式
读后感觉合成模式主要用于分析需求、整理逻辑后来设计程序框架,对初学者不太合适。概念:合成模式的意图是为了保证客户端调用单对象与组合对象的一致性。举个例子来说:对工作进程的定义,可以将其定义为进程步骤的集合以及其他进程。举一个书中的例子:工厂是由车间组成的,每个车间有一条或多条生产线,一条生产线上有很多机器,将这些工厂、车间、生产线看作是“机器”的组合来进行建模。单个机器类:Mach
2013-11-15 21:48:05 1033
转载 【转】android获取所有安装的非系统应用
程序大概分成三个部分:1.获取手机已安装的所有应用package的信息(其中包括用户自己安装的,还有系统自带的);2.滤除系统自带应用;3.通过列表显示出应用程序的图标(icon),和其他文字信息(应用名称,包名称package name,版本号等等)首先,我们定义一个数据结构,来保存应用程序信息(icon,name,packageName,versionName,
2013-11-15 15:32:29 5522
转载 【转】HTTP 304 的理解
304 的标准解释是:Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。如果客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的
2013-11-15 14:46:40 2307
原创 简析 addToBackStack使用和Fragment执行流程
在使用Fragment的时候我们一般会这样写: FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.content_view, fragment, fragment.getClass().getName
2013-11-14 14:46:11 95300 19
原创 java读书笔记-《java设计模式》-第4章 - 外观模式
对于外观模式书中讲的简单宽泛不便于理解,所以找了些网上的资料作为参考(http://zz563143188.iteye.com/blog/1847029)。结合起来看可以把外观模式解释为下面这样:外观模式主要作用于类与类之间的关系,作用是解耦,解除类与类之间的依赖。也可以用书中的话说“根据关注点将代码分解为不通的类,就可以提取一个类,它的主要职责是为子系统提供简便的访问方式,从而完成对
2013-11-14 00:04:37 1264
原创 java读书笔记-《java设计模式》-第3章 - 适配器模式
适配器模式分为 类适配器 和 对象适配器 两种。两者的区别在于前者是客户端设计的使用接口 与 现有的已实现该功能的功能类组合使用,由于此操作是在类层次上实现的,所以叫类适配器;而后者客户端并没有设计使用接口,所以通过继承客户端的使用类,并在其中实现已有功能类的实例 来调用已有的功能代码,也就是对象适配器。首先书中说明了适配器模式的使用情景:通常,在代码已经存在的情况下编
2013-11-13 00:25:47 841
原创 java读书笔记-《java设计模式》-第2章 - 接口型模式介绍
第一章是绪论没什么可记录的。第二章没有具体介绍设计模式,但有几个知识点需要熟悉一、java中抽象类和接口的区别1、一个类可以实现多个接口,但只能继承最多一个抽象类。2、抽象类可以包含具体方法,接口的所有方法都是抽象的。3、抽象类可以实现声明和使用字段;接口则不能,单可以创建静态的final常量。4、抽象类中的方法可以是任何方法限制;接口则只能是public的;5、抽象类
2013-11-12 23:28:40 750
asmack源码文件
2014-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人