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

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

17.Java为什么String类要设计成不可变的 java中将String类设计成不可变的是综合考虑到各种因素的结果,需要综合内存、同步、数据结构、以及安全等方面的考虑。...链表:是动态申请内存空间的,不需要像数组需要提前申请好内存的大小,链表只需使用的时候申请就可以了,根据需要动态的申请或删除内存空间,对于数据增加和删除以及插入比数组灵活,链表数据在内存可以在任意的位置...,Android主要使用handler,handler通过调用sendMessage方法,将保存好的消息发送到MessageQueue,而Looper对象不断地调用loop方法,从MessageQueue...实例将会被关闭,关闭的顺序与启动的顺序相同; SingleInstance:该启动模式会在启动一个Activity时,启动一个新的任务栈,将该Activity实例放置在这个任务栈,并且该任务栈不会再保存其他的...Java内存分配的常量池 (constant pool):常量池指的是在编译期被确定,保存在已编译的.class文件的一些数据

86620

Android入门教程 | Fragment 基础概念

本例,此值为 false,因为系统已将扩展布局插入 container,而传递 true 值会在最终布局创建一个多余的视图组。) 接下来,需将该片段添加到您的 Activity 。...Java代码加载Fragment 或者,通过编程方式将片段添加到某个现有 ViewGroup。 Activity 运行期间,您可以随时将片段添加到 Activity 布局。...该回调我们可以将 context 转化为 Activity 保存下来,从而避免后期频繁调用getAtivity() 获取 Activity 的局面,避免了某些情况下 getAtivity() 为空的异常...同时也可以该回调中将传入的Arguments提取解析,在这里强烈推荐通过setArguments给Fragment传参数,因为应用被系统回收时Fragment不会保存相关属性。...比如数据的加载时机、判断 Fragment 是否可见等。 Android零基础入门教程视频参考

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

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

activity实例,调用finish()方法结束 26.如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?...Activity被销毁后,重新启动时,onCreate方法,接受保存的bundle参数,并将之前的数据取出。...FrameLayout上了,而 replace的话首先将该容器的其他Fragment去除掉然后将当前Fragment添加到容器。...观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知被自动更新 91.Android 应用验证码登陆都有哪些实现方案 从服务器端获取图片 通过短信服务...传统的webform写文件上传,其实浏览器所做的就是将我们的数据进行解析组拼成字符串,以流的方式发送到服务器,且上传文件用的都是POST方式,POST方式对大小没什么限制。

1.2K31

Android面试题集合

javafinal定义的类有什么特点 try{ return} catch{} finally{}; return还是finally先执行。 数组有没有length()这个方法?...如何将一个Activity设置成窗口的样式 如何退出Activity?如何安全退出已调用多个Activity的Application? Activity如何动态的添加Fragment?...列举常用的Android开源项目及应用场景 文件和数据库哪个效率高 简述题(五) 常见设计模式,手动简单实现观察者模式 Handler机制 热修复 简述静默安装的原理,如何在无需Root权限的情况下实现静默安装...简述实现Android APK插件化的简单方法 JS交互 如何实现点击网站某个链接就自动下载一个程序到手机上自动安装运行; java和JS的交互 AndroidJava和JavaScript交互 WebView...客户端和服务端如何使用Token和Session 移动端获取网络数据优化 编程算法题 冒泡排序 求素数 单例模式——写一个Singleton出来 二叉树遍历 最长不重复子串(最长重复子串) 有一个一维整型数组

80410

Android面试题含答案「建议收藏」

21、FragmentFragmentActivity通信的方式 22、Android UI适配 23、app优化 24、图片优化 25、HybridApp WebView和JS交互 26、JAVA...singleInstance 模式 一个新栈创建该Activity的实例,让多个应用共享该栈的该Activity实例。...当应用创建的时候,就会在主线程创建handler对象 我们通过要传送的消息保存到Message,handler通过调用sendMessage方法将Message发送到MessageQueue,Looper...21、FragmentFragmentActivity通信的方式 1.直接在一个Fragment调用另外一个Fragment的方法 2.使用接口回调 3.使用广播 4.Fragment直接调用Activity...(2)用户退出App后, 系统可能由于内存原因将App杀死, 进程和activity都需要重启, 但是可以onCreate中将被动杀死锁保存的状态(saved instance state)恢复。

