Android面试总结
2015-11-25 00:16
441 查看
一、选择题
Android的四大布局:LinearLayout、TableLayout、FrameLayout、RelativeLayout。
Android的四大组件:Activity,Service,Content Provider,BroadcastReceiver。
java.io安装包中的objectinputstream和objectoutputstream主要用于对象(obeject)的读写。
Android中service实现方法是StartService和BindService。
Activity一般会重载7个方法用来维护其生存周期,除了onCreate()、onStart()、onDestory()还有onrestart、onresume、onpause、onstop。
Android的数据存储方式是SharedPreferences、SQLite、ContentProvider和File。
当启动一个Activity并且新的Activity执行完成后需要返回启动它的Activity的回调函数是startActivityResult。
二、问答题
1、Android中简述JNI的调用过程。
1)和下载Cygwin,下载Android NDK;
2)在NDK项目中JNI接口的设计;
3)使用C/C++实现本地方法;
4)C/C++使用动态链接库生成.so文件;
5)将动态链接库复制到Java工程中,在Java工程中调用,运行Java工程即可。
2、简述Android应用程序结构是哪些?
Linux Kernel、Libraries、Applyoication Framework、Applications。
3、如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?
onSaveInstanceState()
当你的程序中某一个Activity A在运行时,主动或被动地运行另一个新的Activity B,这个时候A会执行onSaveInstanceState()。
B完成以后又会来找A,这个时候就有两种情况:一是A被回收,二是A没有被回收,被回收的A就要重新调用onCreate()方法,不同于
直接启动的是这回onCreate()里是带上了参数savedInstanceState;而没被收回的就直接执行onResume(),跳过onCreate()了。
4、如何将Activity设置成窗口的样式?
在AndroidManifest.xml 中Activity的声明中添加一句话
或
就变成半透明的。
5、什么情况下会导致Force Close?如何避免?能否捕获导致其的异常?
抛出Runtime Exceptions就会导致Force Close,比如空指针、数组越界、类型转换异常等等。
捕获:可以通过logcat查看抛出异常的代码出现的位置,然后到程序对应代码中进行修改。
避免:编写程序时,要思维缜密,在可能出现异常的地方都作相应的处理,增强程序的健壮性。
Q:Java如何增强程序的健壮性?
A:在OO中提供的异常处理机制是增强代码健壮的强有力方式。
6、横竖屏切换时Activity的生命周期?
不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
Android的四大布局:LinearLayout、TableLayout、FrameLayout、RelativeLayout。
Android的四大组件:Activity,Service,Content Provider,BroadcastReceiver。
java.io安装包中的objectinputstream和objectoutputstream主要用于对象(obeject)的读写。
Android中service实现方法是StartService和BindService。
Activity一般会重载7个方法用来维护其生存周期,除了onCreate()、onStart()、onDestory()还有onrestart、onresume、onpause、onstop。
Android的数据存储方式是SharedPreferences、SQLite、ContentProvider和File。
当启动一个Activity并且新的Activity执行完成后需要返回启动它的Activity的回调函数是startActivityResult。
二、问答题
1、Android中简述JNI的调用过程。
1)和下载Cygwin,下载Android NDK;
2)在NDK项目中JNI接口的设计;
3)使用C/C++实现本地方法;
4)C/C++使用动态链接库生成.so文件;
5)将动态链接库复制到Java工程中,在Java工程中调用,运行Java工程即可。
2、简述Android应用程序结构是哪些?
Linux Kernel、Libraries、Applyoication Framework、Applications。
3、如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?
onSaveInstanceState()
当你的程序中某一个Activity A在运行时,主动或被动地运行另一个新的Activity B,这个时候A会执行onSaveInstanceState()。
B完成以后又会来找A,这个时候就有两种情况:一是A被回收,二是A没有被回收,被回收的A就要重新调用onCreate()方法,不同于
直接启动的是这回onCreate()里是带上了参数savedInstanceState;而没被收回的就直接执行onResume(),跳过onCreate()了。
4、如何将Activity设置成窗口的样式?
在AndroidManifest.xml 中Activity的声明中添加一句话
android:theme="@android :style/Theme.Dialog"
或
android:theme="@android:style/Theme.Translucent"
就变成半透明的。
5、什么情况下会导致Force Close?如何避免?能否捕获导致其的异常?
抛出Runtime Exceptions就会导致Force Close,比如空指针、数组越界、类型转换异常等等。
捕获:可以通过logcat查看抛出异常的代码出现的位置,然后到程序对应代码中进行修改。
避免:编写程序时,要思维缜密,在可能出现异常的地方都作相应的处理,增强程序的健壮性。
Q:Java如何增强程序的健壮性?
A:在OO中提供的异常处理机制是增强代码健壮的强有力方式。
6、横竖屏切换时Activity的生命周期?
不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
相关文章推荐
- 黑马程序员——线程
- 一不小心就做错的JS闭包面试题
- 为什么程序员喜欢深更半夜写代码
- 《火星救援》一名程序员的作家梦
- 码农啊码农(前端工程师)
- 码农的逆袭!掌握它,你将走上人生巅峰!
- 专注才是第一生产力
- 每个程序员都该知道的10大编程格言
- 黑马程序员——Java笔记--内部类
- 黑马程序员—java开发前奏—java语言概述
- 不汇报是职场发展的绊脚石
- 怎么成为一个优秀的程序员,而不是一个优秀的码农?
- 大部分人都会做错的经典JS闭包面试题
- 黑马程序员——IO
- 2016 JAVA与Android面试题整理
- 黑马程序员——Foundation框架NSArray和NSMUtableArray的介绍及使用
- java中String s="abc"及String s=new String("abc")-----------面试必备
- 黑马程序员--线程间的通信
- 黑马程序员——Foundation框架——NSFileManager介绍及使用
- java面试题