Android
文章平均质量分 86
伟子时代
这个作者很懒,什么都没留下…
展开
-
OkHttp源码解析(下)
接着上一篇文章《OkHttp源码解析(上)》继续分析缓存拦截器:缓存拦截器@Override public Response intercept(Chain chain) throws IOException { // 通过url的md5数据 从文件缓存查找(GRT请求才有缓存) Response cacheCandidate = cache != null ? cache.get(chain.request()) : null; long now = Syst原创 2021-12-03 11:54:42 · 1163 阅读 · 0 评论 -
OkHttp源码解析(上)
导语学过Android开发的同学都知道,我们使用网络请求获取服务器的数据时,通常使用的是封装好的Retrofit框架,这个框架很好的帮助我们对网络的发起,以及返回的数据进行操作,我们使用起来十分方便,对于Retrofit来说,我们仅仅看到了它的表面,如何正确使用等,其内部还是要借助OkHtttp来请求网络的,Retrofit只是对OkHttp进行了再次的封装,而且Retrofit不具备网络请求功能,只是在OkHtttp的外表又套了一层,对返回的数据支持RxJava转换和Gson解析。真正起到网络请求的还是原创 2021-12-02 16:36:51 · 2435 阅读 · 0 评论 -
深入理解Android跨进程通信—Binder机制
深入理解Android跨进程通信-Binder机制说到binder,很多Android开发者会觉得很复杂,因为binder横跨了整个Android系统架构,从frameworks到kernel,binder无处不在。在日常的面试过程中,binder也是一个绕不开的话题。为啥binder这么重要,跨进程通信方式已经有了管道、socket、共享内存等,为啥Android还要使用binder。今天,我们带着这些问题深入了解下Binder机制。引子日常应用我们平时开发中,可能一些代码反复写了N多次了,所以写原创 2021-09-02 15:23:59 · 810 阅读 · 0 评论 -
app启动流程——基于Android11分析
前两天分析了Android系统的启动流程后,我们知道Android系统启动最终会走到Launcher,也就是我们所看见的”桌面“,app的启动是从用户点击桌面的icon开始的,当我们点击屏幕上的软件图标时,就可以打开这个软件,这个过程看似也很简单,其实中间包含了很多的底层交互,接下来,我会从源码角度一步一步分析这个流程,看了不明白的,欢迎来打我。。启动流程一(Launcher)我们手机桌面——Launcher其实也是一个app,我们所看见的是它的一个activity,里面是一个RecyclerView包原创 2021-05-26 10:25:12 · 1116 阅读 · 7 评论 -
Android系统启动流程
Android系统启动流程前言了解Android系统启动,最直接的方式就是拿一台手机,当我们要开机使用时,需要怎么做?这个问题看起来很无知,但凡玩过手机的人都知道,按电源键开机嘛。对,是按电源键开机,屏幕会弹出手机品牌logo,过一会就进入桌面了。这是我们所看到的现象,你可知道其中的缘由吗?虽然现象很简单,过程也很快,但是里面是通过多少个流程走到桌面这一步呢,今天就带大家来分析下这看似简单,但又不简单的启动流程。既然要分析流程,那我们就从最开始(按电源键开始)来分析,当我们按下电源键,会执行哪些指令,原创 2021-05-21 17:14:40 · 1131 阅读 · 9 评论 -
Service的启动流程——基于Android11
Service的启动流程——基于Android11最近在重温Android系统的相关知识点,我们都知道Android有四大组件,Activity、Service、Broadcast Receive、Content Provider,像对比其他知识点来说,重温四大组件最好的方式就是跟着源码再走一遍,说起看源码,我们可能会比较头疼,这是因为一旦扎进去,就会陷在代码的海洋里,不知所措,其实分析源码,最忌讳的是一上来就深挖。这样很难出来,不仅费时间,而且也提取不到有用的信息,最好的方式就是先按照主线流程走一遍,先原创 2021-05-18 11:04:15 · 1051 阅读 · 1 评论 -
Android 项目中常用的开源框架
Android 项目中常用的开源框架:Android 之神 Jake WhartonJ神的github:https://github.com/JakeWharton网络请求框架 Retrofit + Gson + Rxjavaimplementation 'com.squareup.retrofit2:retrofit:2.9.0'implementation 'com.squareup.retrofit2:converter-gson:2.5.0'implementation 'com原创 2021-04-26 17:25:28 · 245 阅读 · 0 评论 -
Android Studio下提交代码到github
Android Studio下提交代码到github1.首先下载Git,将路径添加进AS工具中。然后点击Test键,验证Git是否可用,以及查看Git的版本号。2.在gihub上创建账号,如果这一步完成的话,在AS下登录github。账号密码对应github的账号和密码,我当时登录遇到这个错误:贴出来给大家一个解决方案:这样登录会报错,我们看到右上角有一个Use Token按钮,我们使用token来登录。登录步骤如下:(1)打开github,进入Settings(2)点击Develo原创 2021-04-26 14:55:44 · 335 阅读 · 0 评论 -
Glide源码大揭秘
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-04-07 18:06:58 · 201 阅读 · 0 评论 -
Handler面试那些事
Handler面试那些事:1.一个线程有几个handler?无数个,任何地方都可以new handler(),handler机制只有一个。2.一个线程有几个Looper?如何保证?一个,ThreadLocal,在prepare时候先get,如果创建过,则抛异常。private static void prepare(boolean quitAllowed) { if (sThreadLocal.get() != null) { throw new Runti原创 2021-03-04 20:40:36 · 155 阅读 · 2 评论 -
多线程与Android线程性能优化(二)
线程中止线程自然终止要么是 run 执行完成了,要么是抛出了一个未处理的异常导致线程提前结束。stop 暂停、恢复和停止操作对应在线程 Thread 的 API 就是 suspend()、resume() 和 stop()。但是这些API 是过期的,也就是不建议使用的。不建议使用的原因主要有:以 suspend() 方法为例,在调用后,线程不会释放已经占有的资源(比如锁),而是占有着资源进入睡眠状态,这样容易引发死锁问题。同样,stop() 方法在终结一个线程时不会保证线程的资源正常释放,通常是原创 2020-12-02 01:47:52 · 232 阅读 · 0 评论 -
多线程与Android线程性能优化(一)
基本概念1、CPU核心数和线程数的关系首先我们做开发的时候,买台式或者笔记本的时候,都会看几核几线程,例如CPU是4核8线程等等。核心数就是一个计算机的处理器,在计算机的早期,是没有多核这个概念的,引入多核的概念是因为按照摩尔定律,计算机芯片里面晶体管的密度每18个月会翻一番,但是翻到我们现在这个地步时,CPU的晶体管的制程到了3nm,到了极限,翻不动了(这个原因涉及到量子物理里面的量子隧穿),为了继续提高转速,提出了多核心的概念,也就是说在一块物理芯片上集成多个CPU,每个CPU是单独的,也单独执行原创 2020-11-30 00:04:10 · 772 阅读 · 1 评论 -
String StringBuffer StringBuilder的区别
String StringBuffer StringBuilder的区别文章目录系列文章目录 前言 一、String是什么? 二、StringBuffer又是什么? 三、StringBuilder 四、Java9改进一、String是什么?百度百科中对String的解释是这样的:string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为stri...原创 2020-10-16 11:09:00 · 205 阅读 · 0 评论 -
Android的死机、重启问题分析方法
Android的死机、重启问题分析方法原文链接:https://blog.csdn.net/jinlu7611/article/details/505923851.死机现象1.1 死机定义当手机长时间无法再被用户控制操作时,我们称为死机。在这里我们强调长时间,如果是短时间,归结为性能问题。1.2 死机表现用户操作手机无任何响应,如触摸屏幕,按键操作等。手机屏幕黑屏,无法点亮屏幕。手机界面显示内容和用户输入不相干。系统简图当用户对手机进行操作时,对应的转载 2020-06-01 10:26:16 · 7656 阅读 · 1 评论