1.4K20

Android面试大纲(集合)

的通信 Fragment调用Activity的方法:getActivity Activity调用Fragment的方法:接口回调 Fragment调用Fragment的方法:FragmentManager.findFragmentById...反射机制利用该漏洞执行任意Java对象的方法 2、WebView销毁步骤 WebView在其他容器上时(:LinearLayout),当销毁Activity时,需要在onDestroy()先移除容器上的...整个程序运行期间都存在 栈区:方法体的局部变量会在栈区创建空间,并在方法执行结束后会自动释放变量的空间和内存 堆区:保存动态产生的数据:new出来的对象和数组不使用的时候由Java回收器自动回收...不要以静态变量的方式Application中保存数据 减少布局的复杂性和深度 不要在mainThread中加载资源 通过懒加载方式初始化第三方SDK 20 其他优化面试题 1、Android不用静态变量存储数据...高,Parcelable不能使用在要将数据存储硬盘上的情况 4、避免UI线程做繁重的操作 21 架构模式面试题 Android基础——框架模式MVC安卓的实践 http://blog.csdn.net

1.1K20

Android面试题集

然后对dex文件进行优化,保存在dalvik-cache目录下。 将AndroidManifest文件解析出的四大组件信息注册到PackageManagerService。...如果某个 Activity 正确实现了生命周期方法,保存了其当前状态,则终止其进程不会对用户体验产生明显影响,因为当用户导航回该 Activity 时,Activity 会恢复其所有可见状态。...Android, SharePreferences是一个轻量级的存储类,特别适合用于保存软件配置参数。...Parcelable是Android提供一套序列化机制,它将序列化后的字节流写入到一个共性内存,其他对象可以从这块共享内存读出字节流,反序列化成对象。...具体说来假设我们从表尾访问数据表头删除数据,当访问的数据链表存在时,则将该数据项移动到表尾,否则在表尾新建一个数据项。当链表容量超过一定阈值,则移除表头的数据

82910

2021Android 面试宝典:实战记录+回答技巧,让每个知识知其所以然!(持续更新

数组和链表分别比较适合用于什么场景,为什么? Java ArrayList 和 Linkedlist 区别?...Activity 什么是 Activity? 请描述一下 Activity 生命周期 Activity 的状态都有哪些? 如何保存 Activity 的状态?...怎样两个 Activity 之间传递一张图片 如何实现切换主题功能? Android Activity 是如何启动的?...ListView 如何定位到指定位置何在 ScrollView 如何嵌入 ListView ListView 如何优化图片 ListView 图片错位的问题是如何产生的 scrollView...JNI & NDK Android 如何调用 C 语言 请介绍一下 NDK JNI 调用常用的两个参数 Android 的网络访问 Android 如何访问网络 如何解析服务器传来的 JSON

1.6K20

OpenGL ES 3.0 | 围绕HelloTriangle实战案例 展开 渲染流程分析

) 加载顶点、片段着色器 创建一个程序对象, 连接顶点、片段着色器, 链接程序对象; 设置视口; 清除颜色缓冲区; 渲染简单图元 使颜色缓冲区的内容EGL窗口表面(GLSurfaceView)可见...; OpenGL ES, 绘图中涉及多种缓冲区类型:颜色、深度、模板; HelloTriangle案例, 只向颜色缓冲区绘制图形; 每个帧的开始, 用GLES30.glClear (...GL, 连接到 顶点着色器源码 声明的 vPosition属性; 默认vPosition变量与输入属性位置0绑定 ——"layout(location = 0) in vec4 vPosition...; \n"; 顶点着色器的每个属性都有一个由无符号整数值唯一标志的位置; 使用GLES30.glVertexAttribPointer (); 将顶点数据加载到 顶点变量值vPosition对应的输入属性位置...项目代码 说了这么多,最后直接上代码吧; 其实这个案例要在Android Studio编辑运行的话,流程也不复杂, OpenGL ES SDK是有封装好的API的,直接可以调用了; 不像OpenCV

1.5K10

Android面试题总结【完整详细版本”一”】(含答案)

音乐服务会打开Intent 来探明将要播放哪首音乐,开始播放。注意:多次调用startService()方法会多次触发onStart()方法。...) —> onDestoryView() —> onDestory() —> onDetach() FragmentActivityreplace,addToBackStack 新替换的Fragment...MenuFragment发送数据给MainFragment,所以我们MenuFragment中将要传递的数据进行发送事件操作: step4:接收消息并处理 MainFragment我们接收来自...当一个Service被终止时,Service的onDestroy()方法将会被调用,在这里应当做一些清除工作,停止Service创建运行的线程等。...2)session:另一种记录客户状态的限制,cookie保存在客户端浏览器,而session保存服务器上。

