摘要:
写这篇文章,主要是为了以后面试方便。因为我简历上写了,上一份工作的最大亮点是将人脸解锁的速度由1200ms优化到了600ms,所以这些内容已经回答无数遍了。但每次总觉得回答的不完整,或者说总感觉可以发挥得更好,于是这里做一些简单的总结性的记录。 阅读全文
摘要:
在刷leetcode的算法题时,HashMap需要大量使用,而且也是面试的高频问题。这里记录了HashMap一些增、删、改、查的实现细节和时间复杂度,罗列了一些比较有用的方法,以及其它的一些细节。 阅读全文
摘要:
本文总结了刷LeetCode过程中,有关树的遍历的相关代码实现,包括了二叉树、N叉树先序、中序、后序、BFS、DFS遍历的递归和迭代实现记录。 阅读全文
摘要:
1、TCP/IP协议分为哪几层?每一层主要作用是什么?为什么要分层? 应用层 传输层 网络层 数据链路层 2、HTTP请求有哪些方式? GET:用于从服务器获取资源。不会改变资源状态,无副作用,幂等。 POST:发送资源到服务器。每次POST都会在指定的URI下面创建一份资源,而不是创建URI指定的 阅读全文
摘要:
最近做项目部署时碰到一个特别需求,报重复依赖第三方库的错:Program type already present: com.google.protobuf.BlockingRpcChannel。由于花了不少时间才找到解决方案,这里特地记录一下,希望能帮到碰到相同困扰的你! 阅读全文
摘要:
Android的进程都是通过Zygote fork而来的,那这些进程的启动流程都是怎样的呢?本文将基于Android P的源码来分析Android系统框架进程SystemServer和应用程序进程的创建过程,力求完整和简洁,只关注关键流程。 阅读全文
摘要:
在打包aar时会碰到一种场景:该aar中还引用了第三方aar。这种嵌套第三方aar的aar的方式,在项目中使用时,不仅要依赖我们打包的aar,还有依赖该第三方aar,这显然不够方便。本文结合自己实际工作中碰到的问题,记录一种在aar中打包嵌套aar的方式——fataar,通过这种方式,可以将第三方aar完美融合到我们自己打包的aar中。 阅读全文
摘要:
1、以start方式启动 (1)原应用进程 AMS startService 1 public class ContextWrapper extends Context { 2 Context mBase; 3 ...... 4 protected void attachBaseContext(Co 阅读全文
摘要:
Activity的启动流程是一个资深Android工程师必须掌握的内容,也是高职级面试中的高频面试知识点,无论是从事应用层开发,还是Framework开发,其重要性都无需我多言。本文将从Android8.1源码入手,抽丝剥茧,摒弃众多的细节,而着重于关键流程的梳理,力图做到完整展示整个流程,而又能够简洁易懂。 阅读全文
摘要:
目光所及,皆有Window!Window,顾名思义,窗口,它是应用与用户交互的一个窗口,我们所见到视图,都对应着一个Window。比如屏幕上方的状态栏、下方的导航栏、按音量键调出来音量控制栏、充电时的充电界面、屏幕中间的应用显示区域(Activity)、Dialog、Toast、PopWindow、菜单等,都依附于对应的Window。可以认为Window是View的实际直接管理者,所以理解Window相关的知识,对理解Android的视图机制有很大的帮助。本文将介绍Window相关的基础知识,以及从源码的角度分析WindowManager是如何将View呈现在界面的。 阅读全文