Android面试题摘录
本文中面试题全部选自《精通Android》(英文名“Pro android 4”)一书的章后面试题,不过这套面试题与书中内容结合比较紧密,所以选择使用时请谨慎。
####C2:Android应用程序结构
2.1、Android开发是否需要JRE或JDK?
2.3、Android SDK中的tools和platform-tools目录有什么区别?
2.4、什么是Android的视图(View)?
2.5、什么是Intent?
2.7、选择应用包名时,需要注意什么?
2.8、什么是AVD,它的作用是什么?
2.9、什么是AVD快照?如何使用?
2.10、应用所需要的mp3文件,应该存储在哪一个源文件夹
2.12、Activity的第一个生命周期回调函数是什么?
2.13、Activity的最后一个生命周期回调函数是什么?
2.14、那个类可用于记录应用的日志信息?
2.15、用于记录日志信息的的方法有哪些?区别是什么?
####C3:Android资源
3.1、我们可以命名的资源有哪些?
3.2、R.Java是什么?
3.3、为什么R.Java如此方便的用于处理资源?或者说其作用或者是作用机制
3.4、资源引用语法和为UI控件分配ID之间有什么关系?
3.5、生成资源ID时会使用文件扩展名吗?
3.6、如果两个基于文件的资源只有扩展名不同,结果会怎么样?
3.7、什么是原始资源和XML资源,他们与asset有什么不同?
3.8、XML资源能否本地化?
3.9、asset能否本地化?
3.10、你能写出并解释资源引用语法?
3.11、能都预先声明控件ID,如果能,为什么?
3.12、那些XML节点可用于创建ID?
3.13、如果将我文件保存在XML和原始目录中,Android能否会在R.java中卫这些问了见生成ID?
3.14、Android是否会为asset目录的文件生成ID?
3.15、Plurals资源的one和其他的意义是什么?
3,.16、字符串资源中是否可以使用HTML字符串?
3.17、如何在文字视图中显示HTML字符串?
3.18、如何定义一个可拖拽的矩形?
3.19、如何使用一个可以拖拽额形状?
3.20、那一个类可用于读取/rexs/xml目录的xml文件?
3.21、在Android中处理XML文件的主要类是什么?
3.22、AssetManager类有什么作用,如何使用这个类?
3.23、Resources类有什么作用,如何创建它的实例?
3.24、可否在assets文件内创建任意子目录?
3.25、可否在/res/xml资源文件夹下穿件子目录?
3.26、什么是资源配置修饰符?
####C4:ContentProvider
4.1、ContentProvider与网站的机制有什么相似性?
4.2、能否可以对一些内置的ContentProvider进行命名?
4.3、adb工具的作用是什么?
4.6、列举一些Android中的实用命令行工具
4.7、ContentProvider的数据保存在哪儿?
4.8、有什么好方法浏览ContentProvider数据库?
4.9、ContentProvider的authority属性是什么意思?
4.10、ContentProvider的authority属性能否可以缩短?
4.11、MIME类型是什么?它们与ContentProvider的关系?
4.12、程序员如何查找访问ContentProvider的URI
4.13、如何使用ContentProvider URI进行数据访问
4.14、如何在ContentProvider查询中添加where子句?
4.15、如何使用游标便历查询结果?
4.16、ContentValues类有什么作用?
4.17、ContentResolver类有什么作用?
4.18、在ContentProvider中保存文件的协议是什么?
4.19、如何使用URIMatcher,它的作用是什么?
####C5:Intent
5.2、什么事显式Intent和隐式Intent?
5.3、Intent的组成部分有那些?
5.4、如何使用Intent将数据发送到接收组件?
5.5、能否为Android应用的主要组件命名?
5.6、Intent的数据部分能否直接包含数据?
5.7、Intent的操作部分是否应该直接引用活动或组件?
5.8、如果Intent中显式指定类名,Intent还应该考虑那些其他部分?
5.9、action.MAIN的意思是什么?
5.10、如果在Intent过滤器中不指定任何操作,是否意味着活动能够响应所有操作?
5.11、如果在Intent过滤器中不指定任何数据,将匹配那类类型的Intent?
5.12、为什么需要在Intent过滤器设置默认活动类别?
5.13、启动器活动是否需要设置默认类别?
5.14、如何调用能够向调用方返回结果的活动?
5.15、调用活动的最快方法是什么?
5.16、action_pick和action_get_content有什么区别?
####C6、用户界面和控件
1、TextView是否能够接受用户输入?
2、什么时候应该在EditText域中使用Spannable?
3、如何自定义ImageButton在按下和释放操作时的外观?
4、适配器是否始终需要从ContentProvider获取数据?
5、一个ListView可否包含多个视图?
6、ListView是否始终要包含至少一个TextView?
7、ListVIew项的布局由什么定义?它们的位置在哪里?
8、Spinner与其它列表控件有何不同?
9、TableLayout和GridView,哪一种布局更适合以行和列的格式显示数据库表名列表?
10、什么时候应该在用户界面上使用AbsoluteLayout?
11、android:layout_weight的作用是什么?
12、android:gravity和android:layout_gravity有何区别?
13、是否可以将活动强制显示在一个指定方向上?
14、那一个布局管理器可用管理android:Layout_to_right of?
15、在什么情况下,列表适配器的ID等于它的位置值?
####C7、菜单
1、在Android SDK中,那种类型菜单可用?
2、菜单项有那些重要属性?
3、创建菜单项会调用那些回调方法?
4、响应菜单项会调用那些回调方法?
5、菜单项目的顺序是否受其组ID的影响?
6、如何在处理菜单项上附加单击事件的监听器?
7、如何使用Intent响应菜单项?
8、是否可以通过菜单项的Intent启动一个服务?
9、展开的菜单是指什么?
10、如何给菜单项添加图像?
11、菜单展开时,是否会显示图像?
12、Android的长单击是指什么?
13、从所属位置来看?菜单和上下文菜单有什么不同?
14、用于创建上下文菜单的回调方法是什么?
15、用于响应上下文菜单的回调方法是什么?
16、每一个视图都会调用OnCreateContextMenu吗?
17、如何出发上下文菜单的创建?、
18、回调方法onCreateContextMenu()可以接受那三个参数?
19、如何在应用中附加交替菜单?
20、如何在菜单每次调用或应用数据发生变化时,动态修改菜单行为?
21、XML菜单文件保存在哪里?
22、每一个菜单都需要单独的XML菜单文件吗?
23、如何使用R.Java识别菜单项ID?
24、如何蒋XML文件定义的餐点附加到活动?
25、菜单ID和菜单项ID是否属于相同的资源类型?
26、菜单填充类的作用是什么?
27、如何活得一个菜单填充类的实例?
####C8、Fragment
1、Fragment的父类是什么?
2、碎片和活动之间有什么相同点、
3、碎片和活动之间有什么不同点?
4、恢复堆栈的作用是什么?
5、是否存在某个不实用恢复堆栈的应用程序?
6、回滚FragmentTransaction,将应用程序恢复到前一个状态:这个说法正确吗?
7、<fragment>标签如何指定使用那个碎片?
8、数据适配器应该附加到ListFragment上,还是附加到ListFragment的ListView上?
9、有哪些不同方法可以查找应用程序中正在运行的碎片?
10、插值器是什么,它有什么作用
11、列举一些可以使用动画生成器的视图尺寸
12、是否可以在一个自定义尺寸类上使用动画生成器?如果可以,动画生成器需要使用什么对象?、
####C9、对话框
1、在对话框fragment显示之后,代码能否立即读取提示对黄跨fragment的用户输入?为什么?
2、使用DialogFragment的哪一种方法可以构建视图层次?
3、使用哪一种方法可以返回一个马上可以使用的对话框?
4、对话框Fragment的可以使用用来显示对话框?
5、这个方法有那两种调用方式,那种方式更简单一些?
6、通过使用onDismiss(),能否判断用户单击了对话框碎片的按钮?为什么?
7、DialogFragment能否显示另外一个DialogFragment?如果可以,新的对话框Fragmen显示时,能否会对另一个DialogFragment产生影响?
8、在何处设置对话框的样式和主题?
9、Toast消息的持续时间选择有那些?
10、如何获取一个对话框Fragment,记住配置变化(如设备旋转)时用户输入的内容?
####C10、ActionBar
1、什么是操作栏,它的主要可视化组件是什么?
2、操作栏包括那三种类型?
3、如何将菜单项显示为操作栏图标?
4、R.id.home是什么?
5、如何设计一种模式,使所有活动都共享一个通用的操作栏/菜单栏?\
6、如何获得一个操作栏实例?
7、如何在操作栏上添加选项卡?
8、如何响应操作栏的选项卡单击操作?
9、一个操作栏是否能够控制多个活动?
10、菜单项显示在操作栏时,可能包含那些值?
11、为什么对列表导航组建来说,SpinnerAdapter很重要?
12、如何将一族可单击的项目传递给列表导航选项卡?
13、如何使用碎片简化操作栏模式?
14、在操作栏中实现搜索部件需要使用那些制品?
####C11、高级调试和分析
1、判断题:如果要调试应用程序,必须将AndroidManifest.xml文件中的<application>标签的android:debuggable属性显式地设置为true。
4、使用那一个DDMS特性可以获取关于应用程序当前内存分配的统计信息?
5、如何确定应用程序运行的线程数量?
6、如何去顶应用程序中某一个方法的调用次数,以及该方法的执行时间?
7、在哪里能够获取设备屏幕的截图?
12、如何在运行的模拟器上创建一个Linux shell会话?
13、如何在真实设备上做上题操作,真实设备存在那些限制?
14、如何确定模拟器的端口号,从而可以使用Emulator Console连接模拟器?
15、StrictMode主要检查哪两个方面的内容?
####C12、响应配置变化
1、判断题:所有配置变化都是由设备旋转引起的吗?
2、那一个Android基本特性使平配置更易于变化?
3、那一个回调方法可以向互动通知配置变化?
4、默认的配置变化回调方法有什么作用?
5、在保存状态时,那些对象的类型不能保存在打包对象中?
6、在配置变化过程中,那些状态信息不应该保存在打包对象中?
7、哪一种Fragment更适合使用setRetainInstate(true)方法调用?
####C13、首选项及保存状态
1、列出物种不同类型的首选项。
2、那一个首选项属性可用于存储所选择的值?
3、一个应用程序可以有多少个共享首选项文件?
4、那一个源目录通常用于存放首选项定义文件?
5、包名为name com.androidbook.myapp的应用程序的共享首选项文件的位置在哪里?
6、共享首选项文件第一次在何时创建:在应用程序安装时,还是安装之后的某个时间?如何是后者,具体在什么时间创建?
7、如何要升级应用程序,并且增加一些新的首选项,应该考虑那些问题?
8、如果要接受init首选项的值,应该使用那一个类的那一个方法?
9、在AndroidManifest.xml文件中,应该使用那一个分类名设置PreferenceActivity?
10、在首选项XML中,哪两个标签可用于创建标题?
11、是否允许在共享首选项文件中保存一个值,但又不在首选项屏幕上显示?
12、Editor类的commit()方法有什么重要之处?
####C14、探索安全性和权限
3、那一个工具用来创建和查看数字证书?
4、那一个工具可用于创建应用程序数字帧数签名?
5、zipalign对应用程序起什么作用?
6、zipalign是否会大幅增加应用程序的大小?为什么?
7、如果已安装的应用程序证书过期,该应用程序是否会在设备上停止运行?
8、应用程序的权限证明保存在那一个文件中?
9、在应用程序为另一个活动授予URI权限职之前,必须先执行那些操作?
####C15、构建和使用服务
1、为什么在主UI线程上调用Web服务是一种较差的实践?
3、Android提供那些解析XML的方法?
4、调用Web服务可能发生那些异常?这些异常的处理方法是什么?
5、处理HTTP连接的轻量类是什么?
6、AsyncTask的4个回调方法是什么?那些方法运行在主UI线程上?那些是可选的?
7、AsyncTask实例可以执行多少次?
8、如何强制要求DownloadManager只通过WiFi网络下载内容、
9、Android服务提供了独占的后台线程?
10、在Android应用程序中使用服务的原因是什么?
11、能否可以绑定本地服务?
12、请指出一个从服务向NotificationManager发送通知的原因?
13、ThreadGroups适合用于执行什么操作?
14、Parcelable是否可用于向活动发送数据?为什么?
15、为什么不要从服务启动一个活动?
####C16、包
1、如何查看设备所安装的应用或程序包?
2、如何强制中止或卸载应用程序?
3、如何使用PKI保证程序包的所有权?
4、称公共密钥和私有密钥都是非对称密钥,这意味着什么?
5、一个程序包是否可以包含多个证书或密钥?
6、是否可以使用相同的证书创建多个程序包的签名?
7、什么时候应该使用相同的密钥创建多个程序包的签名?
8、linux进程和程序包文件存在什么关系?
9、.apk进程运行在那一个用户ID之下?
10、什么是共享用户ID?
11、共享用户ID的前提条件是什么?
12、共享用户ID的有点是什么?
13、那一个API可用于读取其它程序包拥有的文件?
14、什么是库项目,什么时候使用它?
15、库项目是否能够包含一些UI组件,如活动?
16、如果不确定那一个应用将来会使用那一个库,那么应该如何命名这个库的程序包?
17、一个库是否能够使用与应用程序不同的报名?
18、一个库项目能否使用其它Jar文件?
19、是否需要在应用的配置清单文件的库中定义活动
20、如何标明一个项目是库项目?
21、能否直接在使用库的项目中编辑库项目的源文件?
22、从4.0开始为什么库的R.java文件的ID变成非final的?
23、为什么不能在库的Java源文件中使用switch语句?
24、使用库的主应用程序项目是否需要添加包含整个库项目及其资源的Jar文件?