70020

Appium+python自动化(二十)- 猴哥失散多年的混血弟弟还是妹妹- Monkey猴子日志

具有处理历史数据、诊断问题的追踪以及理解系统、软件的活动等重要作用,开发或者测试软系统过程中出现了问题,我们首先想到的就是她——logging。...,执行的是com.yulore.yellowpage/.activity.SplashActivity, 在下一个swtich之间的,如果出现了崩溃或其他异常,可以Activity查找问题的所在...: Fragment SingleChatFragment{366281} not attached to Activity // at android.support.v4.app.Fragment.getResources...此时Monkey的运行日志将被保存在monkey.txt文件,而异常日志将被保存在D盘下的error.txt。...各个文件主要内容: info.txt:主要记录了MONKEY测试时发送的各种事件,触摸事件的位置等等。 error.txt:主要记录了MONKEY测试时产生的一些ANR、强制关闭等异常。

1.1K71

Android 面试之必问Android基础

在上一篇文章Android 面试之必问Java基础一文,我们介绍了Java面试的一些常见的基础面试题,下面我们来介绍Android开发的一些必问知识点。...当其完成系统设置时,会先在系统文件寻找init.rc文件,启动init进程。 init进程启动:初始化和启动属性服务,并且启动Zygote进程。...[在这里插入图片描述] 2.3 与Activity传递数据 2.3.1 FragmentActivity传递数据 首先,Fragment定义接口,Activity实现该接口,如下所示。...向Fragment传递数据 创建Fragment的时候,可以通过setArguments(Bundle bundle)方式将值传递给Activity,如下所示。...依据作用的不同,Window可以分为如下几种: Application Window:对应着一个 Activity; Sub Window: 不能单独存在,只能附属父 Window Dialog

63620

一个实例学习Kotlin 开发 Android App 的全过程(内有代码)

1 项目概述 这款App用于从服务端获取天气预报信息,显示在窗口区域。这款App会首先列出省级及其所辖城市和县区信息,如图1所示。 ?...2 添加依赖 App中使用了大量的第三方Library,gson、okhttp3、glide等,这些Library需要在app/build.gradle文件的dependencies部分指定,..." android:layout_width="match_parent" android:layout_height="match_parent" /> 布局文件,使用标签引用了一个...例如,地区列表是从服务端获取的JSON数据,因此,需要有相应的类来完成从网络上获取数据的工作,而且获取的是JSON格式的数据。因此,使用这些数据之前,需要先将其转换为Kotlin类。...第4个方法用于分析描述天气信息的JSON数据,而且未使用Android SDK标准的API进行分析,而是使用了gson开源库对JSON数据进行分析,返回一个Weather对象,Weather类与其他相关类的定义需要符合

4.6K50

Android 面试之必问Android基础

当其完成系统设置时,会先在系统文件寻找init.rc文件,启动init进程。 init进程启动:初始化和启动属性服务,并且启动Zygote进程。...与Activity传递数据 FragmentActivity传递数据 首先,Fragment定义接口,Activity实现该接口,如下所示。...向Fragment传递数据 创建Fragment的时候,可以通过setArguments(Bundle bundle)方式将值传递给Activity,如下所示。...Android开启多进程只有一种方法,就是AndroidManifest.xml中注册Service、Activity、Receiver、ContentProvider时指定android:process...依据作用的不同,Window可以分为如下几种: Application Window:对应着一个 Activity; Sub Window:不能单独存在,只能附属父 Window Dialog

69221

Android Activity间传值选择,Serializable Or Parcelable

前言:Activity就是Android世界的controller,它们构成了Android App里面的每一个页面,当然我们还会使用Fragment来将页面进一步划分,通过Fragment可以对特定业务模块的...Java反序列化时通过SerialVersionUID来判断是否能够反序列化,所以需要序列化的类最好都能给出一个固定的SerialVersionUID值,如下 ?...这样就可以直接传递一个WrapGood,间接达到传递Good数组的目的, ? 接收数据 ? 因为Intent提供了putExtra方法直接传递Parcelable数组的重载,所以可以直接使用, ?...从Intent取出Parcelable数组更简单 ?  ...最后我们来做一个总结,上面已经介绍了Android开发Serializable和Parcelable的用法,我们推荐使用Parcelable,理由大致有3个:1.Parcelable是Android

1.2K30

Fragment 的过去、现在和将来

API 这部分就更复杂一些,所有以前要发送到 Activity 的信息,现在也要发送到 Fragment,我们处理权限时很常用的 onActivityResult 就是这种情况下的产物;当 Android...这种状况使得我们开始转变思路,尝试抛弃让 Fragment 去做微型 Activity 的想法,如今的 Fragment 正是由此而来。...我们没有选择 Fragment 添加这个 API,而是将其加入了 Activity 。现在任何组件都可以通过依赖 Activity 来处理回退事件。...我们知道 Android ,总是会有一个 Activity 栈,而 Fragment 也实现了同样的结构,用于保存回退栈信息。...Fragment 间的通讯问题 我们想要解决的另一个问题与返回结果有关。 一直以来,诸如如何在 Fragment 间通讯,或者说如何在 Android 的各种组件间通讯的这类问题都深深困扰着我们。

89510

Android Jetpack 组件之 ViewModel 详解

ViewModel 具有生命周期意识,会自动存储和管理 UI 相关的数据,即使设备配置发生变化后数据还会存在,我们就不需要在 onSaveInstanceState 保存数据 onCreate 恢复数据了...,前面跟源码的时候会遇到各种封装类, ViewModelStore、ViewModelStoreOwner、AndroidViewModelFactory 等,下文中将会介绍。...什么是 ViewModelStore ViewModelStore 主要是用来保存当设备配置发生变化的时候保存 ViewModel 的状态,当前界面被重新创建或者销毁等,对应的新的 ViewModelStore...等都间接或直接实现了这个接口,这一点和 LifecycleOwner 一样,源码参考如下: Activity 间接实现: ```java public ViewModelStore getViewModelStore...return mFragmentManager.getViewModelStore(this); } 其保存 ViewModelStore 过程是 Activty 或 Fragment 的上层实现完成

1.2K10

行情艰难,Android初中级面试题助你逆风翻盘,每题都有详细答案

(重点) 点击App图标后通过startActivity远程调用到AMS,AMS中将新启动的activity以activityrecord的结构压入activity通过远程binder回调到原进程...相关联的Activity完成onCreate()之后调用; onDestroyView():Fragment的布局被移除时调用; onDetach():当FragmentActivity解除关联时调用...会持久的保存在FragmentManager,只要用户可以返回到页面,它都不会被销毁。...,此方法适合完成一些数据加载工作,比如会在此处创建一个线程用于下载数据或播放音乐; onBind():服务被绑定时调用; onUnBind():服务被解绑时调用; onDestroy():服务停止时调用...Android系统强制杀掉之后,Android系统会将该Service依然设置为started状态(即运行状态),但是不再保存onStartCommand方法传入的intent对象 START_NOT_STICKY

77820
领券