Android面试复习
文章平均质量分 95
记录面试的知识点
narkang
一切的成功都是背后的努力和汗水
展开
-
Framework系列-Binder通信流程(二)
涉及源码\frameworks\base\core\java\android\content\ContextWrapper.java\frameworks\base\core\java\android\app\ContextImpl.java\frameworks\base\core\java\android\app\ActivityManager.java\frameworks\base\core\java\android\os\ServiceManagerNative.java\framewo原创 2020-11-01 17:29:38 · 261 阅读 · 0 评论 -
Framework系列-Binder通信流程(一)
Binder是Android进程通信过程的机制,也是非常复杂的,整个通信过程涉及到用户态和内核态,从java层到Framework层,到驱动层,以前断断续续的看了不少文章,总是不能看到本质,所以不能表达出原理思想。最近看了几篇文章,写得挺好的,所以趁此将整个过程记录下来,方便后续复习。当然也有理解不到位的,不过大致方向应该没错,想了解更多的可以看后面的链接文章。分析的源码8.0涉及源码\frameworks\base\core\java\android\content\ContextWrapper.ja原创 2020-11-01 18:09:39 · 492 阅读 · 0 评论 -
Android中常见的内存泄漏
本文转载自http://blog.csdn.net/huachao1001我们经常会在不经意间写出造成内存泄漏的代码,往往在代码上很难查出来。但是我们可以通过一些辅助工具来检测是否存在内存泄漏,比如通过AndroidStudio的monitors来查看内存的变化情况,或者是通过开源框架《LeakCanary》来检测。本文主要是从网络中搜索汇总一些常见的内存泄漏,一方面自己应对校招,另一方面以后自己写转载 2016-11-29 11:20:15 · 223 阅读 · 0 评论 -
Handler消息机制深入学习
Handler是Android消息机制中非常重要的一块,Android系统源码许多地方使用到了Handler,现在项目中许多框架底层也是通过Handler来封装的,而且面试也是必问的一块,之前面试吃过几次亏,因为了解得不够深入,所以作为Android开发程序员来说,这块是必须要掌握的,不仅是使用,而且包括源码,底层实现流程。之前就想写Handler的源码解析文章了,但是一直没有动手,因为里面有些...原创 2019-06-23 23:11:39 · 473 阅读 · 0 评论 -
并发系列--Synchronized使用与原理
前言Synchronized在多线程中使用得比较多的,这两天看了下慕课网相关课程,在此总结下其使用和原理作用:Synchronized据有可重入,不可中断性,能够保证在同一时刻最多只有一个线程执行该段代码,以达到保证并发安全的效果,内部是通过monitor来加锁和解锁的。地位:1.Synchronized是java的关键字,被java语言原生支持。2.是最基本的互斥同步手段。3.是并发编程中的元老级角色,是并发编程的必学内容。不使用并发的后果两个线程同时a++,如果不加锁,最后结果原创 2020-08-09 12:16:15 · 214 阅读 · 0 评论 -
并发系列--ThreadLocal
前言阅读ThreadLocal以前在看源码的时候会使用到,并且面试时候也会问到,最近趁空余时间看了下源码,来此总结下。ThreadLocal是线程内部的数据类,通过它可以在指定的线程中存储数据,对于其它线程是无法获取到数据。借此可以实现一些特殊功能。使用场景一、场景一 每个线程需要一个独享的对象当某些数据是以线程为作用域并且不同线程具有不同的数据副本的时候,就可以考虑采用ThreadLocal。最常见的使用场景就是Handler的Looper,它的作用域就是线程并且不同线程具有不同的Looper,原创 2020-08-08 14:36:16 · 324 阅读 · 0 评论 -
View的滑动方式
在Android中滑动是实现自定义控件的基础,同时在开发中我们也会难免遇到View的滑动处理,不管哪种滑动处理,其基本思想都是类似的。当点击事件传到View时,系统记下触摸点的坐标,手指移动时系统记下移动后触摸的坐标并算出偏移量,并通过偏移量来修改View的坐标。下面来总结下android系统中常见的滑动方案。View的坐标系在介绍View的滑动时候,先要介绍下View的坐标系View的...原创 2018-11-04 21:53:15 · 186 阅读 · 0 评论 -
View事件分发笔记
view事件分发机制一直是面试的常问点,我面试了好几次经常问到,所以这次趁此机会总结下事件分发机制的流程,已经一些注意点,这篇文章是看《Android开发艺术探索》的总结事件的传递规则事件传递的对象是MotionEvent,当事件产生后,系统就会把这个事件传递给一个具体的View,而这个过程就是分发过程,由三个很重要的方法来完成。public boolean dispatchTouchEv...原创 2018-10-20 16:29:51 · 292 阅读 · 0 评论 -
TCP网络分层与三次握手四次挥手
TCP/IP网络分层网络分层百度定义: 网络分层就是将网络节点所要完成的数据的发送或转发、打包或拆包,控制信息的加载或拆出等工作,分别由不同的硬件和软件模块去完成。这样可以将往来通信和网络互连这一复杂的问题变得较为简单。网络层次有osi和TCP/IP两种,可划分为七层因特网协议栈和五层因特网协议栈分层结构1.应用层应用层是我们经常接触使用的部分,比如常用的http协议、ftp协议...原创 2018-09-25 16:59:47 · 277 阅读 · 0 评论 -
Activity的启动模式以及栈管理
LaunchModeFlagsAMS栈管理原创 2018-08-17 13:19:23 · 696 阅读 · 0 评论 -
Android运行时机制问题解决方案
概述在Android6.0之前,用户申请的权限默认是全部同意的,有时候一个应用安装可能会申请很多不必要权限,这样无疑会让个人隐私变得容易泄露。在Android6.0之后,应用许可提示可以自己定义了,权限机制分为普通权限和危险权限,对于普通权限在清单中注册直接会同意,而对于危险权限需要用户在代码中手动申请,然后在回调中处理同意和不同意的结果。关于运行时权限的使用可以看这里,讲得还是很清楚的。...原创 2018-09-12 21:53:58 · 251 阅读 · 0 评论