![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android源码解析
秋风扫得落叶归
这个作者很懒,什么都没留下…
展开
-
Android启动模式
其中MainActivity是所有操作的第一个Activity 1,A为standard,B为singleInstance,C为standard;A→B→C 由下面的结果可知,B会单独创建一个任务站,且里面只能有他一个任务,即使是他启动的Activity也不能和他一个任务栈,没有定义affinity,所以采用默认的包名作为affinity‘的值 一直点back的结果:C→A→Main→B Stac...原创 2019-11-16 13:10:37 · 157 阅读 · 0 评论 -
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 · 352 阅读 · 0 评论 -
android恢复出厂设置的源码解析
对于回复出厂设置,应用层能做的就是发一个广播或者直接调用RecoverySystem的一个方法,剩下的都是系统完成的。通过发广播的方式最终也是调用RecoverySystem的方法来回复出厂设置,这里以发广播的方式来恢复出厂设置 一, 发送恢复出厂设置的广播,发送广播需要相应的权限 android.permission.MASTER_CLEAR Intent intent = new Int...原创 2019-10-18 10:43:39 · 1994 阅读 · 1 评论 -
android语言切换的源码逻辑
android语言的分发,会通过AMS去分发,AMS中保存着正在运行的进程,并分别分发给各个进程,各个进程在收到对应的事件的时候,会重启当前的页面,来应用config的改变,页面重启的过程中,Resource会读取当前的config,根据保存的语言属性,加载不同语言资源文件夹下的String资源,实现语言的切换 流程 1,预言切换的入口为LocalePicker类,他会和AMS通讯,把本地配置通过...原创 2019-09-27 12:07:17 · 815 阅读 · 0 评论 -
android壁纸显示逻辑
所有文章仅限自己备忘,并无他用 壁纸主要分为两类,锁屏壁纸和桌面壁纸 一,壁纸服务的启动 壁纸服务WallpaperManagerService中,有一个内部类LifeCycle继承自SystemService,SystemServer在启动系统服务的时候,会创建LifeCycle对象并进行创建的相关逻辑,LifeCycle在onStart方法中会发布Service(publishBinderSe...原创 2019-09-25 12:18:29 · 1012 阅读 · 0 评论 -
Android输入法的显示逻辑
所有记录的一切,都是为了备忘,并无他意 一,几个重点关注的类: InputMethodManagerService,负责管理系统的所有输入法,包括输入法service(InputMethodService简称IMS)加载及切换。 InputMethodManager,控件获取焦点之后,通过InputMethodManager向 InputMethodManagerService 发出请求绑定自己到...原创 2019-09-17 17:05:23 · 780 阅读 · 0 评论 -
EventBus源码解析
前面讲的原创 2019-06-17 21:42:37 · 115 阅读 · 0 评论 -
butterKnife源码解析
butterKnife主要是对于注解的应用,我们先进行注解的了解 一,Android注解 1,元注解,使用它来注解自定义注解的注解,它是java提供的基础注解,Android有以下几种元注解 @Retention:注解保留的生命周期 @Target:注解对象的作用范围。 @Inherited:@Inherited标明所修饰的注解,在所作用的类上,是否可以被继承。 @Documented:如其名,j...原创 2019-06-16 13:49:50 · 117 阅读 · 0 评论 -
OKHttp源码解析
一,OKHttp的基本使用 首先创建Request,然后创建okHttpClient对象,并通过他的newCall()方法创建Call(RealCall),然后调用realCall.enqueue()进行最终的网络请求,请求的结果通过callBack.onResponse进行回调。和前面分析的retrofit相比,他需要创建Request对象 MediaType mediaType = Media...原创 2019-06-16 01:41:48 · 113 阅读 · 0 评论 -
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 · 83 阅读 · 0 评论 -
Gson源码解析
按照一般的套路,源码的解析都是从使用开始,这一篇也不出所料,我们从简单的使用开始讲解本篇文章,但是还是不得不提一个小插曲,就是所谓的Json格式,先熟悉了Json格式才能很好的理解Json的转换 一,Json的格式 JSON 语法是 JavaScript 对象表示法语法的子集。 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON 名称/值对 "firstName" : ...原创 2019-06-18 21:31:33 · 387 阅读 · 0 评论