Android面试必考基础题

(1)《必考题》请写出Android系统架构有几层,分别是哪几层?

考点:Android系统架构

答案:有四层。分别是Linux内核、本地库和Java运行时环境、应用程序框架、应用程序。

(2)《必考题》请简要介绍Android的四大组件?

考点:Android四大组件

答案:Android系统有四种组件,这四种组件构成了Android应用的框架,然后由Intent联系这四种组件。Activity用来显示Android的程序界面,一个应用往往有多个界面,所以一个应用中会有多个Activity。Service没有界面的后台服务,会一直运行在后台。常被用来做数据处理,也可以做一些定时的任务。Broadcast Receiver是Android的广播接收器,在广播机制中充当广播的接受者的作用,Android中充满了各种广播,所有需要有选择地接收一些有用的广播,然后处理这些广播。ContentProvider可直译为内容提供者,它是用在不同的应用程序之间共享数据时,可以把一个应用的数据提供给其他的应用使用。

(3)《必考题》Activity或Fragment的生命周期?

答案:以前的文章介绍过了,这里就不详细说了。

(4)《必考题》Activity的四种基本状态分别是哪些?

答案:运行态(Running)、暂停态(Paused)、停止态(Stopped)、终止态(Destroyed)

(5)《必考题》activity的启动模式?

答案:standard: 标准模式,一调用startActivity()方法就会产生一个新的实例。 singleTop: 如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例,而只是调用Activity中的newInstance()方法。如果不位于栈顶,会产生一个新的实例。 singleTask: 会在一个新的task中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。 singleInstance: 这个跟singleTask基本上是一样,只有一个区别:在这个模式下的Activity实例所处的task中,只能有这个activity实例,不能有其他的实例。

(6)《必考题》Android中的五大布局?

答案:LinearLayout线性布局、RelativeLayout相对布局、TableLayout表格布局、FrameLayout帧布局和AbsoluteLayout绝对布局。

(7)《必考题》ListView的缓存原理?

考点:请简单介绍一下ListView的缓存机制。

答案:①如果有几千、几万甚至更多的项时,其中只有可见的项存在于内存中,其它的都在Recycler中,Recycler是Android中专门用来处理缓存的组件。②ListView先通过getView()方法请求一个View,然后请求其它可见的View。convertView在getView中是空的(null)。③当列表第一项滚出屏幕,并且一个新的项从屏幕低端上来时,ListView会再请求一个View,这时,convertView已经不是空值了,它的值是滚出屏幕的第一项,之后只需设定新的数据,然后返回convertView即可,而不必重新创建一个View。

(8)《必考题》谈谈android数据存储方式?

答案:Android提供了5种方式存储数据:

1.使用SharedPreferences存储数据;它是Android提供的用来存储一些简单配置信息的一种机制,采用了XML格式将数据存储到设备中。只能在同一个包内使用,不能在不同的包之间使用。

2.文件存储数据;文件存储方式是一种较常用的方法,在Android中读取/写入文件的方法,与Java中实现I/O的程序是完全一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。

3.SQLite数据库存储数据;SQLite是Android所带的一个标准的数据库,它支持SQL语句,它是一个轻量级的嵌入式数据库。

4.使用ContentProvider存储数据;主要用于应用程序之间进行数据交换,从而能够让其他的应用保存或读取此Content Provider的各种数据类型。

5.网络存储数据;通过网络上提供给我们的存储空间来上传(存储)和下载(获取)我们存储在网络空间中的数据信息。

(9)《必考题》Service与广播机制?

考点:生命周期,使用方式。

(10)《必考题》handler机制的原理?

考点:Android线程间通信,Message,MessageQueue

答案:andriod提供了 Handler 和 Looper 来满足线程间的通信。Handler 先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(Message Exchange)。

1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列)。

2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到Message Queue里;或者接收Looper从Message Queue取出)所送来的消息。

3) Message Queue(消息队列):用来存放线程放入的消息。

4)线程:UI thread 通常就是main thread,而Android启动程序时会替它建立一个Message Queue。

(11)《必考题》请简析TCP和UDP的区别?

(12)《必考题》GET和POST方法主要的三点区别?

