求职路上的面试题,学习+回顾!

Android dvm的进程和Linux的进程,应用程序的进程是否为同一个概念?

DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。

sim卡的EF文件是什么?有何作用

EF(Elementary File)基本文件——既有文件头,也有文件体, 文件头存放该文件的位置和控制信息, 文件体存放真正的数据, 整个SIM卡中只有基本文件EF有文件体, 也只有基本文件EF才用来存放数据.也就是EF是用来存数据的!

嵌入式操作系统内存管理有哪几种,各有何特性?

页式,段式,段页,用到了MMU,虚拟空间等技术

1.页式存储管理中的逻辑地址有页号和业内地址两部分组成,但作业仍然使用连续的逻辑地址,可把它看作是一维的(线性的)地址结构。用户没有分页的概念,操作系统把作业信息装入主存时才按照块长进行分页。
2.段式存储管理中的逻辑地址有段号和段内地址两部分组成。他支持用户的分段,每段内的逻辑地址是连续的,而段与段之间的逻辑地址是不连续的。因此段式存储管理中的逻辑地址实际上是采用了二维的地址结构。
注:MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权。
其作用:
1、将虚拟地址映射为物理地址;
2、提供硬件机制的内存访问授权。

什么是嵌入式实时操作系统,Android操作系统属于实时操作系统吗?

实时操作系统:当外界事件或数据产生时,能够接受并以足够快的速度予以处理,处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。
而Android系统是基于linux内核的,因此属于软实时。

一条最长的短信息约占多少byte?

140byte

Android中的动画有哪几类,他们的特点和区别是什么?

总共分为三类:

一、Drawable Animation也就是所谓的帧动画,Frame动画。指通过指定每一帧的图片和播放时间,有序的进行播放而形成动画效果。(可以理解成多张图片播放,图片过大容易OOM。)
二、View Animation视图动画,也就是所谓补间动画,Tween动画。指通过指定View的初始状态、变化时间、方式,通过一系列的算法去进行图形变换,从而形成动画效果,主要有Alpha、Scale、Translate、Rotate四种效果。注意:只是在视图层实现了动画效果,并没有真正改变View的属性。(影像变化,view的实际位置其实还是移动前的位置。)
三、Property Animation属性动画,通过不断的改变View的属性,不断的重绘而形成动画效果。相比于视图动画,View的属性是真正改变了。注意:Android 3.0(API 11)以上才支持。(动态改变对象的属性从而达到动画效果。)

Handler机制的原理?

简单来说就是Handler 是一个消息分发对象,而消息分发,有赖于消息循环,也就是 Looper,在一个线程中,Looper 阻塞线程,等待消息构成循环,有了消息,分配到对应的 Handler,让他进一步分发处理。

说说Handler、Looper、Message、MessageQueue之间的关系。

在主线程创建之后会创建一个Looper对象,创建Looper对象的时候会去创建一个MessageQueue,而Looper是一个轮询器,会不停的轮询MessageQueue中的消息,在获取到消息之后就会把这个消息交给相应的handler来进行处理,在主线程中创建一个handler对象,这个handler对象把一个Message放到消息队列中,然后获取到消息进行处理。

说说 mvc 模式的原理,它在 android 中的运用。

1、模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。
2、视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个 mvc 中用户唯一可以看到的一层,接收用户的输入,显示处理结果。
3、控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新 model 对象状态的部分。
View:自定义 View 或 ViewGroup,负责将用户的请求通知 Controller,并根据 model 更新界面;
Controller:Activity 或者 Fragment,接收用户请求并更新 model;
Model:数据模型,负责数据处理相关的逻辑,封装应用程序状态,响应状态查询,通知 View改变,对应 Android 中的 datebase、SharePreference 等。

请描述一下Activity的生命周期。

1. 创建 onCreate - 启动onStart – 开始 onResume – 暂停 onPause – 结束 onStop – 销毁onDestroy
2. 在一个Activity正常启动的过程中,他们被调用的顺序是 onCreate -> onStart -> onResume, 在Activity被干掉的时候顺序是onPause -> onStop -> onDestroy ,这样就是一个完整的生命周期。
3.如果当前Activity被其他Activity全屏遮挡,责会依次调用onPause->onStop,当重新出现的时候调用->onStart->onResume;如果当前Activity被一个dialog所覆盖,责只调用onPause-,当重新出现的时候调用->onResume即可。

简述Android系统层次结构是哪些?

应用程序层(Applications)、应用程序框架层(Application Framework)、系统运行库层(Libraries和androidRuntime)和Linux内核层(linuxKernel)。

请介绍下Android的数据存储方式。

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

--使用SharedPreferences存储数据;
--文件存储数据;
--SQLite数据库存储数据;
--使用ContentProvider存储数据;
--网络存储数据。

IntentService有何优点?

IntentService会创建独立的worker线程来处理所有的Intent请求;
会创建独立的worker线程来处理onHandleIntent()方法实现的代码,无需处理多线程的问题;
所有请求处理完成后,IntentService会自动停止,无需调用stopSelf()方法停止Service;
为Service的onBind()提供默认实现,返回null;
为Service的onStartCommand提供默认实现,将请求Intent添加到队列中。

NDK是什么?

Android NDK是一个让开发人员在android应用中嵌入使用本地代码编写的组件的工具集。
Android应用运行在Dalvik虚拟机中。NDK允许开发人员使用本地代码语言(例如C和C++)实现应用的部分功能。这样以代码重用的形式能够给某类应用提供方便,而且在某些情况下能提高运行速度。

请介绍下ContentProvider是如何实现数据共享的。

Android提供了ContentProvider,一个程序可以通过实现一个ContentProvider的抽象接口将自己的数据完全暴露出去,而且ContentProviders是以类似数据库中表的方式将数据暴露,也就是说ContentProvider就像一个“数据库”。那么外界获取其提供的数据,也就应该与从数据库中获取数据的操作基本一样,只不过是采用URI来表示外界需要访问的“数据库”。外部访问通过ContentResolver去访问并操作这些被暴露的数据。

Android本身的api并未声明会抛出异常,则其在运行时有无可能抛出runtime异常,你遇到过吗?若有的话会导致什么问题?如何解决?

会抛出异常,如NullPointerException,TextView没有初始化时,却调用了其方法。打开控制台,查看logcat找出异常并修改。

什么是ANR,如何避免它?

如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。
避免:运行在主线程里的任何方法都尽可能少做事情。特别是,Activity应该在它的关键生命周期方法(如onCreate()和onResume())里尽可能少的去做创建操作。

什么情况会导致Force Close ?如何避免?能否捕获导致其的异常?

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,376评论 25 707
  • Android Studio JNI流程首先在java代码声明本地方法 用到native关键字 本地方法不用去实现...
    MigrationUK阅读 11,836评论 7 123
  • 七星潭。 叶家大院,荷花池。 镇平荷花基地。 云麓山。 老君洞。
    孤鴻焚盡天意阅读 184评论 0 1
  • 脊椎骨仿佛被外物挤压,筋骨酸胀得像做完加强版器械运动,四肢无力;喉咙烟熏火燎又如鲠在喉不能吞咽,咳嗽时则伴随着大脑...
    Demonintracy阅读 249评论 0 0