自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

rockstore的博客

奔跑吧小伙

  • 博客(24)
  • 收藏
  • 关注

转载 MQTT 连接建立流程及 paho mqtt 源码分析

文章转自:https://www.whqft.com/tech/ba0fbbea4fbe52ab5c48a1a3680b38c0.html目录目录前言连接流程连接配置源码分析总结前言在上篇分析了mqtt的基础后,接下来就分析下mqtt协议连接建立流程。在阅读本文之前,需要大家去了解一下Mqtt报文格式,还没有看的同学可以参考下此文:https://blog.csdn.net/l...

2019-01-22 22:57:15 9481

原创 通道和FileChannel

最近也看了通道和FileChannel,总结写这部分涉及到的内容,总结的比较笼统,以便自己回忆使用。不同于Buffer,通道都是接口,这是由于通道的功能实现是依赖于操作系统的,Channel只定义有哪些功能,而功能的具体实现在不同的操作系统中是不一样的,因此,在JDK中,通道被设计成为接口类型的数据。更具体说,通道代表数据到硬件、文件、网络套接字的连接。一般情况下,通道对于多线程的访问是安全的。...

2018-10-29 09:34:41 376

原创 Java NIO Buffer总结

总感觉不把东西写出来容易忘记,这段时间把NIO的基础看了一下,那就先回顾一下Buffer吧,主要供自己回忆使用,写的相对比较简单。结构Buffer是抽象类,子类共有7个实现,他们都是abstract类型对象的新建这7个实现的子类都是abstract类型,也就是说所有的7个子类都不能直接使用new新建对象。那这个7个类都是如何新 建对象的呢?分为两类:allocate, wra...

2018-10-29 09:33:40 366

原创 ArraySet 添加和删除元素分析

一直在使用Set相关类进行运行时数据存储,之前也有知道Android为了更加有效的利用内存,在23的时候设计了自己的一套运行时的集合类。本文的以我的视角分析ArraySet的add和remove过程,并做了简单的对比分析。##结构```ArraySet```实现了```Set```和```Collections```接口,故```add```和```remove```接口的使用方式相同,就...

2018-10-15 10:44:15 11668

原创 一场Toast引发的血案---WindowManager

在一场Toast引发的血案—Toast的显示中,已经大致了解了Toast的显示过程,但是还是有很多疑惑,Toast最终现实的时候是要通过WindowManager添加到一个Window的,但是这个WindowManager是哪个WindowManager,带着这个疑惑,我们开始深入。可能在此之前对Window不是很了解,但这不影响对WindowManager的理解,只需要大概知道一个Activ...

2018-07-07 17:52:19 703

原创 一场Toast引发的血案---Toast的显示

最普通不过的Toast我们进场使用,有没有想过这样的问题,可不可以在显示的时候取消Toast的显示,Toast到底是被添加到哪个Window的,WindowManager是如何添加Toast的,在添加Toast的时候总共有几个WindowManager参与,参与Toast显示的WindowManager是如何产生的……好吧,想到这么多的时候,我感觉头绪有点乱,还是从最简单的开始吧,先看下Toa...

2018-07-07 16:06:48 2624 2

原创 startService启动流程---Service在非App进程且未启动

在 Service启动流程(startService)的最后,分析了在调用startService时可能存在的三种情况,本文分析第三种情况—Service不在App进程且未启动。 Service启动流程(startService)最后已经说明,在这种情况下,系统会执行startProcessLocked函数。startProcessLocked函数是不是很熟悉,在前面分析Activity从La...

2018-04-19 21:36:01 1300

原创 startService启动流程---Service在App进程但未启动

在Service启动流程(startService)的最后,分析了在调用startService时可能存在的三种情况,本文分析第二种情况—Service与App在同一个进程,但未启动。 Service启动流程(startService)最后已经说明,在这种情况下,系统会执行realStartServiceLocked函数。 private final void realStartSer...

2018-04-19 16:29:03 1951

原创 startService启动流程---Service已经启动

在Service启动流程(startService)的最后,分析了在调用startService时可能存在的三种情况,本文分析第一种情况—Service已经启动。 Service启动流程(startService)中已经说明了Service已经启动时会执行函数sendServiceArgsLocked(r, false),接下来我们会分段分析这个函数。private final void...

2018-04-19 15:26:10 1382

原创 Service启动流程(startService)

