自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (8)
  • 收藏
  • 关注

原创 Fragment运行机制源码分析(二)

如果你喜欢我的文章,可以关注左边微信公众号,我会定期推送文章跟新。 在前面的文章中,我们详细分析了Fragment的生命周期,以及讲解了Activity如何控制Fragment的生命周期,按照计划,本篇文章就来分析一下add,replace,remove,hide,show等api到底做了生命逻辑,如果大家还没有阅读Fragment运行机制分析(一),那么建议先阅读一下。在具体分析源码之前,我们来

2016-10-23 20:53:08 1770 1

原创 Fragment运行机制源码分析(一)

Fragment是Android3.0中推出的,目的是方便屏幕适配,虽然推出时间比较早,但是由于Fragment本身存在着各种Bug,并且使用起来比Activity复杂的多,所以真正掌握Fragment运行机制的同学并不多。在网上经常可以看到开发者对Fragment各种吐槽,认为在App中根本没有必要使用Fragment,因为使用View也可以完成Fragment的一样的功能,对于这种说法也不完全错

2016-10-15 18:57:22 4365 4

原创 Android自定义View系列之动态变化的Button

我的微信公众号: 如果你喜欢我的文章,欢迎关注我的微信公众号。今天给大家介绍的是一款可以动态变化的按钮,如矩形变为圆形、圆形变为矩形、矩形先变为进度条然后再变为圆形,我们还是先看看效果图吧。 第一个按钮由矩形变为圆角矩形。 第二个按钮由矩形变为圆形。 第三个按钮由矩形变为进度条,进度条结束后变为圆形。在此声明一下,效果实现我这里并非原创,我也是在github上面看到此效果,然后阅读源码,

2015-11-08 12:53:46 5014 2

原创 Android自定义View系列之进度指示控件

我开通微信公众号啦,如果大家喜欢我的文章,欢迎大家关注我的微信号,我会定期为大家推送Android中的热门知识。 今天为大家介绍另一个自定义View——进度指示器,这个在电商App和支付宝等中经常遇到。如在电商App中买一个东西会有如下步骤: 下订单——>支付完成——>已发货——>交易完成 先使用我们的自定义View来展示一下上面的步骤吧 如上图所示,步骤未完成时是灰色(可指定),当步骤完成

2015-10-18 11:21:07 6383 8

原创 Android自定义View系列之可伸缩的TextView

在写博客之前,告诉大家一个消息,我开通了自己的微信公众账号,如果你喜欢我的文章,希望关注我的微信公众号,我会定期与大家分享最新的博客文章,以及移动互联网最新动态。 我的微信公众号:yuanzeyao_android 二维码: 经常访问我博客的同学应该注意到了我的博客大部分是关于分析Android系统原理的,很少涉及应用层的知识,但是想要开发一个用户欢迎的App,没有一个炫酷的UI肯定是不行的,

2015-10-13 21:40:36 12225 3

原创 深入分析Java线程中断机制

在平时的开发过程中,相信都会使用到多线程,在使用多线程时,相信大家也会遇到各种各样的问题,今天我们就来说说一个多线程的问题——线程中断。在java中启动线程非常容易,大多数情况下我是让一个线程执行完自己的任务然后自己停掉,但是有时候我们需要取消某个操作,比如你在网络下载时,有时候需要取消下载。实现线程的安全中断并不是一件容易的事情,因为Java并不支持安全快速中断线程的机制,说这里估计很多同学就会说

2015-08-01 15:04:17 5122 6

原创 Android 中View的绘制机制源码分析 四

