首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 基础面试常常吊死在这几个问题上……

SingleInstance:与单个任务相同,但是系统不会在与此 Activity 相同任务启动任何 Activity 。如果启动了新 Activity ,则它们是单独任务完成。...这就是为什么 RecyclerView 会利用以下事实:滚动时,新行出现在屏幕上,而旧行消失屏幕上。代替为每个新行创建新视图,而是通过将新数据绑定到旧视图来对其进行回收和重用! 应聘者:我学到了!... ListView , findViewById() 滚动 ListView 期间,代码可能会频繁调用,这可能会降低性能。即使适配器返回膨胀视图以进行回收,仍然需要查找元素并进行更新。...MVC 是 Model-View-Controller 体系结构,其中模型是指数据模型类。该视图引用xml文件,并且控制处理业务逻辑。这种体系结构问题是单元测试。...控制Android api紧密耦合,因此很难进行单元测试。由于视图和控制紧密耦合,因此模块化和灵活性是一个问题。如果我们更改视图,则控制逻辑也应更改。维护也是一个问题。

2K20

Android面试题集锦(2019最新总结)

3.同一个优先级下,谁先启动快,谁将先接收到广播。 7.Android数据存储方式有哪些?...Android3.0之前2种动画,3.0之后3种动画 帧动画(Frame Animation):类似于一帧帧图片组成电影,xml多张图片组成,UI线程播放这个xml形成动画。...MVC:Model(数据模型)、View(视图)、(Controller)控制(activity或者fragment),View将操作反馈给Activity,Activitiy去获取数据数据通过观察者模式刷新给...JVM 但是Android4.4引入了ART,也是 Android 5.0 及更高版本默认 Android 运行时。... ART 暂停期间仍进行阶段包括扫描脏卡片以及重新标记线程根,这些操作有助于缩短暂停时间。 4.相对于 Dalvik,ART GC 改进最后一个方面是粘性 CMS 回收增加了 GC 吞吐量。

30610
您找到你想要的搜索结果了吗?
是的
没有找到

Android面试

Android开发何时使用多进程 要想知道如何使用多进程,先要知道Android多进程概念。一般情况下,一个应用程序就是一个进程,这个进程名称就是应用程序包名。...重用时,会让该实例回到栈顶,因此它上面的实例将会被移出栈。如果栈不存在该实例,将会创建新实例放入栈。使用场景如浏览主界面。...创建一个静态Handler内部类,然后对Handler持有的对象使用弱引用,这样回收时也可以回收Handler持有的对象,这样虽然避免了Activity泄漏,不过Looper线程消息队列还是可能会有待处理消息...为了数据传输安全,HTTPSHTTP基础上加入了SSL协议,SSL依靠证书来验证服务身份,并为浏览和服务之间通信加密。...要想使应用程序数据公开化,可通过2种方法:创建一个属于你自己Content provider或者将你数据添加到一个已经存在Content provider,前提是有相同数据类型并且有写入Content

91840

JavaScript基础修炼(14)——WebRTC浏览如何获得指定格式PCM数据

浏览音频采集处理 浏览音频处理涉及到许多API协作,相关概念比较多,想要对此深入了解读者可以阅读MDN【Web 媒体技术】篇,本文中只做大致介绍。...浏览音频处理术语称为AudioGraph,其实就是一个**【中间件模式】**,你需要创建一个source节点和一个destination节点,然后它们之间可以连接许许多多不同类型节点,source...但无论如何,相关基本原理是一致。...首先在上面示例向输出通道透传数据时,改为自己存储数据,将输入数据打印控制台后可以看到缓冲区大小设置为4096时,每个chunk获取到输入数据是一个长度为4096Float32Array定型数组...公式里output很明显是一个ES6-ArrayBufferDataView视图,用它可以实现混合形式内存读写,最后true表示小端系统读写,对这一块知识不太熟悉读者可以阅读阮一峰前辈ES6

3.6K10

2019 Android 高级面试题总结 从java语言到AIDL使用与原理

子线程往消息队列发送消息,并且往管道文件写数据,主线程即被唤醒,从管道文件读取数据,主线程被唤醒只是为了读取消息,当消息读取完毕,再次睡眠。因此loop循环并不会对CPU性能有过多消耗。...利用这种特性,即使是上千张图片,也只会仅仅只需要占用屏幕所能够显示图片数量内存大小,但复用存在一些限制,具体体现在:Android 4.4之前只能重用相同大小Bitmap内存,而Android...SurfaceView:基于view视图进行拓展视图类,更适合2D游戏开发;是view子类,类似使用双缓机制,线程更新画面所以刷新界面速度比view快,Camera预览界面使用SurfaceView...-说下binder序列化与反序列化过程,与使用过程 是否接触过JNI/NDK,java如何调用C语言方法 -如何查看模拟SP与SQList文件。如何可视化查看布局嵌套层数与加载时间。...说下java虚拟机理解,回收机制,JVM是如何回收对象,有哪些方法等 一些java与Android源码相关知识等 大学成绩 大学那些专业,你哪方面学得好 单片机,嵌入式,电子线路。