前面分析了Activity的启动流程,下面开始分析Service的启动,本文分析的是startService的流程,android的版本为4.1.2@Overridepublic ComponentName startService(Intent service) { warnIfCallingFromSystemProcess(); return startServiceC...

2018-04-19 14:10:04 1389

原创 ActivityThread performLaunchActivity

ActivityThread performLaunchActivity今天就想单独分析下这个函数,理解这个函数对于我们理解Activity的生命周期还是很有帮助的,这个函数真正执行了Activity的创建,并执行了onCreate函数。 新建Activity对象private Activity performLaunchActivity(ActivityClientRecord...

2018-04-14 11:11:47 1252

原创 Activity启动流程总结---通信流程

通信概述Activity启动流程已经看完了,需要好好总结下。前面几篇描述Activity的启动流程是Activity所在应用进程未启动的情况下,直接点击Launcher界面的图标启动Activty的流,系统为android 4.1.2Activity的启动流程中,涉及到的进程有三个,Launcher, 应用进程(下文以App表示)、ActivityManangerService。他们三个进...

2018-04-11 22:03:30 607

原创 Activity启动流程(4)

在Activity启动流程(3)中,Launcher已经执行了onPause方法,并告知了ActivityManagerService,本篇就分析下ActivityManagerService收到Launcher的通知后会执行的操作。 ActivityManagerService类activityPausedpublic final void activityPaused(IBind...

2018-04-09 01:26:17 333

原创 Activity启动流程(3)

Activity启动流程(2)中详述了从Launcher启动一个应用时,ActivityManangerService进程的第一部分逻辑,这部分逻辑的主要工作总结起来就是解析即将启动的Activty信息,设置Activity Task,设置Launcher的UI逻辑,为即将启动的Activity做准备。本篇的主要内容是理解Launcher的pause过程。 在ctivity启动流程(2),A...

2018-04-03 01:09:19 188

原创 Java线程池

一直在用线程池,但是线程池的源码却没有好好研究,今天就抽时间看看,本文只是从execute函数开始分析了线程池的实现逻辑,当然还有submit等流程,但是流程实现上基本相同。先上图看下我们经常用到的线程池是什么继承关系 类之间的关系还是很好理解的,Executor作为顶层接口,声明了线程池必须实现的方法execute(command),ExecutorService继承Executor并声明...

2018-04-01 16:53:04 215

原创 Activity的启动过程(2)

在Activity启动流程(1)中,Activity的启动经过binder通信就会进入ActivityManagerService所在的进程中继续执行startActivity方法,由于后续的方法涉及的逻辑比较多,在后面的分析中我可能会把某一个函数单独拿出来分析,最后我会做一个启动流程的总结。 ok,接下来看下startActivity的实现: ActivityManangerServ...

2018-03-29 21:15:46 389 1

原创 resolveActivity解析

resolveActivity是Activity创建过程中非常重要的一个函数,会在ActivityStack的startActivityMayWait中调用。这个函数的主要作用就是根据intent去收集需要启动的activity的信息,看下函数的原型: ActivityInfo resolveActivity(Intent intent, String resolvedType, bo...

2018-03-27 18:55:01 11706

原创 Activity的启动流程(1)

一直在使用Activity,今天开始就来看下这个Activity究竟是如何启动的。 Activity分为根Activity和应用内Activity,根Activity就是我们点击手机屏幕上的icon时启动的Activity,应用内Activity就是我们应用内部跳转的Activity。今天我们从根Activity开始分析它的启动流程。 点击手机屏幕上的icon,其实就是android的Laun...

2018-03-17 02:04:04 216

原创 java代理

java代理模式

2018-03-15 22:12:44 208

原创 android SharedPreference的实现(2)

从SharedPreference中获取值以及从Editor中设置值已经在SharedPreferences的具体实现(1)中具体说明,这节的主要目的就是理解SharedPreference的commit过程。 代码1:public boolean commit() { MemoryCommitResult mcr = commitToMemory(); Shar

2018-03-13 22:17:08 213

原创 android SharedPreference的实现(1)

一直在用SharedPreferences进行数据缓存,也知道SharedPreferences使用xml文件保存缓存信息,但背后究竟是如何实现的?跟着源码一看究竟。 通常,我们在context.getSharedPreferences获得SharedPreferences,然后使用get方法根据键值获得值,使用SharedPreferences.edit获得Editor,向SharedPr...

2018-03-13 22:12:23 333

原创 System.loadLibrary分析

System.loadLibrary在加载so库的时候,我们最常用的就是loadLibrary()这个函数,我们也知道load()传递的是so文件的绝对路径,但是loadLibrary是如何找到so的呢,今天就去看下这后面发生了什么。 public static void loadLibrary(String libname) { Runtime.getRuntime().loadLibr

2018-03-08 21:40:45 4292 1

原创 Android的Handler

Android的Handler上一篇讲了android的handler通信机制,也仅仅是说了他们之间是如何工作的,但是究竟Handler, Looper, MessageQueue是如何运作的呢?今天就来分析下Handler。 构造函数Handler是Framework中一个类,他的具体路径为:android.os.Handler。看他的类定义可以发现,他就是一个普通的public class,使

2018-03-06 22:12:53 161

原创 Android通信机制--Handler

Android通信机制–HandlerHandler机制大概是android开发过程中最常遇到的通信机制,简单说就是Looper从消息队列中不断去除消息进行处理。Handler通信中最核心的组件应该就是Handler,Looper,MessageQueue,Message了,这几个组件是如何构成消息的循环呢,我们先自己写个demo看看。 private Handler mHandler;priv

2017-09-01 01:46:07 412

空空如也

空空如也

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

TA关注的人

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