10 yuanzeyao

尚未进行身份认证

我要认证

责任心强,有自主学习的能力,能吃苦耐劳,有团队精神

等级
TA的排名 1w+

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

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

2016-10-23 20:53:08

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

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

2016-10-15 18:57:22

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

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

2015-11-08 12:53:46

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

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

2015-10-18 11:21:07

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

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

2015-10-13 21:40:36

深入分析Java线程中断机制

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

2015-08-01 15:04:17

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

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

2015-07-25 15:27:42

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

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

2015-07-18 15:33:30

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

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

2015-07-12 10:52:23

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

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

2015-07-07 22:05:22

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

Broadcast内部机制讲解

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

2015-01-23 10:51:23

Activity的launchMode详细分析

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

2015-01-19 11:30:07

AsyncTask中线程池调度分析

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

2015-01-10 17:56:11

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

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

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

2015-01-04 14:17:28

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

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

2015-01-04 12:56:32

深入分析Intent匹配查询

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

2014-12-30 22:37:41

PackageManagerService的启动过程分析

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

2014-12-28 18:13:07

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

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

2014-12-08 22:28:53

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!