关闭

[置顶] Fragment运行机制源码分析(二)

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

[置顶] Fragment运行机制源码分析(一)

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

[置顶] Android自定义View系列之动态变化的Button

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

[置顶] Android自定义View系列之进度指示控件

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

[置顶] Android自定义View系列之可伸缩的TextView

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

[置顶] 深入分析Java线程中断机制

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

[置顶] Android 中View的绘制机制源码分析 四

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

[置顶] Android 中View的绘制机制源码分析 二

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

[置顶] Android 中View的绘制机制源码分析 一

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

[置顶] Android 中View的绘制机制源码分析 三

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

[置顶] Activity的launchMode详细分析

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

[置顶] AsyncTask中线程池调度分析

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

[置顶] 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%的跨平台的。相反你应该看到使用...
阅读(27136) 评论(9)

[置顶] 轻松实现Android 更换皮肤(主题)

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

[置顶] Android中资源管理机制详细分析

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

[置顶] 深入分析Intent匹配查询

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

[置顶] PackageManagerService的启动过程分析

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

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

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

[置顶] Android导航栏ActionBar的详细分析

详细介绍了Actionbar在2.x系统中的使用,主要包括ActionItem,ActionView,ActionProvider,ActionBar中的tab,自动以ActionBar等...
阅读(4629) 评论(8)

[置顶] 关于BroadCastReceiver安全性的思考

介绍了避免自己app中的广播响应其他应用中的广播,增加广播安全性的四种解决方案...
阅读(3561) 评论(4)

[置顶] Android Touch事件传递机制引发的血案

通过一个使用SlideMenu过程中,无法滑动SlideMenu的问题,详细描述了Android TouchEvent的传递机制...
阅读(2630) 评论(2)

[置顶] 实现Android 动态加载APK(Fragment or Activity实现)

介绍了如何通过Fragment和Activity两种方式实现动态加载APK,从而可以减小应用程序的体积...
阅读(15346) 评论(28)

[置顶] Android Handler消息机制深入浅出

详细分析了Android系统中Handler消息机制的源码,分析了Handler,Looper,MessageQueue,Thread等之间的关系和交互机制...
阅读(2537) 评论(3)

[置顶] Android图片处理神器BitmapFun源码分析

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

[置顶] Android解耦库EventBus的使用和源码分析

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

[置顶] Android Touch事件传递机制详解 下

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

[置顶] Android Touch事件传递机制详解 上

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

[置顶] Volley框架使用之请求大量图片

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

[置顶] Android网络通信Volley框架源码浅析(三)

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

[置顶] Android网络通信Volley框架源码浅析(二)

Volley框架源码分析...
阅读(2876) 评论(4)

[置顶] Android网络通信Volley框架源码浅析(一)

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

[置顶] Android中按键消息分发机制 下

Android按键消息分发机制...
阅读(4662) 评论(1)

[置顶] Android中按键消息分发机制 上

Android按键消息分发机制...
阅读(6415) 评论(1)

[置顶] Android中窗口的创建过程

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

[置顶] 更深层次的理解Context

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

[置顶] Java层Binder机制详解

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

Handling Configuration Changes with Fragments

关于Activity被销毁,Fragment重建的问题http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html...
阅读(922) 评论(0)

Broadcast内部机制讲解

我们在编写Android程序时,常常会用到广播(Broadcast)机制。从易用性的角度来说,使用广播是非常简单的。不过,这个不是本文关心的重点,我们希望探索得再深入一点儿。我想,许多人也不想仅仅停留在使用广播的阶段,而是希望了解一些广播机制的内部机理。如果是这样的话,请容我斟一杯红茶,慢慢道来。        简单地说,Android广播机制的主要工作是为了实现一处发生事情,多处得到通知的效果。...
阅读(2242) 评论(0)
88条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:419736次
    • 积分:4715
    • 等级:
    • 排名:第6568名
    • 原创:85篇
    • 转载:3篇
    • 译文:0篇
    • 评论:226条
    github
    个人微信公众号
    欢迎关注我的微信公众号,实时接收博客动态:
    博客专栏
    文章分类
    最新评论