转载请标明出处:一片枫叶的专栏 上一篇文章中我们解说了android中的异步消息机制. 主要解说了Handler对象的使用方式.消息的发送流程等.android的异步消息机制是android中多任务处理的基础,Handler是整个android应用层体系异步消息传递的基础组件,通过对Handler源代码的解析的解析相信大家对android中的异步消息机制有了一个大概的了解.很多其它关于android中的异步消息机制的知识可參考我的:android源代码解析之(二)–>异步消息机制 android…
转载请标明出处:一片枫叶的专栏 上一篇文章中我们解说了AsyncTast的基本使用以及实现原理,我们知道AsyncTask内部是通过线程池和Handler实现的.通过对线程池和handler的封装实现了对异步任务操作.很多其它关于AsyncTask相关的内容,可參考我的android源代码解析之(三)–>异步任务AsyncTask 本文我们将解说HandlerThread相关的概念. HandlerThread是什么东西呢?了解一个类最好的方法就是查看类的定义,所以我们就看一下HandlerTh…
转载请标明出处:一片枫叶的专栏 首先说点题外话,对于想学android framework源代码的同学,事实上能够在github中fork一份,详细地址:platform_frameworks_base 这里面基本都是android framework层的源代码了.并且近期发现了一个比較不错的github插件:OctoTree,它 是一个浏览器插件,它能够让你在Github 看代码时,左边栏会出现一个树状结构.就像我们在IDE 一样.当我们看一个项目的结构,或者想看详细的某个文件,这样就会非常方…
转载请标明出处:一片枫叶的专栏 android开发过程中常常会用到缓存.如今主流的app中图片等资源的缓存策略通常是分两级.一个是内存级别的缓存,一个是磁盘级别的缓存. 作为android系统的维护者google也开源了其缓存方案,LruCache和DiskLruCache.从android3.1開始LruCache已经作为android源代码的一部分维护在android系统中.为了兼容曾经的版本号android的support-v4包也提供了LruCache的维护,假设App须要兼容到andr…
转载请标明出处:一片枫叶的专栏 上一篇文章中给大家分析了一下android系统启动之后调用PackageManagerService服务并解析系统特定文件夹.解析apk文件并安装的过程,这个安装过程实际上是没有图形界面的,底层调用的是我们平时比較熟悉的adb命令,那么我们平时安装apk文件的时候大部分是都过图形界面安装的,那么这样的方式安装apk详细的流程是如何的呢? 本文我们就来详细看一下apk的详细安装过程,通过本文的学习希望帮助大家大概的了解到Android系统安装Apk文件的基本流程.好…
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41894125,本文出自:[张鸿洋的博客] 大家在平时的开发中.对于setContentView肯定不陌生,那么对其内部的实现会不会比較好奇呢~~~有幸最终能看到一些PhoneWindow神马的源代码,今天就带大家来跑一回源代码~~ 1.Activity  setContentView 首先不用说,进入Activity的setContentView public void set…
从大的方面来说.Android系统的启动能够分为两个部分:第一部分是Linux核心的启动,第二部分是Android系统的启动. 第一部分主要包含系统引导,核心和驱动程序等,因为它们不属于本篇要讲的内容,这里就不再讨论. 在本篇博客中,我们重点解说Android系统的启动,这一过程主要经过两个阶段.各自是应用的初始化流程与system_service进程及核心服务的创建流程. 1.初始化流程 初始化流程.顾名思义,它完毕Android的一些初始化工作,包含设置必要的环境变量,启动必要的服务进程,挂…
学web也有一段时间了.为了从底层了解web应用在Tomcat中的执行,决定看一下Tomcat的源代码參见<How Tomcat works>    和大牛博客.对大体架构有了一定的了解,可是详细细节还是不大清楚,以后随着对这方面的深入再详细看吧. 以下是解析的Tomcat系列: Tomcat源代码解析(一)下载源代码与导入eclipse Tomcat整体架构(Tomcat源代码解析系列二) tomcat的启动过程(Tomcat源代码解析(三)) Tomcat关闭过程(Tomcat源代码解析四…
本文已授权微信公众号<非著名程序猿>原创首发,转载请务必注明出处. xUtils3源代码解析系列 一. Android xUtils3源代码解析之网络模块 二. Android xUtils3源代码解析之图片模块 三. Android xUtils3源代码解析之注解模块 四. Android xUtils3源代码解析之数据库模块 关于xUtils3 xUtils 包括了非常多实用的android工具. xUtils 支持超大文件(超过2G)上传.更全面的http请求协议支持(11种谓词).拥有…
Adapter相当于一个数据源,能够给AdapterView提供数据.并依据数据创建相应的UI.能够通过调用AdapterView的setAdapter方法使得AdapterView将Adapter作为数据源. 常见的AdapterView的子类有ListView.GridView.Spinner和ExpandableListView等. 本文就以ListView为例解说各种常见的Adapter的使用. 下面是Adapter相关类的关系图: Adapter接口 Adapter源代码链接例如以下:…
在刚才開始学习android数字签名的相关知识点的时候,被资料中出现的keystore.x509.密钥对.debug.keystore弄的晕头 转向.经过一段时间的了解,总算明确一些. 一.make_key脚本生成密钥对 android源代码中自带的工具make_key(development/tools/文件夹下)能够用来生成RSA密钥对. ./make_key test '/C=CN/ST=SH/L=SH/O=TEST/OU=TEST/CN=TEST' 执行以上命令将生成密钥对test.pk…
相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源代码解析Scroller Android View体系(五)从源代码解析View的事件分发机制 Android View体系(六)从源代码解析Activity的构成 Android View体系(七)从源代码解析View的measure流程 前言 上一篇文章我们讲了View的measure的流程.接…
使用的是一个第三方库android-pathview主要是一个自己定义View--PathView.跟全部自己定义View一样,重写了三个构造方法. 而且终于调用三个參数的构造方法,在里面获取自己定义属性. /** * Default constructor. * * @param context The Context of the application. */ public PathView(Context context) { this(context, null); } /** * D…
Android Animation学习(三) ApiDemos解析:XML动画文件的使用 可以用XML文件来定义Animation. 文件必须有一个唯一的根节点: <set>, <objectAnimator>, or <valueAnimator>三者之一. 对应的Java类是: ValueAnimator - <animator> ObjectAnimator - <objectAnimator> AnimatorSet - <set&…
android中解析文件的三种方式     好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API for XML),DOM(Document Object Model),Pull.其中前面两种和JAVA中解析XML文件方法类似,第三种解析方式则是Android自带集成的解析方式.     SAX解析:属于事件驱动解析,先不解析整个文档,如果解析到符合XML要求的,我们则可以返回.这样解析的优势是我们…
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40920453,本文出自:[张鸿洋的博客] 上一篇带大家初步了解了EventBus的使用方式,详见:Android EventBus实战 没听过你就out了,本篇博客将解析EventBus的源代码,相信能够让大家深入理解该框架的实现.也能解决非常多在使用中的疑问:为什么能够这么做?为什么这么做不好呢? 1.概述 一般使用EventBus的组件类,相似以下这样的方式: public…
第十七章.中介者模式 中介者模式也称为调解者模式或调停者模式,是一种行为型模式. 1.定义 中介者模式包装了一系列对象相互作用的方式.使得这些对象不必相互明显作用.从而使它们能够松散耦合.当某些对象之间的作用发生改变时.不会马上影响其它的一些对象之间的作用.保证这些作用能够彼此独立的变化. 2.使用场景 当对象之间的交互操作非常多且每一个对象的行为操作都依赖彼此时,为防止在改动一个对象的行为时.同一时候涉及非常多其它对象的行为,可使用中介者模式. 3.UML类图 (1)Mediator:抽象中介…
Android中的Veiw从内存中到呈如今UI界面上须要依次经历三个阶段:量算 -> 布局 -> 画图,关于View的量算.布局.画图的整体机制可參见博文 < Android中View的布局及画图机制>. 量算是布局的基础.假设想了解量算的细节,可參见博文<源代码解析Android中View的measure量算过程>.本文将从源代码角度解析View的布局layout过程.本文会具体介绍View布局过程中的关键方法,并对源代码加上了凝视以进行说明. 对View进行布局的目…
第十章.解释器模式 解释器模式是一种用的比較少的行为型模式.其提供了一种解释语言的语法或表达式的方式. 可是它的使用场景确实非常广泛,仅仅是由于我们自己非常少回去构造一个语言的文法,所以使用较少. 1.定义 给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子. (当中语言就是我们须要解释的对象,文法就是这个语言的规律,解释器就是翻译机.通过文法来翻译语言.) 2.使用场景 1.假设某个简单的语言须要解释运行并且能够将该语言中的语句表示为一个抽象的语法树时…
断断续续的,<Android源代码设计模式解析>也看了一遍.书中提到了非常多的设计模式.可是有部分在开发中见到的几率非常小,所以掌握不了也没有太大影响. 我认为这本书的最大价值有两点,一个是从设计模式的角度去理解Android源代码,结合着日常开发中的经常使用类,对设计模式的理解会更加的深刻:另外一个优点就是了解经常使用模式.再看其它人写的代码的时候,更easy理解代码思路. 以下是我的读书笔记和一些思考,设计模式仅仅整理我认为重要的部分. 建造者模式 建造者模式最明显的标志就是Build类,…
对于服务器端来说,返回给客户端的数据格式一般分为html.xml和json这三种格式,现在给大家讲解一下json这个知识点, 1 如何通过json-lib和gson这两个json解析库来对解析我们的json数据, 2 以及如何在我们的Android客户端解析来自服务器端的json数据,并更新到UI当中.(下篇来讲) 一.什么是json json(Javascript Object Notation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比较的复杂,而且需要编…
1.定义 将对象组合成树形结构以表示"部分-总体"的层次结构,使得用户对单个对象和组合对象的使用具有一致性. 2.使用场景 (1)表示对象的部分-总体层次结构时. (2)从一个总体中可以独立出部分模块或功能的场景. 3.UML类图 (1)Component:抽象根节点,为组合中的对象声明接口.在适当的情况下.实现全部类共同拥有接口的缺省行为. 声明一个接口用于訪问和管理Component的子节点.可在递归结构中定义一个接口,用于訪问一个父节点,并在合适的情况下实现它. (2)Compo…
关于Hanlder的基本使用能够參见博文<Android中Handler的使用>,假设想了解Handler.Looper.Thread等的相互关系以及内部实现原理能够參见博文<深入源代码解析Android中的Handler,Message,MessageQueue,Looper>. Android中的API中对HandlerThread的描写叙述是: Handy class for starting a new thread that has a looper. The loope…
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xstream 二: 把对象转换成xml 1.JavaBeen package com.android10; public class Person { String pName ; String pAge ; public String getpName() { return pName; } pub…
前言: 实现异步下载apk文件 并 安装.(进度条对话框显示下载进度的展现方式) 涉及技术点: 1.ProgressDialog   进度条对话框  用于显示下载进度 2.AsyncTask         异步任务的使用    耗时操作不能再主线程中进行      安卓开发_浅谈AsyncTask 3.File                   文件相关操作    将文件的字节数据生成文件 4.自动打开安装应用操作       下载网络apk数据并生成文件之后需要我们去执行这个apk的安装操…
第十四章.迭代器模式 迭代器模式,又叫做游标模式.是行为型设计模式之中的一个.我们知道对容器对象的訪问必定会涉及遍历算法.我们能够将遍历的方法封装在容器中,或者不提供遍历方法,让使用容器的人自己去实现去吧. 这两种情况好像都能够解决这个问题. 然而在前一种情况.容器承受了过多的功能.它不仅要负责自己"容器"内的元素维护(加入.删除等等),并且还要提供遍历自身的接口:并且因为遍历状态保存的问题,不能对同一个容器对象同一时候进行多个遍历.另外一种方式倒是省事,却又将容器的内部细节暴露无遗.…
第二十章.适配器模式 适配器模式是结构型设计模式之中的一个,它在我们的开发中使用率极高,比方ListView.GridView以及RecyclerView都须要使用Adapter. 1.定义 适配器模式把一个类的接口变换成client所期待的还有一种接口,从而使原本因接口不匹配无法在一起工作的两个类能够在一起工作. 2.使用场景 (1)系统须要使用现有的类.但此类的接口不符合系统的须要.即接口不兼容. (2)想要建立一个能够反复使用的类.用于与一些彼此之间没有太大关联的一些类,包含一些可能在将来…
第十八章.代理模式 代理模式也称托付模式,是结构型设计模式之中的一个.是应用广泛的模式之中的一个. 1.定义 为其它对象提供一种代理以控制对这个对象的訪问. 2.使用场景 当无法或不想直接訪问某个对象或訪问某个对象存在困难时能够通过一个代理对象来间接訪问,为了保证client使用的透明性.托付对象与代理对象须要实现相同的接口. 3.UML类图 (1)Subject:抽象主题类.声明真实主题与共同接口方法,该类能够是抽象类或接口. (2)RealSubject:真实主题类(被托付类).尤其运行详细…
收集相关系列资料,自己用作参考,练习和实践.小伙伴们,总有一天,你也能写出 Niubility 的 Android App :-) GitHub上不错的Android开源项目(一):http://www.cnblogs.com/haochuang/p/4676090.html GitHub上不错的Android开源项目(二):http://www.cnblogs.com/haochuang/p/4676092.html GitHub上不错的Android开源项目(三):http://www.cn…
此前,推出的GitHub平台上“最受欢迎的开源项目”系列文章引发了许多读者的热议,在“GitHub上最火的40个Android开源项目(一).(二)中,我们也相继盘点了40个GitHub上最受欢迎的Android开源项目.对于GitHub上如此众多的项目,有人不断Mark,有人分享自己的经验,有人心生“看得眼花缭乱,果然是需要终身学习的时代”的感慨,不管怎么样,如果能让你真的有所学习有所收获,我们的目的也就达到了. 今天我们将继续介绍GitHub上另外34个非常受欢迎的Android开源项目,在…