到目前为止,我们已经学习了View的测量,布局过程,今天我们就来学习一下最后一个过程:绘画 绘画过程和前面的两个过程一样,都是在ViewRoot的performTraversals这个方法中调用的,感兴趣的同学可以找找看,我这里就不在贴出代码了,我们直接看View的draw方法吧View的draw过程的五部曲 /** * Manually render this view (an

2015-07-25 15:27:42 2482 4

原创 Android 中View的绘制机制源码分析 三

Android 中View的绘制机制源码分析 三到目前为止,measure过程已经讲解完了,今天开始我们就来学习layout过程,不过在学习layout过程之前,大家有没有发现我换了编辑器,哈哈,终于下定决心从Html编辑器切换为markdown编辑器,这里之所以使用“下定决心”这个词,是因为毕竟Html编辑器使用好几年了,很多习惯都已经养成了,要改变多年的习惯确实不易,相信这也是还有很多人使用Ht

2015-07-18 15:33:30 1702 1

原创 Android 中View的绘制机制源码分析 二

本篇文章接着上篇文章的内容来继续讨论View的绘制机制,上篇文章中我们主要讲解了View的measure过程,今天我们就来学习ViewGroup的measure过程,由于ViewGroup知识一个抽象类,所以我们需要以一个具体的布局来分析measure过程,正如我上篇文章说的,我打算使用LinearLayout为例讲解measure过程,如果你还没有读过上篇文章,那么你先浏览一下上篇文章吧:And

2015-07-12 10:52:23 2375 5

原创 Android 中View的绘制机制源码分析 一

差不多半年没有写博客了,一来是因为工作比较忙,二来是觉得没有什么比较值得写,最近对Android中View的绘制机制有了一些新的认识,所以想记录下来并分享给大家。在之后的几篇博客中,我会给大家分享如下的内容:1、View中measure(),layout(),draw()函数执行过程分析,带领大家详细分析View的尺寸计算,位置计算,并最终绘制到UI上的过程2、以LinearLayout为例讲解尺

2015-07-07 22:05:22 5389 2

原创 Activity的launchMode详细分析

在分析了Activity的启动过程后,我觉得很有必要对Activity的launchMode进行分析一下,因为到目前为止,我发现网上对launchMode的讲解都是通过实例讲解,看完了总是似懂非懂的感觉,并没有根本上理解launchMode的原理。这里我会从源码的角度讲解launchMode。相信大家会和我一样,看了源码之后就会有一种豁然开朗的感觉。Activity的启动模式一种有四种,分别如下:

2015-01-19 11:30:07 3222 1

原创 AsyncTask中线程池调度分析

在Android中,和异步执行相关的两个类就是Handler和AsyncTask,所以Android开发人员对于这两个类是再熟悉不过了,所以这里我不是讲解AsyncTask怎么使用,而是想分析一下AsyncTask中线程池的调度过程,然后简单的介绍一下AsyncTask的源码以及Android3.0前后,AsyncTask中线程池的区别。

2015-01-10 17:56:11 2974

原创 Android framework层JNI的使用浅析

JNI技术对于多java开发的朋友相信并不陌生,即(java native interface),本地调用接口,主要功能有以下两点:1、java层调用C/C++层代码2、C/C++层调用java层代码可能有些人会觉得jni技术破坏了Java语言的跨平台性,有这种想法可能是因为你对java理解得还不够深,如果你看看jdk源码,你会发现在jdk里面大量使用了jni技术,而且java虚拟机就是用本地语言写的,所以导致jvm并不能跨平台性,所以说java的跨平台性并不是100%的跨平台的。相反你应该看到使用

2015-01-05 12:27:58 36065 8

原创 轻松实现Android 更换皮肤(主题)

目前很多app都具有换肤功能,可以根据用户自己的喜好定制自己的界面,比如新浪微博,网易新闻等等。今天这里我就是要介绍一种机制实现app换肤。我找了几款app换肤的应用,换肤基本都是更换了界面的Icon,背景图片,背景色等等,基本没有遇到更换布局的,其实布局也是可以更换的,但是觉得没有必要。所以这篇文章讲解的换肤也是指换icon,背景图片等资源。通过网络搜索我发现网上上提供了大概这么集中换肤机制:

2015-01-04 14:17:28 14065 25

原创 Android中资源管理机制详细分析

在Android中,所有的资源都在res目录下存放,包括drawable,layout,strings,anim等等,当我们向工程中加入任何一个资源时,会在R类中相应会为该 资源分配一个id,我们在应用中就是通过这个id来访问资源的,相信做过Andorid开发的朋友对于这些肯定不会陌生,所以这个也不是我今天想要说的,我今天想和大家一起学习的是Android是如何管理资源的,在Android系统中,

2015-01-04 12:56:32 12937 3

原创 深入分析Intent匹配查询

在前面的一篇文章中,我们详细分析了PackageManagerService的启动过程(在后面的文章中,为了方便,我会将PackageManagerService简称PMS),PMS在启动的过程中,会去扫描系统app和用户安装的app,然后将这些app的信息保存到一些数据结构中,在这篇文章中,我们会接着前面一篇文章继续分析Intent匹配查询过程,如果对PMS不是很熟悉的同学建议先去阅读前面一篇文章

2014-12-30 22:37:41 9482 1

原创 PackageManagerService的启动过程分析

这篇文章主要分析了Android系统中一个比较重要的Service在启动过程,将PackageManagerService的启动过程分为了两部分,1、扫描xml 2、扫描apk,并用uml和简单代码描述了PackageManagerService的启动过程。

2014-12-28 18:13:07 10439 2

原创 彻底解决Android 应用方法数不能超过65K的问题

介绍了解决Android APP方法不能超过65k的两中解决方案 插件和分包,并着重介绍了两种分包机制,基于Gradle构建Android项目进行分包和基于Ant构建Android项目进行分包,分包成功后介绍了使用DexClassLoader价值dex文件的机制

2014-12-08 22:28:53 34133 37

原创 Android导航栏ActionBar的详细分析

详细介绍了Actionbar在2.x系统中的使用,主要包括ActionItem,ActionView,ActionProvider,ActionBar中的tab,自动以ActionBar等

2014-09-18 22:17:47 7343 8

原创 关于BroadCastReceiver安全性的思考

介绍了避免自己app中的广播响应其他应用中的广播,增加广播安全性的四种解决方案

2014-08-30 23:17:20 6662 3

原创 Android Touch事件传递机制引发的血案

通过一个使用SlideMenu过程中,无法滑动SlideMenu的问题,详细描述了Android TouchEvent的传递机制

2014-08-30 11:53:04 3601 2

原创 实现Android 动态加载APK(Fragment or Activity实现)

介绍了如何通过Fragment和Activity两种方式实现动态加载APK,从而可以减小应用程序的体积

2014-08-14 22:30:17 18471 28

原创 Android Handler消息机制深入浅出

详细分析了Android系统中Handler消息机制的源码,分析了Handler,Looper,MessageQueue,Thread等之间的关系和交互机制

2014-08-06 23:15:02 3152 3

原创 Android图片处理神器BitmapFun源码分析

详细分析Android图片处理神器BitmapFun源码,分析了Bitmapfun处理图片的流程和原理,并对Bitmpafun处理图片的缺陷进行了 分析,也提出了相应的解决方案

2014-08-03 09:46:21 8919 6

原创 Android解耦库EventBus的使用和源码分析

讲解了EventBus开源库的使用,详细描述了EventBus中四种订阅函数的区别,最后对EventBus主要源码进行分析,讲解了EventBus的实现机制,从而让读者不仅会使用EventBus,并从原理上真正理解EventBus

2014-07-27 17:59:57 34175 8

原创 Android Touch事件传递机制详解 下

尊重原创:资源下载:http://download.csdn.net/detail/yuanzeyao2008/7660997在前一篇文章中,我主要讲解了Android源码中的Touch事件的传递过程,现在我想使用一个demo以及一个实例来学习一下Andorid中的Touch事件处理过程。在Android系统中,和Touch事件分发和处理紧密相关的三个函数如下:(1) pu

2014-07-21 22:41:57 6290 3

原创 Android Touch事件传递机制详解 上

最近总是遇到关于Android Touch事件的问题,如:滑动冲突的问题,以前也花时间学习过Android Touch事件的传递机制,可以每次用起来的时候总是忘记了,索性自己总结一下写篇文章避免以后忘记了,其实网上关于Touch事件的传递的文章真的很多,但是很少有系统性的,都是写了一个简单的demo运行了一下,对于我们了解Android Touch事件基本上没有任何帮助。    今天我打算从源

2014-07-19 15:37:35 9018 4

原创 Volley框架使用之请求大量图片

前面已经说过,Volley框架可以用来请求String,XML,Json,Image以及一些自定义的类型,这篇文章主要讲解使用Volley请求大量图片,并使用GridView展示出来,这个功能在很多应用中都会用到,如PPS等类型的播放器,淘宝等等。像这类应用无非就是要解决一下问题:1、避免OOM,在使用GridView等控件显示大量图片时,如果对缓存处理不当,是非常容易出现OOM的。

2014-05-18 13:07:25 6253 11

原创 Android网络通信Volley框架源码浅析(三)

通过前面浅析(一)和浅析(二)的分析,相信大家对于Volley有了初步的认识,但是如果想更深入的理解,还需要靠大家多多看源码。这篇文章中我们主要来研究一下使用Volley框架请求大量图片的原理,在Android的应用中,通过http请求获取的数据主要有三类:1、json 2、xml3、Image其中json和xml的获取其实原理很简单,使用Volley获取感觉有点大财小用了

2014-05-16 18:40:38 3245 4

原创 Android网络通信Volley框架源码浅析(二)

Volley框架源码分析

2014-05-15 22:53:03 3437 4

原创 Android网络通信Volley框架源码浅析(一)

尊重原创http://blog.csdn.net/yuanzeyao/article/details/25837897       从今天开始,我打算为大家呈现关于Volley框架的源码分析的文章,Volley框架是Google在2013年发布的,主要用于实现频繁而且粒度比较细小的Http请求,在此之前Android中进行Http请求通常是使用HttpUrlConnection和HttpClien

2014-05-14 22:52:42 5394 2

原创 Android中按键消息分发机制 下

Android按键消息分发机制

2013-10-30 17:34:57 6455 1

原创 Android中按键消息分发机制 上

Android按键消息分发机制

2013-10-30 17:25:26 10118 1

原创 Android中窗口的创建过程

在阅读本文之前建议先阅读我的另外一篇Java层Binder机制详解,因为里面有些地方涉及到通过进程间通过Binder机制通信。在Android将窗口分为三类:应用窗口,子窗口,系统窗口应用窗口一般需要和一个Activity对应,子窗口是有父窗口的窗口,系统窗口时由系统创建的窗口,用户是无法创建系统窗口的(Toast,输入法窗口,壁纸窗口除外)这里我主要分析一下应用窗口的创建

2013-10-23 22:01:05 8625 6

原创 更深层次的理解Context

Context在开发Android应用的过程中扮演着非常重要的角色,比如启动一个Activity需要使用context.startActivity方法,将一个xml文件转换为一个View对象也需要使用Context对象,可以这么说,离开了这个类,Android开发寸步难行,对于这样一个类,我们又对他了解多少呢。我就说说我的感受吧,在刚开始学习Android开发时,感觉使用Context的地方一直就

2013-10-22 22:26:24 10165 4

原创 Java层Binder机制详解

这篇文章是阅读《Android 内核剖析》一书的笔记,现在写下来希望能加深自己的理解,如果理解错误,希望各位朋友能指出来。    Binder是一种基于C/S的架构,主要包括四个部分:服务端(Server),客户端(Client),Binder驱动,ServiceManager。Binder是Android系统中非常重要的一种IPC机制,如果你想研究Frameworks,必须先对Bin

2013-10-22 21:59:54 16571 5

原创 Handling Configuration Changes with Fragments

关于Activity被销毁,Fragment重建的问题http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html

2015-01-29 11:39:34 1215

转载 Broadcast内部机制讲解

我们在编写Android程序时,常常会用到广播(Broadcast)机制。从易用性的角度来说,使用广播是非常简单的。不过,这个不是本文关心的重点,我们希望探索得再深入一点儿。我想,许多人也不想仅仅停留在使用广播的阶段,而是希望了解一些广播机制的内部机理。如果是这样的话,请容我斟一杯红茶,慢慢道来。        简单地说,Android广播机制的主要工作是为了实现一处发生事情,多处得到通知的效果。

2015-01-23 10:51:23 3588

原创 Unable to instantiate fragment com.viewpager.demo.FirstFragment: make sure class name exists, is pub

介绍了Fragment在使用过程中经常导致应用崩溃的原因,以及如何避免这种崩溃

2014-11-08 17:49:10 4290

原创 TextView 使用自定义字体并高亮显示

为TextView 自定义字体并设置高亮

2014-10-26 18:50:20 3001

EventBusDemo

简单介绍了EvnetBus的四种订阅函数的使用和区别

2014-07-27

TouchEventDemo

展示Android TouchEvnet的传递机制

2014-07-21

VolleyDemo

讲解Volley用于下载大量图片,并使用GridView展示图片的例子

2014-05-18

SimpleFactory

讲解了设计模式中的工厂模式:包括简单工厂,工厂方法,抽象工厂

2014-05-17

使用EventBus实现组件解耦

介绍了EventBus的使用,包含四种回调函数的使用,对于实现组件的解耦很有帮助

2013-12-07

Fragment实现Tab功能

由于Google官方不推荐使用TabActivity,所以这里使用Fragment来实现这以功能,希望能对大家有用。

2013-10-24

myeclipse10安装svn插件

在MyEclipse10中安装svn插件

2012-03-29

VC动态链接库开发,多线程

关于动态链接库的开发,里面也有关于多线程的内容,希望大家下载,

2011-03-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除