Android 面试题

1.    请描述下Activity的生命周期。

        参见文章Activity生命周期
2.    如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?

         onSaveInstanceState()

        当你的程序中某个activity A在运行时,主动或被动启动activity  B时,A将会调用方法onSaveInstanceState,B完成后又会来找A,

        这时候就有2中情况:一、A没有被回收;二、A已被回收,被回收的A要重新调用onCreate(),不同与直接启动A的是此时onCreate带上了参数onsaveInstanceState,而没有被回收的A直接调用onResume,跳过了onCreate;

4.    如何退出Activity?如何安全退出已调用多个Activity的Application?

 

3.    如何将一个Activity设置成窗口的样式。(Edited by Sodino)

 

       在AndroidManifest.xml配置activity的地方加一句android:theme="@android:style/Theme.Dialog"或者android:theme="@android:style/Theme.Transclucent"

 

 

        Activity:finish(),killProcess

        Application:每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。
        具体参考:http://blog.csdn.net/debug2/archive/2011/02/18/6193644.aspx
5.    请介绍下Android中常用的五种布局。
        FrameLayout(框架布局),LinearLayout(线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)

6.    请介绍下Android的数据存储方式。(Edited by Sodino)

        ShowPreferences

         文件存储

         SQLITE数据库方式

         内容提供器Content Provider

         网络存储方式
7.    请介绍下ContentProvider是如何实现数据共享的。(Edited by Sodino)

        创建一个数据自己的Content Provider或者将你的数据添加到一个已经存在的Content Provider中,前提是有相同的数据类型并且有写入Content Provider的权限
8.    如何启用Service,如何停用Service。(Edited by Sodino)

       一、startService,启动程序与被启动service没有建立关联,如果退出时不调用stopService方法,那么service将一直运行

      二、bindService,启动程序与被启动service建立了共存亡的关联,即启动程序销毁了那么service自动销毁,退出时调用方法unbindService
9.    注册广播有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意。

       方式:一、配置式在AndroidManifest.xml中注册

                      对于这种在AndroidManifest.xml注册的方式,android不能自动销毁广播接收器,也就是说当应用程序关闭后,广播接收器还是会接收广播,这样就会很麻烦。比如,当前应用程序需要接收广播并会弹出一个消息,当用户关闭应用程序后,广播接收器还会继续接收广播并会弹出消息,这样就影响了用户的使用,不用启动程序就能工作

                二、代码注册

                       程序需要启动后广播才起作用,即关闭程序后广播自动销毁

        用意:a:从MVC的角度考虑(应用程序内)
                其实回答这个问题的时候还可以这样问,android为什么要有那4大组件,现在的移动开发模型基本上也是照搬的web那一套 MVC架构,只不过是改了点嫁妆而已。android的四大组件本质上就是为了实现移动或者说嵌入式设备上的MVC架构,它们之间有时候是一种相互依存的关系,有时候又是一种补充关系,引入广播机制可以方便几大组件的信息和数据交互。

  b:程序间互通消息(例如在自己的应用程序内监听系统来电)
  c:效率上(参考UDP的广播协议在局域网的方便性)
  d:设计模式上(反转控制的一种应用,类似监听者模式)

 

 

 

10.    请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。
11.    AIDL的全称是什么?如何工作?能处理哪些类型的数据?

 

 

         接口定义语言(Android Interface Definition Language)

        参考:http://tech.ddvip.com/os/mobile/android/122084612161624.html
12.    请解释下Android程序运行时权限与文件系统权限的区别。(Edited by Sodino)

          运行时Dalvik(android授权)

          文件系统linux授权

        参考文件:http://blog.csdn.net/Zengyangtech/archive/2010/07/20/5749999.aspx
13.    系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由。


14 .    有一个一维整型数组int[]data保存的是一张宽为width,高为height的图片像素值信息。请写一个算法,将该图片所有的白色不透明( 0xffffffff )像素点的透明度调整为50 %
15 .    你如何评价Android系统?优缺点。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值