一、选择题

  1. Android的四大布局:LinearLayout、TableLayout、FrameLayout、RelativeLayout。
  2. Android的四大组件:Activity,Service,Content Provider,BroadcastReceiver。
  3. java.io安装包中的objectinputstream和objectoutputstream主要用于对象(obeject)的读写。
  4. Android中service实现方法是StartService和BindService。
  5. Activity一般会重载7个方法用来维护其生存周期,除了onCreate()、onStart()、onDestory()还有onrestart、onresume、onpause、onstop。
  6. Android的数据存储方式是SharedPreferences、SQLite、ContentProvider和File。
  7. 当启动一个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的生命周期?

  1. 不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
  2. 设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
  3. 设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法