78620

Android知识点基础篇(一)

所以可以通过Application来进行一些,数据传递,数据共享,数据缓存等操作。   Application如果保存对象有导致内存泄漏风险。...内存泄漏(Memory leak):当一个对象不在使用了,本应该被垃圾回收(JVM)回收,但是这个对象由于被其他正在使用对象所持有,造成无法被回收结果。   ...标准广播发出后,所有接收都能够接收到,并且接收无法终止或干扰其他接收接收。而有序广播发出同一刻,只会有一个广播接收能够接受,并且自行决定是否传递给下一个。 9....从源码可知,Looper是一个死循环循环处理MessageQueueMessage。...由最顶层ActivityViewGroup循环子View分发Down事件,如果子View包含ViewGroup,则循环ViewGroup子View同样分发Down事件。

53640

Android必看面试题——基础篇

Android Studio 里引入依赖: compile 'com.google.code.gson:gson:2.7' 值得注意是实体类变量名称必须和json值名字相同。...DOM解析 优点: 1.XML树在内存完整存储,因此可以直接修改其数据结构. 2.可以通过该解析随时访问XML树任何一个节点. 3.DOM解析API使用上也相对比较简单....Android2.3时代,Bitmap引用是放在堆,而Bitmap数据部分是放在栈,需要用户调用recycle方法手动进行内存回收,而在Android2.3之后,整个Bitmap,包括数据和引用...看起来MVVM很好解决了MVC和MVP不足,但是由于数据视图双向绑定,导致出现问题时不太好定位来源,有可能数据问题导致,也有可能业务逻辑视图属性修改导致。...111、RemoteViews实现和使用场景 112、对服务众多错误码处理(错误码有好几万个) 113、adb常用命令行 114、Android如何查看一个对象回收情况?

2.7K41

Facebook构建高性能Android视频组件实践之路

所有新闻提要视频都是自动播放管理上注册,但并不是所有的视频都需要自动播放功能(例如,全屏视频播放视频)。...资源回收利用 Android内置RecyclerView可以基于视图类型将其保存在不同缓存池中,这对于创建了很多不同类型视图用户界面来说可能会是一个问题。...相比之下,Litho回收系统复用了更小用户界面构建模块,比如文本或图片,而不是整个视图。通过使用一个核心视频组件,同样视图可以被循环使用于所有的视频新闻类型。...更有效回收利用减少了对象分配,进而提高了滚动性能。 预分配 新闻提要第一个视频新闻不能循环使用预先存在视频视图,因为之前没有视图。...视频组件主要回调方法包括: onPrepare-开始预取视频。视频组件出现之前,在后台线程上触发。 onMount-初始化视频播放。组件首次配置其视图属性时触发。

1.5K100

系统剖析Android内存泄漏

垃圾回收回收非存活对象,并释放对应内存空间。 预备知识2:JavaGC 和C++不同,对象释放不需要手动完成,而是由垃圾回收自动完成。...),引用计数就会减1 基于这种算法垃圾回收效率较高 循环引用问题引用计数算法垃圾回收无法解决。...上面的垃圾回收,我们提到两个概念,一个是GC根节点,另一个是强引用 Java,可以作为GC 根节点有 类,由系统类加载加载类。...长时间持有Activity实例 Android,Activity是我们常用组件,通常情况下,一个Activity会包含了一些复杂UI视图,而视图中如果含有ImageView,则有可能会使用比较大...Tree来自MAT官方网站 一些链接 垃圾回收如何处理循环引用 译文:理解Java弱引用 AndroidHandler引起内存泄露 避免AndroidContext引起内存泄露 Google

1.3K30

2021年Android面试题及答案收集(不断更新)

以下情况垃圾回收机制会被触发: (1)所有实例都没有活动线程访问 ;(2)没有其他任何实例访问循环引用实例;(3)Java中有不同引用类型。...,仅次于寄存,栈数据可以共享,但其数据大小和生存期必须是确定; 栈内存和堆内存都属于Java内存一种,系统会自动去回收它,但对于堆内存开发人员一般会自动回收。...用户与视图交互,视图接收并反馈用户动作,视图把用户请求传给相应控制,由控制决定调用哪个模型,然后由模型调用相应业务逻辑对用户请求进行加工处理,如果需要返回数据,模型会把相应数据返回给控制...,由控制调用相应视图,最终由视图格式化和渲染返回数据,一个模型可以有多个视图,一个视图可以有多个控制,一个控制可以有多个模型。...,随后一个不确定时间被垃圾回收收走(释放掉)。

83120

Flutter 2.5正式版发布,带来重大更新

通常,作为消息传递一部分,从消息编解码删除不必要副本可将延迟减少高达 50%,不过具体数据取决于消息大小和设备(#25988,#26331)。...例如,我们可以文本选择以及能够处理键盘事件后停止事件传播。...对齐布局资源管理和组件树配色方案: 现在可以更轻松地从布局资源管理和 Widget 树识别相同 Widget。...例如,屏幕截图中“列” Widget 位于布局浏览蓝色背景上,并且 Widget 树视图中具有蓝色图标。...属性已被弃用 手势识别清理 用 collate 替换 AnimationSheetBuilder.display 使用 HTML 插槽 Web 呈现平台视图 将 LogicalKeySet 迁移到

4.3K50

2020年Android初级面试题一年汇总出炉,吃透它!

()设置线程优先级 10.内存泄露如何查看和解决 概念:有些对象只有有限生命周期,当他们任务完成之后,它们将被垃圾回收,如果在对象生命周期本该结束时候,这个对象还被一系列引用,着就会导致内存泄露...两个应用manifest配置相同shartdUserId属性,A应用正常保存数据,B应用createPackageContext("com.netease.nim.demo", CONTEXT_IGNORE_SECURITY...; onPause(): 表示 Activity 正在停止,此时可做一些 存储数据停止动画等工作,但是不能太耗时,因为这会影响到新 Activity显示,onPause 必须先执行完,新 Activity...onResume 才会执行; onStop(): 表示 Activity 即将停止,可以做一些稍微重量级回收工作,比如注销广播接收、关闭网络连接等,同样不能太耗时; onDestroy(): 表示...先 remove 掉相同 id 所有 fragment,然后add 当前这个 fragment,而 add 是覆盖前一个fragment。

1.2K30

Android面试大纲(集合)

为了解决这一问题,Google提供了HandlerThread,HandlerThread是在线程创建一个Looper循环,让Looper轮询消息队列,当有耗时任务进入队列时,则不需要开启新线程,原有的线程执行耗时任务即可...使用方法 创建Service继承自IntentService 覆写构造方法和onHandlerIntent()方法 onHandlerIntent()执行耗时操作 10 视图工作机制面试题 Android...,因为垃圾回收会自动收集不可用Bitmap对象进行回收 recycle方法会判断Bitmap不可用情况下,将发送指令到垃圾回收,让其回收native层和Java层内存,则Bitmap进入dead...,如:new出来对象和数组,不使用时候由Java回收自动回收 3、Android解决内存泄漏例子 单例造成内存泄漏:单例,使用context.getApplicationContext(...高,Parcelable不能使用在要将数据存储硬盘上情况 4、避免UI线程做繁重操作 21 架构模式面试题 Android基础——框架模式MVC安卓实践 http://blog.csdn.net

1.1K20

史上最全Android面试题集锦

Android基本知识点 1、常规知识点 1、 Android类加载 Android开发,不管是插件化还是组件化,都是基于Android系统类加载ClassLoader来设计。...当然,onPause方法我们可以做一些数据存储或者动画停止或者资源回收操作,但是不能太耗时,因为这可能会影响到新Activity显示——onPause方法执行完成后,新ActivityonResume...视图层(View):对应于Activity或Fragment,负责视图部分展示和业务逻辑用户交互 控制层(Presenter):负责完成View层与Model层间交互,通过P层来获取M层数据后返回给...根集(Java栈引用对象、方法区中常量池中引用对象、本地方法引用对象等。JVM垃圾回收时候,会检查堆中所有对象是否被这些根集对象引用,不能够被引用对象就会被垃圾回收回收。)...5.2、 为什么使用双亲委托模型 JVM判断两个class是否相同时,不仅要判断两个类名是否相同,还要判断是否是同一个类加载加载

72040

Flutter 2.5正式版发布,带来多项重大更新

通常,作为消息传递一部分,从消息编解码删除不必要副本可将延迟减少高达 50%,不过具体数据取决于消息大小和设备(#25988,#26331)。...例如,我们可以文本选择以及能够处理键盘事件后停止事件传播。...对齐布局资源管理和组件树配色方案: 现在可以更轻松地从布局资源管理和 Widget 树识别相同 Widget。...例如,屏幕截图中“列” Widget 位于布局浏览蓝色背景上,并且 Widget 树视图中具有蓝色图标。...集成测试是设备上运行整个应用程序一种测试方式,测试代码位于 integration_test 目录,并使用与testWidgets() 单元测试相同功能。

3.5K00

ApacheCN 安卓译文集 20211225 更新

十三、让安卓小部件栩栩如生 十四、安卓对话窗口 十五、处理数据和生成随机数 十六、适配器和回收 十七、数据持久化和共享 十八、本地化 十九、动画和插值 二十、绘制图形 二十一、线程和启动实时绘图应用...库 六、回收视图 七、安卓权限和谷歌地图 八、服务、工作管理和通知 九、JUnit、Mockito 和 Espresso 单元测试和集成测试 十、安卓架构组件 十一、持久化数据 十二、ButterKnife...五、了解游戏循环和帧速率 六、提高 2D/3D 游戏性能 七、使用着色 八、性能和内存优化 九、测试代码和调试 十、安卓虚拟现实游戏中应用范围 十一、使用 C++ 和 OpenGL 开发安卓游戏...三、了解安卓设备上数据存储 四、从安卓设备逻辑提取数据 五、从安卓设备物理提取数据 六、从安卓设备恢复删除数据 七、安卓应用取证分析 八、安卓取证工具概述 精通 Android Studio3...安卓增强现实应用开发 零、前言 一、增强现实概念和工具 二、观察世界 三、叠加世界 四、定位世界 五、与好莱坞相同——实物上虚拟 六、让它具有互动性——创造用户体验 七、深入阅读和提示 Android

7.1K20

备战金九银十:BAT大厂最爱问Android核心面试百题详细解析!

基于view视图进行拓展视图类,更适合2D游戏开发,是view子类,类似使用双缓机制,线程更新画面所以刷新界面速度比view快。...activity实例,调用finish()方法结束 26.如果后台Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?...基于以上不同特点我们使用使用一定要结合着生命周期操作我们视图数据。 56.Fragment 如何实现类似 Activity 栈压栈和出栈效果?...但是 2.3之后,Bitmap 对象和像素数据都是存在Heap ,GC 可以回收其内存。...传统webform写文件上传,其实浏览所做就是将我们数据进行解析组拼成字符串,以流方式发送到服务,且上传文件用都是POST方式,POST方式对大小没什么限制。

1.2K30

Android性能优化:手把手带你全面了解 内存泄露 & 解决方案

前言 Android,内存泄露现象十分常见;而内存泄露导致后果会使得应用Crash 本文 全面介绍了内存泄露本质、原因 & 解决方案,最终提供一些常见内存泄露分析工具,希望你们会喜欢。...内存回收策略 步骤1:Application Framework 决定回收进程类型 Android进程 是托管;当进程空间紧张时,会 按进程优先级低->>高顺序 自动回收进程 Android...:o=null) // 但集合List 仍然引用该对象,故垃圾回收GC 依然不可回收该对象 解决方案 集合类 添加集合元素对象 后,使用后必须从集合删除 由于1个集合中有许多元素,故最简单方法...启动频繁Activity,为了避免重复创建相同数据资源,会在Activity内部创建一个非静态内部类单例 b....& 可通过视图直观地查看可能造成这种结果对象 具体使用:MAT使用攻略 6.2 Heap Viewer 定义:一个 Java Heap 内存分析工具 作用:查看当前内存快照 可查看 分别有哪些类型数据堆内存总

55130

Android性能优化之内存泄漏,你想要这里都有~

前言 Android,内存泄露现象十分常见;而内存泄露导致后果会使得应用Crash 本文 全面介绍了内存泄露本质、原因 & 解决方案,最终提供一些常见内存泄露分析工具,希望你们会喜欢。...内存回收策略 步骤1:Application Framework 决定回收进程类型 Android进程 是托管;当进程空间紧张时,会 按进程优先级低->>高顺序 自动回收进程 Android将进程分为...:o=null) // 但集合List 仍然引用该对象,故垃圾回收GC 依然不可回收该对象 解决方案 集合类 添加集合元素对象 后,使用后必须从集合删除 由于1个集合中有许多元素,故最简单方法...启动频繁Activity,为了避免重复创建相同数据资源,会在Activity内部创建一个非静态内部类单例 b....& 可通过视图直观地查看可能造成这种结果对象 具体使用:MAT使用攻略 6.2 Heap Viewer 定义:一个 Java Heap 内存分析工具 作用:查看当前内存快照 可查看 分别有哪些类型数据堆内存总

70230

Android面试常问基础知识点(附详细解答)

新Activity启动前被系统调用保存现有的Activity持久数据停止动画等。...,观察特定Uri引起数据库变化,继而做一些相应处理,类似于数据触发,当ContentObserver所观察Uri发生变化时,便会触发它。...所以这种动态注册广播接收适合特定组件特定消息处理。 22、manifest 和代码如何注册和使用BroadcastReceiver?...我们平时见到android数据库操作一般都是程序开始时创建一个空数据库,然后再进行相关操作。如果我们需要使用一个已有数据数据库怎么办呢?...绘制时候,surfaceCreated()方法开启子线程进行绘制,而子线程使用一个while(mIsDrawing)循环来不停进行绘制,绘制逻辑通过lockCanvas()方法获取Canvas

2.3K31
领券