答案:①POST请求可以向服务器传送数据,而且数据放在HTMLHEADER内一起传送到服务端URL地址,数据对用户不可见。而GET是把参数数据队列加到提交的URL中,值和表单内各个字段一一对应,例如(http://www.baidu.com/s?w=%C4&inputT=2710)。②GET传送的数据量较小,不能大于2KB。POST传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。③GET安全性非常低,POST安全性较高。

你是否还在苦苦寻找做技术的大牛,看着网络上参差不齐的技术文章,一次一次的掉进坑里,我想说大家辛苦了。看到了大家的诉求,我联合了几位资深开发工程师,为大家提供技术文章。利用一点点时间,就可以提升自我。何乐而不为呢?

特别说明:我们尽可能对每一篇文章,进行评估与测试,以达到高质量,高水平,业界良心,也希望您可以写些评论给我们。

不说了,好不好,我说的不算,你自己来看看吧,微信扫一扫二维码,即可关注,就说到这里了。

时间: 2024-10-11 03:40:46

Android面试必考基础题的相关文章

95%的技术面试必考的JVM知识点都在这,另附加分思路!

概述:知识点汇总 jvm的知识点汇总共6个大方向:内存模型.类加载机制.GC垃圾回收是比较重点的内容.性能调优部分偏重实际应用,重点突出实践能力.编译器优化和执行模式部分偏重理论基础,主要掌握知识点. 各个部分的内容如下: 1>内存模型部分:程序计数器.方法区.堆.栈.本地方法栈的作用,保存哪些数据: 2>类加载部分:双亲委派的加载机制以及常用类加载器分别加载哪种类型的类: 3>GC部分:分代回收的思想和依据,以及不同垃圾回收算法实现的思路.适合的场景: 4>性能调优部分:常用的j

Java BAT大型公司面试必考技能视频-1.HashMap源码分析与实现

视频通过以下四个方面介绍了HASHMAP的内容 一. 什么是HashMap Hash散列将一个任意的长度通过某种算法(Hash函数算法)转换成一个固定的值. MAP:地图 x,y 存储 总结:通过HASH出来的值,然后通过值定位到这个MAP,然后value存储到这个MAP中的HASHMAP基本原理 1. KEY 是否可以为空?可以,Null当成一个Key来存储 2. 如果Hash KEY重复了会覆盖吗?会覆盖,但返回旧的值 3. HASHMAP什么时候做扩容?put 的时候,阀值高于或等于0.7

MySQL面试必考知识点:揭秘亿级高并发数据库调优与最佳实践法则

做业务,要懂基本的SQL语句: 做性能优化,要懂索引,懂引擎: 做分库分表,要懂主从,懂读写分离... 数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多. 今天我们用10分钟,重点梳理一遍以下几方面: 数据库知识点汇总: 数据库事务特性和隔离级别: 详解关系型数据库.索引与锁机制: 数据库调优与最佳实践: 面试考察点及加分项. 知识点汇总 一.数据库的不同类型 1.常用的关系型数据库 Oracle:功能强大,主要缺点就是贵 MySQL:互联网行业中最流行的数据库,这不仅

Android面试必背题

1       抽象类和接口的区别? 抽象类: 1)抽象方法,只有行为的概念,没有具体的行为实现.使用abstract关键字修饰,没有方法体.子类必须重写这些抽象方法. 2)包含抽象方法的类,一定是抽象类. 3)抽象类只能被继承,一个类只能继承一个抽象类. 接口: 1)全部的方法都是抽象方法,属型都是常量 2)不能实例化,可以定义变量. 3)接口变量可以引用具体实现类的实例 4)接口只能被实现,一个具体类实现接口,必须实现全部的抽象方法 5)接口之间可以多实现 6)一个具体类可以实现多个接口,实

JavaScript基础--------三座大山(前端面试必考)

1.原型和原型链 2.作用域和闭包 3.异步和单线程 被称为JavaScript的三座大山 原型和原型链: 在JavaScript中,数组,对象和函数被称为引用类型,他们都有一个__proto__属性,该属性是一个对象(我们称之为隐式原型) arr数组的构造函数是Array,Array构造函数中有一个prototype属性,(我们暂时称之为显式原型) arr是构造函数的实例对象,arr中的__proto__对象指向构造函数中的prototype对象 接下来是一个简单的demo 1 //创建一个构

决胜九月:mysql面试必会基础(三)

昨天的图片没传上去,更新了一下,太大意了,sorry 之前两篇讲了mysql 检索数据.函数.分组.组合函数.子查询.连接.及组合查询. 复习一下重点: 必会的几个函数avg sum count max min 必会的GROUP BY .HAVING. 举个2016腾讯笔试题的真实的例子,(lz面试2015腾讯实习生时遇到同样的问题) 有汽车评分表car_score,表中有用户id,汽车名称carname,评分score三个字段,存储着用户对汽车的评分. 默认只有用户对汽车进行两次及以上评分时才

决胜九月:mysql面试必会基础(一)

本博客摘自<MySQL必知必会>,对基础问题进行总结. 1.检索数据 (1)SELECT columnname FROM tablename:返回结果不一定和插入顺序相同,结果是无序的 (2)去掉重复的值 SELECT DISTINCT columnname FROM tablename (3)限制结果:limit SELECT * FROM tablename limit 5:结果不能超过5条 SELECT * FROM tablename limit 5,10:将返回从行5开始的10行.注

数据结构笔记02:Java面试必问算法题

1. 面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min()的栈,要求min.push.pop.的时间复杂度都是O(1) (6)判断栈的push和pop序列是否一致 2. 具体分析: (1)栈的创建: 我们接下来通过链表的形式来创建栈,方便扩充. 代码实现: 1 public class Stack { 2 public Node head; 3 public

Java面试必问算法题

面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min()的栈,要求min.push.pop.的时间复杂度都是O(1) (6)判断栈的push和pop序列是否一致 1.栈的创建: 我们接下来通过链表的形式来创建栈,方便扩充. 代码实现: public class Stack { public Node head; public Node current; //方法