android面试题之一
在接下来的一段时间,我将收集一些常见面试题,综合网上资料加自己测试与理解,将其总结出来和大家分享,里面难免有一些问题,希望大家提出宝贵意见以便及时更正。
一、Activity、Service、BroadcastReceiver的作用
1. Activity是android四大组件中最基本的组件,是程序与用户交互的窗口,代表一个用户所能看到的屏幕,它具有自己的生命周期,由系统控制。它可以用来显示控件、监听系统事件(按键事件、触摸屏事件等)、为保持各界面的状态做很多持久化的事情。
2. 一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序等。比如音乐播放器就是启动一个Service来保持音乐在后台的播放。所以,Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。
3. Broadcast(广播)是一种广泛运用的在应用程序之间传输信息的机制。BroadcastReceiver代表广播接收器,是对发送出来的 Broadcast进行过滤接受并响应的一类组件。广播接收器没有用户界面,然而,它们可以启动一个activity或service 来响应它们收到的信息,或者用NotificationManager 来通知用户。
二、显式intent和隐式intent的区别是什么
显式Intent:对于明确指出了目标组件名称的Intent,我们称之为显式Intent。
隐式Intent:对于没有明确指出目标组件名称的Intent,则称之为隐式Intent。
显式Intent直接用组件的名称定义目标组件,这种方式很直接。但是由于开发人员往往并不清楚别的应用程序的组件名称,因此,显式Intent更多用于应用程序内部传递消息。比如在某应用程序内,一个Activity启动一个Service。
隐式Intent恰恰相反,它不会用组件名称定义需要激活的目标组件,它更广泛地用于在不同应用程序之间传递消息。
另外,在显式Intent消息中,决定目标组件的唯一要素就是组件名称,一旦名称确定,就不需要其他内容即可找到相应组件。 但在隐式Intent中需要借助过滤器IntentFilter 来寻找与之相匹配的组件。
三、怎么将一个Activity封装成对话框的样子? 半透明的样子?长按Menu菜单的样子?
1. 封装成对话框的样子:给activity加上如下属性
android :theme="@android:style/Theme.Dialog"
2.封装成半透明的样子:给activity加上如下属性
android:theme="@android:style/Theme.Translucent"
3.封装成长按菜单的样子:
重写onKeyDown()和onKeyLongPress()方法,在onKeyDown中对menu键调用event.startTracking()方法跟踪,这样长按Menu键会回调onKeyLongPress()方法,在里面弹出对话框式的activity即可。
四、介绍一下Android系统的体系结构
从上至下包括应用层(Applications)、应用框架层(Application Framework)、系统运行库层(Libraries and Android Runtime)和Linux内核层(Linux Kernel)。
1.应用层包含开发者自己开发的一些应用和Google已经绑定的一些核心应用。比如Email客户端、浏览器、联系人、日历等等。
2. 应用框架层就是应用开发者所必须了解API。该层提供了很多组件和管理器,比如活动管理器(Activity Manager)、窗口管理器(Window Manager)、内容提供器(Content Providers)、视图系统(View System)、包管理器(Package Manager)等等,那么开发者基于该层进行开发,就容易多了。
3. 系统运行库层是一些底层C/C++库,主要包括Bionic系统C库(C语言标准库,系统最底层的库)、多媒体库(Media Framework)、SGL(2D图形引擎库)、SSL(位于TCP/IP协议与各种应用层协议之间,提供数据通信支持)、OpenGL ES 1.0(3D效果支持)、SQLite(关系数据库)、Webkit(Web浏览器引擎)、FreeType(位图bitmap及矢量图vector)。
4. Linux内核主要是作为硬件和软件栈之间的抽象层,内核层提供如下一些驱动:显示驱动(Display Driver)、键盘驱动(Keyboard Driver)、Flash内存驱动(Flash Memory Driver)、照相机驱动(Camera Driver)、音频驱动(Audio Driver)、蓝牙驱动(Bluetooth Driver,基于IEEE 802.15.1)、WiFi驱动、Binder IPC驱动(Android的一个特殊驱动程序,具有单独的设备节点,提供进程间通信)、Power Management(电源管理)。从软件角度看,Linux内核就是“硬件”。
五、一条最长的短信息约占多少 byte?
英文:160字节。中文:70个汉字即140字节,还有20字节用来标识是中文短信。
android面试题之一的更多相关文章
- 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18) eoe上看到的
===============eoeAndroid社区推荐:======================= 1.Android开发新浪面试题[开发者必看哦]下载地址 http://www.eoeand ...
- 安卓Android面试题大全
56个问题都是经常用到的,可以深入研究下,也是必须掌握的开发必备知识. 安卓Android面试题汇总 搜集了一些Android面试题目,供将要面试或者正在面试的朋友参考. 1, 谈谈你对Activit ...
- Android 面试题总结
Android 面试题总结(不断更新) 1.INETNT几种有关Activit的启动方式FLAG_ACTIVITY_BROUGHT_TO_FRONT 将ACTIVITY带到最前面FLAG_ACTIVI ...
- Android面试题整理【转载】
面试宝典(5) http://www.apkbus.com/android-115989-1-1.html 面试的几个回答技巧 http://blog.sina.com.cn/s/blog_ad ...
- 19、android面试题整理(自己给自己充充电吧)
(转载,出处丢失,请原作者原谅,如有意见,私信我我会尽快删除本文) JAVA 1.GC是什么? 为什么要有GC?GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问 ...
- Android面试题基础(转)
71道经典Android面试题和答案 1.下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存 B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释 ...
- Android面试题(文章内容来自他人博客)
腾讯面试题 1.int a = 1; int result = a+++3<<2; 2.int a = 2; int result = (a++ > 2)?(++a):(a+=3); ...
- android面试题集1
Android 面试题(有详细答案) 附带答案,共100分 一.选择题(30题,每题1.5分,共45分) 1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分类,按功 ...
- Android面试题收集(有具体答案)
Android面试题目及其答案 1.Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指dalivk的虚拟机.每个Android应用程序都在它自己的进程中执行,都 ...
- 2017 Android 面试题 [ 基础与细节 ]
2017 Android 面试题 [ 基础与细节 ] 感谢@chuyao抛出的这些问题,平时业务代码写多了,很多基础的东西变得含糊不清了,这次裸辞出来找工作确实没有之前顺利,顺便求上海Android开 ...
随机推荐
- zoj 2110
这道题困扰我的不是算法问题.而是细节问题.不优化一直搜到底 时间是690ms左右 没有优化的dfs #include<stdio.h> #include<string.h> # ...
- BZOJ 3444: 最后的晚餐( )
把暗恋关系看成无向边, 那某个点度数超过2就无解.存在环也是无解.有解的话对连通分量进行排列就行了. ------------------------------------------------- ...
- ORA-12514(TNS:监听程序当前无法识别...)
记录: ORA-12514(TNS:监听程序当前无法识别...)的解决方案 在安装ORACLE 11G 过程中由于配置的原因,安装过程中报了如下错误: 按照安装提示执行后面的操作后,打开PL/SQ ...
- GCD 之 同步 异步 并发
1. dispatch_async(dispatch_get_global_queue(, ), ^{ // 处理耗时操作的代码块... //通知主线程刷新 dispatch_async(dispat ...
- The Standard Librarian: I/O and Function Objects: Containers of Pointers
C++ Experts Forum The Standard Librarian: I/O and Function Objects: Containers of Pointers Matthew A ...
- (iOS)viewController背景透明化
#ifdef __IPHONE_8_0 ) { [UIApplication sharedApplication].keyWindow.rootViewController.providesPrese ...
- Qt 继承QWidget setstylesheet解决
void myMainWidget::paintEvent(QPaintEvent * e) { QStyleOption opt; opt.init(this); QPainter p(this); ...
- Qt实战之开发CSDN下载助手 (3)(结束篇)
再次申明下,开发这款助手,主要是用来学习交流,并不是用来开发什么刷积分的软件. 好了,言归正传,这次,主要的分析下CSDN的下载,评论,验证码获取机制等等. 好,回到第二篇,当我们成功登陆时,CSDN ...
- 将文件存储到数据库中(MySQL)
package com.play; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx ...
- OutLook 2010 收件箱子文件夹收到新邮件时没有桌面通知
开始---规则----管理规则和通知 规则和通知---电子邮件规则---批量选择账号---更改规则---在新邮件通知和窗口显示(选中)---确定 录入通知邮件消息---确定 效果如下: