面试突击之Android
一年一度的跳槽季节,每次都要去重新温习一遍的安卓基础知识专栏
Jack_King007
永远抱着一个谦虚的心,做一个小菜鸟,去学习知识
展开
-
十、Jvm结构和泄露溢出
Java不像C/C++自己掌握对象的释放,一般都是jvm包管了而内存泄露是怎么发生的呢那到底java内存结构是怎么样的呢?Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。我们先看看jvm内存结构吧1. java运行时数据区域1.1原创 2017-11-15 16:24:27 · 424 阅读 · 2 评论 -
一、Android消息机制(handler源码探索)
handler源码探索Looper(轮询器)大家都说Looper在android一启动就会启动,但是不看源码,也不知道真假ActivityThreadpublic static void main(String[] args) { //other code.. 我们只看有用的部分,其他暂略过Looper.prepareMainLooper(); //准备looper,注,绑定的为当前主线程Ac原创 2017-09-19 17:16:49 · 440 阅读 · 0 评论 -
二、Android View绘制流程
[TOC]PhoneWindow 是 Android 系统中最基本的窗口系统,每个 Activity 会创建一个。PhoneWindow 是 Activity 和 View 系统交互的接口。DecorView 本质上是一个 FrameLayout,是 Activity 中所有 View 的祖先PhoneWindow是Window的子类DecorView是整个ViewTree的最顶层Vi...原创 2019-02-26 18:17:15 · 203 阅读 · 0 评论 -
三、基础之Dalvik和JVM的认识
先介绍两个名词的意思:寄存器:CPU内部用来存放数据的一些小型存储区域栈:内存….内分分为堆和栈想知道更多可以看看下面文章栈式虚拟机和寄存器式虚拟机的对比为什么寄存器比内存快? 在说Dalvik和JVM区别我觉得区别就在一个是Dalvik 基于寄存器,而 JVM 基于栈,出生不同决定以后用处不同程序运行过程Java类会被编译成一个或者多个字节码文件(.class)然后打包到JAR文件Jav原创 2017-11-01 17:11:35 · 367 阅读 · 0 评论 -
四、Java基础之GC垃圾回收的历史
垃圾回收思路:发现无用信息对象回收被无用对象占用的内存空间,使该空间可被程序再次使用。我们先来看看JVM的内存结构Ⅰ Jvm(Java虚拟机)主要管理两种类型内存:堆和非堆。堆:运行时数据区域,所有类实例和数组的内存均从此处分配,由垃圾回收器的自动内存管理系统回收堆内存分为两大部分:新生代和老年代。比例为1:2。老年代:主要存放应用程序中生命周期长的存活对象。新生代:一个Eden区和两个Sur原创 2017-11-01 16:33:35 · 1238 阅读 · 0 评论 -
五、跨进程通信的代表Binder
android 跨进程通信的代表BinderBinder为什么能跨进程通信?android为什么选择binder而不是Socket 再开始本文之前,这两个问题你可以先思考下,这两个问题在Binder及其重要前言想想如果在同一进程,你想访问对方内部的函数变量是很简单的。但是一旦不在一个进程,如Application1进程去访问AMS进程的东西,你就无法”直接”访问,你需要一个东西帮你转接一下。原创 2017-11-02 22:53:59 · 368 阅读 · 0 评论 -
六、Activity生命周期与启动模式
文章目录1、生命周期1.1 、正常使用的周期方法1.1 、非正常周期方法 onSaveInstanceState() 与 onRestoreInstanceState()1.3、来个例子实战下2、启动模式关于activity的主要就是生命周期和启动模式,这两个贯穿你开发的整个周期关键词联想:两两对应,普通,栈顶内独1、生命周期先看图,以前开发一直百度找这张图1.1 、正常使用的周期...原创 2019-02-28 14:38:03 · 232 阅读 · 0 评论 -
七、Service知识速览
1、Service的定义及作用Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件1.1、作用例子:播放音乐下载即使如此也要记住他依然是运行在主线程的东西,他依赖于进程,进程关闭,他也随着关闭2、启动方式和生命周期2.1、bindService-交互任务当应用组件通过调用 bindService() 绑定到服务时,服务即处于“绑定”状态。绑定服...原创 2019-02-28 23:52:06 · 361 阅读 · 0 评论 -
八、BroadcastReceiver知识速览
文章目录1、BroadcastReceiver 定义和作用2、注册方式:静态方式、动态方式2.1、静态注册2.2、动态注册3、BroadcastReceiver注册与取消的时机4、BroadcastReceiver的不同类型1、BroadcastReceiver 定义和作用消息型组件,用于在不同组件乃至不同应用之间传递消息2、注册方式:静态方式、动态方式2.1、静态注册使用方式:配置文件...原创 2019-03-01 14:45:20 · 420 阅读 · 0 评论 -
九、View事件传递机制
事件传递机制:责任链机制,从上到下,然后冒泡回到起点事件传递围绕这三个方法进行dispatchTouchEvent -事件的分发onInterceptTouchEvent - 阻止分发,返回true子view都接受不到事件onTouchEvent -在dispatchTouchEvent使用,用来处理点击事件,返回结果表示是否消费传递流程PhoneWindow -> Dec...原创 2019-03-01 14:46:50 · 296 阅读 · 0 评论