一、选择题
- 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方法