自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Android启动模式

其中MainActivity是所有操作的第一个Activity1,A为standard,B为singleInstance,C为standard;A→B→C由下面的结果可知,B会单独创建一个任务站,且里面只能有他一个任务,即使是他启动的Activity也不能和他一个任务栈,没有定义affinity,所以采用默认的包名作为affinity‘的值一直点back的结果:C→A→Main→BStac...

2019-11-16 13:10:37 160

原创 android动态权限的源码解析

android 动态权限android权限的类型在android9.0中定义了很多权限,如下: <attr name="protectionLevel"> <!-- <strong>Base permission type</strong>: a lower-risk permission that gives an ...

2019-11-14 12:22:37 362

原创 android恢复出厂设置的源码解析

对于回复出厂设置,应用层能做的就是发一个广播或者直接调用RecoverySystem的一个方法,剩下的都是系统完成的。通过发广播的方式最终也是调用RecoverySystem的方法来回复出厂设置,这里以发广播的方式来恢复出厂设置一, 发送恢复出厂设置的广播,发送广播需要相应的权限 android.permission.MASTER_CLEAR Intent intent = new Int...

2019-10-18 10:43:39 2005 1

原创 android语言切换的源码逻辑

android语言的分发,会通过AMS去分发,AMS中保存着正在运行的进程,并分别分发给各个进程,各个进程在收到对应的事件的时候,会重启当前的页面,来应用config的改变,页面重启的过程中,Resource会读取当前的config,根据保存的语言属性,加载不同语言资源文件夹下的String资源,实现语言的切换流程1,预言切换的入口为LocalePicker类,他会和AMS通讯,把本地配置通过...

2019-09-27 12:07:17 830

原创 android壁纸显示逻辑

所有文章仅限自己备忘,并无他用壁纸主要分为两类,锁屏壁纸和桌面壁纸一,壁纸服务的启动壁纸服务WallpaperManagerService中,有一个内部类LifeCycle继承自SystemService,SystemServer在启动系统服务的时候,会创建LifeCycle对象并进行创建的相关逻辑,LifeCycle在onStart方法中会发布Service(publishBinderSe...

2019-09-25 12:18:29 1016

原创 Android输入法的显示逻辑

所有记录的一切,都是为了备忘,并无他意一,几个重点关注的类:InputMethodManagerService,负责管理系统的所有输入法,包括输入法service(InputMethodService简称IMS)加载及切换。InputMethodManager,控件获取焦点之后,通过InputMethodManager向 InputMethodManagerService 发出请求绑定自己到...

2019-09-17 17:05:23 790

原创 class

因为还还未想好怎么整理这篇文章,以什么为标题?,以什么为主要内容?,所以仅仅作为自己的笔记,供以后查询,也许以后,自己只是更丰富,他会成为一篇文章ParameterizedType,带有泛型的就是参数化类型,public interface ParameterizedType extends Type { //获取泛型的参数,获取到的是一个数组,里面返回泛型的具体类型,例如下面map1,返回...

2019-06-20 10:56:21 158

原创 Gson源码解析

按照一般的套路,源码的解析都是从使用开始,这一篇也不出所料,我们从简单的使用开始讲解本篇文章,但是还是不得不提一个小插曲,就是所谓的Json格式,先熟悉了Json格式才能很好的理解Json的转换一,Json的格式JSON 语法是 JavaScript 对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JSON 名称/值对"firstName" : ...

2019-06-18 21:31:33 392

原创 EventBus源码解析

前面讲的

2019-06-17 21:42:37 117

原创 butterKnife源码解析

butterKnife主要是对于注解的应用,我们先进行注解的了解一,Android注解1,元注解,使用它来注解自定义注解的注解,它是java提供的基础注解,Android有以下几种元注解@Retention:注解保留的生命周期@Target:注解对象的作用范围。@Inherited:@Inherited标明所修饰的注解,在所作用的类上,是否可以被继承。@Documented:如其名,j...

2019-06-16 13:49:50 120

原创 OKHttp源码解析

一,OKHttp的基本使用首先创建Request,然后创建okHttpClient对象,并通过他的newCall()方法创建Call(RealCall),然后调用realCall.enqueue()进行最终的网络请求,请求的结果通过callBack.onResponse进行回调。和前面分析的retrofit相比,他需要创建Request对象MediaType mediaType = Media...

2019-06-16 01:41:48 118

原创 Retrofit源码解析

一,Retrofit的基本使用1.定义一个Iservice.java接口(名字比较随意,这里只是给出一个示例,方便后续讲解原理),取自网上获取天气的示例。public interface IService { //天气网址:https://www.weather.com.cn/data/sk/101010100.html @GET("data/sk/{location}") ...

2019-06-15 18:40:43 84

原创 vim的编辑命令

vim的快捷键移动操作替换操作1.命令行模式下输入 f表示find查找,查找一个字符 例如 f(空格)查找空格2.;可以重复上一次查找f操作3.".“点,重复上一次修改的操作,可以和上面的;一起用,不断重复上面的修改4.c修改操作,例如c(空格)”,",修改空格,并进入插入模式,插入“,”上面四个命令放在一起可以进行下面的操作one two three four five six在命...

2018-12-18 10:20:39 108

原创 安装ubuntu遇到的坑

此问题是电脑显卡的驱动不支持linux导致安装的时候卡死在启动界面1. 在安装ubuntu的过程中,由于ubuntu内置了NVIDIA的第三方的开源驱动程序nouveau,所以导致在系统安装过程中就因识别到N卡而加载了第三方驱动,具体为什么卡死不太清楚,总之就是禁用掉。1&gt; 在安装的时候选择启动方式的时候,选择Install Ubuntu,点击e,编辑安装的选项2&gt; 找到开头是l...

2018-12-15 11:01:15 995

原创 shell基础命令

下面是主要能用到的tar命令的参数-C 制定目录,解压到制定的目录 等效于 --directory-c 创建压缩包-x 解压压缩包 等效于 --extract-t 查看压缩包里面的内容 等效于 --list-A 合并两个归档文件-d 比较两个归档文件的不同之处 等效于 --diff , --compare–delete 删除压缩包里面的一些东西-r 添加文件到压缩包的结尾 等效于...

2018-12-15 10:55:04 113

空空如也

空空如也

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

TA关注的人

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