Android面试总结

本篇主要是自己用来总结自己面试遇到的一些问题,及平时看到的面试总结问题。为以后面试做个资料准备,也为其他面试者提供一份资料。本篇文章不会一次整理完,后续会不断追加。

一、Java知识部分

Q:ArrayList的一个集合,遍历元素的同时进行删除操作,有没有问题?如果有问题,如何解决?
A:正常情况下遍历ArrayList的两种方式为fori和增强for循环两种方式,当采用fori进行遍历同时执行删除某个元素时,没有什么异常;如果采用增强for循环的方式进行增删操作,会抛出ConcurrentModificationException异常,原因就是底层依赖的是迭代器。基于以上情况,如果要在遍历的时候进行删除操作,可以获取ArrayList的迭代器,调用迭代器的remove方法完成。

Q:List的分类,类别之间的区别是什么,都分别适合什么操作。
A:Java中的List是一个接口,其派生常用的主要有ArrayList和LinkedList。ArrayList底层是由数组实现的,LinkedList底层是由链表实现的。基于数组可以直接访问每一个具体的元素,ArrayList适合根据下标直接访问某个具体的元素;相对的,链表的特点是增删操作灵活,只需要将指针进行动态修改即可,所以LinkedList适合对集合进行频繁的增删操作。

Q:看你简历中说熟练使用多线程,说一下你是如何使用的?遇到过什么相关问题,如何解决?
A:在项目中检测有版本更新时,下载新版本使用AsyncTask来进行新apk文件的下载,下载完成后进行安装。在电话面试中接着问了AysncTask中各个版本的内部实现有什么区别的问题?在AsyncTask内部维护了一个线程池,用来执行添加到其中的耗时任务。在2.3版本以前,采用的线程池数量是默认的5个,多个添加到线程池中的任务是已并行执行;在3.0以后,AsyncTask中的线程池的默认数量为设备上cpu的数量,另外还维护了一个任务队列,会依次从任务队列中获取任务按照顺序执行。
在使用线程多的地方,有时候会遇到并发访问的问题。此时可以使用给方法加锁关键字的方法或者对代码块进行加锁,来解决并发访问的问题。尤其在数据库操作时时长遇到此类问题。

二、Android部分相关

Q:说一下Activity的生命周期。具体都是做哪些操作?(此题的考察点不在声明周期方法,而是具体哪些操作,需要面试者总结一些常见的操作,总结的越全面越好。)
A:onCreate界面创建,此时还不可见;onStart用户已可见但还无法交互操作;onResume用户可以开始进行交互操作;onRestart重新可见;onPause界面被其他界面遮挡;onStop界面完全被遮盖;onDestroy界面被系统回收;七个主要的生命周期方法及对应的状态。一般情况下,在onCreate中设置布局文件及初始化视图,接收传递数据,注册,绑定等;在onResume中进行数据加载,数据更新,初始化动画等操作;在onPause中,停止数据刷新,保存一些数据变量等操作;onDestory中进行反注册,解除绑定,移除Handler中消息队列中的消息等操作;

Q:Activity的启动模式,解释一下。具体在项目中如何使用的。
A:Activity有四种启动模式,分别是standard,singleTop,singleTask,singleInstance。startActivity开启新Activity时,默认是standard模式;singleTop为栈顶优先,指定了singleTop的Activity,如果在栈顶,启动该Activity时不会重新启动,而会调用onNewIntent方法来接受intent;singleTask可以简单理解为栈内唯一模式,即如栈内已存在某个启动模式为singleTask的Activity,再启动该Activity时,就会将Activity放到栈顶,同时调用activity的onNewIntent方法。singleInstance模式Activity单独在一个任务栈中存在。通常会把主界面设置为singleTask模式,在有通知点击跳转事件时,把点击跳转的界面设置为singleTop,在onNewIntent方法中接收数据,处理业务逻辑。

Q:应用中广播的使用方式(广播的注册方式),广播的几种分类,有什么区别?
A:Android应用中通过广播的使用主要是两个步骤。第一步,先注册广播,第二步,接收广播处理业务逻辑。广播注册分为静态注册和动态注册两种方式。静态注册就是在Mainfest文件中进行声明,该种方式是在apk安装的时候就会被扫描,然后存放到system/pckages.xml文件中;另外一种方式是在代码中进行动态的register和unRegister操作;相比较而言,动态注册要更方便和灵活,可以自己掌握,除此之外,相同的优先级情况下,动态注册要优于静态注册的方式接受目标广播。

Q:Activity与Fragment或者Fragment之间的通信方式有哪些,在项目中都是如何使用的?
A:Activity与Fragment之间的通信大概有接口回调方式,广播,利用EventBus等第三方类库来实现等方式。对于广播而言,虽然可以实现通信的目的,但是有点大材小用,因为广播适用于一对多的情况下;利用第三方等类库受制于添加依赖及特定规则;对于接口回调,如果一个Fragment用到不同的Activity,需要进行不同类型的通信及数据传递,会需要写的代码比较多,灵活度稍差。

Q:oncreate中有个setContent方法,你有看过它是怎么实现的吗?
A:

Q:你平时会看一些源码吗?都是如何进行学习的?
A:

Q:我看你简历上写的熟练使用自定义View,你能给我讲一下你平时都是怎么使用自定义View的吗?
A:

Q:我们在绘制一个View的时候,系统需要知道它的大小和位置,你知道有哪几种View的测量模式吗?分别有什么区别?
A:

Q:简历中有写在项目中承担的责任其中一项主要是搭建框架,你能具体讲讲吗?
A:

Q:网络请求框架用的是什么?有进行过一些封装吗?
A:

Q:简历上我看有写熟练掌握Handler机制,能给我讲讲吗?Looper.prepare方法是在哪一步被调用的?
A:

Q:SystemUi做过需求吗?
A:

Q:Launcher修改,都做了哪些修改,如何修改的?Launcher数据是保存在哪里的?
A:

Q:动态加载的原理了解吗,是如何实现的,从源码的角度分析下?
A:

Q:如何提高进程的存活率,你采用过哪些方式方法?
A:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容