
Android源码
文章平均质量分 86
chongyucaiyan
一切皆有可能~
展开
-
Android | Android的消息机制源码分析
Android系统不能在子线程中更新UI界面,因为Android的UI控件不是线程安全的。这种情况下我们可以在UI线程中创建一个Handler,子线程通过这个Handler发送Message到UI线程,通知UI线程更新UI界面。这是Android的消息机制一个非常典型的应用场景。在Android中,AsyncTask、IntentService等也都用到了Android的消息机制。通过源码分析Android的消息机制原创 2017-08-04 02:51:59 · 6013 阅读 · 0 评论 -
Android | AsyncTask源码分析
当应用需要执行耗时的任务时,为了保持应用的平滑流畅和避免ANR,我们需要使用工作线程来执行耗时的任务。当耗时的任务执行完毕时,如果需要更新UI界面,那么我们需要使用Handler来通知UI线程更新界面。为了简化这些操作,方便开发人员编程,Android系统提供了一个AsyncTask类。使用AsyncTask,你可以很方便地执行后台操作,并在UI线程中更新界面,而无需直接操作Thread和Handler类。原创 2017-12-20 23:44:29 · 3296 阅读 · 0 评论 -
Android | View的事件分发源码分析
在Android中,View主要负责界面的绘制和事件的分发、处理,它是所有控件Widgets的基类。通过源码分析View的事件分发,我们可以更加深刻地理解Android系统中View的工作原理。不仅如此,在日常的开发中,当我们遇到View事件冲突、滑动冲突时,处理起来将会游刃有余。原创 2017-07-20 23:30:15 · 3940 阅读 · 0 评论 -
Android | EventBus源码分析
EventBus是一种用于Android的发布/订阅事件总线。它有很多优点:简化应用组件间的通信;解耦事件的发送者和接收者;避免复杂和容易出错的依赖和生命周期的问题;很快,专门为高性能优化过等等。原创 2018-01-02 23:50:06 · 5035 阅读 · 2 评论 -
Android | HandlerThread源码分析
在Android中,默认情况下,一个线程没有与它相关联的Looper。也就是说,默认情况下,我们无法创建与该线程相关联的Handler。HandlerThread是一个继承自Thread的线程类,它用于启动一个有Looper的线程。通过这个Looper,我们就可以创建与该线程相关联的Handler。通过Handler,我们就可以很方便地控制该线程执行我们的耗时任务。在Android系统中,很多地方都使用了原创 2017-09-20 02:04:15 · 3727 阅读 · 0 评论 -
Android | IntentService源码分析
在Android中,Service是运行在主线程之中的。如果要在Service中执行耗时的任务,那么我们需要手动创建子线程。并且,在任务完成的时候,我们需要手动停止Service。为了简化这些操作,Android提供了一个IntentService类。IntentService是Service的子类,它使用了一个HandlerThread线程来依次处理每个启动Service的请求,并在所有的请求都处理完毕之后自动停止原创 2017-09-24 23:56:38 · 3533 阅读 · 0 评论