Android面试题目大全

什么是Activity? 
请描述一下Activity生命周期。 
       onCreate() //在activity生命周期开始时被调用。 
           onRestoreInstanceState() //onCreate完成后被调用,用来恢复UI状态。 
           onRestart() //当activity从停止状态重新启动时调用。 
           onStart() //当activity对用户即将可见的时候调用。 
            onResume() //当activity与用户交互的时候,重绘屏幕。 
            onSaveInstanceState() //activity即将移出栈顶保留UI状态时调用此方法。 
           onPause() //当系统要启动一个其他的activity时调用(其他的activity显示之前),这个方法被用来提交那些持久数据的改变、停止动画、和其他占用 CPU资源的东西。由于下一个activity在这个方法返回之前不会resumed,所以实现这个方法时代码执行要尽可能快。
           onStop() //用户不再可见时调用 
          onDestroy //在activity被销毁前所调用的最后一个方法,当进程终止时会出现这种情况 

两个Activity之间跳转时必然会执行的是哪几个方法。 
横竖屏切换时候Activity的生命周期。 
如何将一个Activity设置成窗口的样式。 
你后台的Activity被系统 回收怎么办? 
如何退出Activity?如何安全退出已调用多个Activity的Application? 
如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? 
两个Activity之间怎么传递数据? 
怎么让在启动一个Activity是就启动一个service? 
同一个程序,但不同的Activity是否可以放在不同的Task任务栈中? 
Activity怎么和service绑定,怎么在activity中启动自己对应的service? 
什么是Service以及描述下它的生命周期。 
Service有哪些启动方法,有什么区别,怎样停用Service? 
不用service,B页面为音乐播放,从A跳转到B,再返回,如何使音乐继续播放? 
什么是IntentService?有何优点? 
什么时候使用Service? 
请描述一下Intent 和 Intent Filter。 
Intent传递数据时,可以传递哪些类型数据? 
说说Activity,Intent,Service是什么关系 。 
请描述一下Broadcast Receiver。 
在manifest和代码中如何注册和使 用 broadcast receiver 。 
请介绍下ContentProvider是如何实现数据共享的。 
请介绍下Android的数据存储方式。 
      SharedPreferences:用来存储”key-value paires“格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型。 
文件存储:通过FileInputStream和FileOutputStream对文件进行操作。在Android中,文件是一个应用程序私有的,一个应用无法读写其他应用程序的文件。 
3.SQLite数据库存储:Android提供的一个标准数据库,支持SQL语句。 
网络:通过网络来存储和获得数据。 
ContentProvider:是所有应用程序之间数据存储和检索的一个桥梁,它的作用就是使得各个应用程序之间实现数据共享。它是一个特殊的存储数据的类型,它提供了一套标准的接口用来获取数据、操作数据。系统也提供了音频、视频、图像和个人信息等几个常用的Content Providers。如果你想公开自己的私有数据,可以创建自己的Content Provider类,或者当你对这些数据拥有控制、写入的权限时讲这些数据添加到Content Provider中实现共享。外部访问通过ContentResolver去访问并操作这些被暴露的数据。组织数据主要包括:存储数据,读取数据,以数据库的方式暴露数据。数据的存储需要根据设计的需求,选择合适的存储结构,首选数据库,当然也可以选择本地其他文件,甚至可以是网络上的数据。数据的读取,以数据库的方式暴露数据这就要求,无论数据是如何存储的,数据最后必须以数据的方式访问。 

为什么要用ContentProvider?它和sql的实现上有什么差别? 
请介绍下Android中常用的五种布局。 
    最常用的布局方式为LinearLayout、RelativeLayout、FrameLayout、TableLayout AbsoluteLayout。其中LinearLayout和RelativeLayout是最常用的方式,他们可以通过在xml配置文件或者代码中进行布局。 
FrameLayout 最简单的布局方式,放置的控件都只能罗列到左上角,控件会有重叠,不能进行复杂的布局。 
LinearLayou可以通过orientation属性设置线性排列的方向是垂直(vertical)还是纵向(horizontal).每行或每列只有一个元素,可以进行复杂的布局。 
AbsoluteLayout 可以让子元素指定准确的x/y坐标值,并显示在屏幕上。AbsoluteLayout 没有页边框,允许元素之间互相重叠(尽管不推荐)。他是绝对坐标,所以在实际中不提倡使用。 
RelativeLayout 允许子元素指定他们相对于其它元素或父元素的位置(通过ID 指定)。因此,你可以以右对齐,或上下,或置于屏幕中央的形式来排列两个元素。元素按顺序排列,因此如果第一个元素在屏幕的中央,那么相对于这个元素的其它元素将以屏幕中央的相对位置来排列。这个是相对于 AbsoluteLayout 的,采用的相对坐标,所以在实际中比较常用。 
TableLayout 将子元素的位置分配到行或列中。一个TableLayout 由许多的TableRow 组成,每个TableRow 都会定义一个 row 。TableLayout 容器不会显示row 、column或cell 的边框线。每个 row 拥有0个或多个的cell ;和html中的table差不多。在实际中也经常使用。 
    有的时候我们也会用到GridView,就像我们手机屏幕上摆放的各个图标应该就是用GridView排版的。

谈谈UI中, Padding和Margin有什么区别? 
padding 箱内补白,margin箱外补白
 Padding是文字相对于边框,而Margin是边框相对于父窗体。 

widget相对位置的完成在antivity的哪个生命周期阶段实现。 
请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。 
AIDL的全称是什么?如何工作?能处理哪些类型的数据? 
请解释下Android程序运行时权限与文件系统权限的区别。
运行时 Dalvik( android授权) 
文件系统 linux 内核授权
 
系统上安装了多种浏览器,能否指定某浏览器访问指定页面? 
对多线程的运用和理解,及多线程之间handle的传值。 ( mark)
对android虚拟机的理解,包括内存管理机制垃圾回收机制。 
Framework工作方式及原理,Activity是如何生成一个view的,机制是什么。 
android本身的一些限制,比如apk包大小限制,读取大文件时的时间限。 
如何加载的音乐信息,如何改善其效率。 
ListView如何提高其效率? 
启动应用后,改变系统语言,应用的语言会改变么? 
启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别? 
Android程序与Java程序的区别? 
Android中Task任务栈的分配。 
在Android中,怎么节省内存的使用,怎么主动回收内存? 
不同工程中的方法是否可以相互调用? 
在Android中是如何实现判断区分通话记录中的电话状态,去电,来电、未接来电? 
dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 
sim卡的EF 文件有何作用 
如何判断是否有SD卡? 
嵌入式操作系统内存管理有哪几种, 各有何特性。 
什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗? 
一条最长的短信息约占多少byte? 
Linux中跨进程通信的几种方式 。 
谈谈对Android NDK的理解。 
谈谈Android的优点和不足之处。 
Android系统中GC什么情况下会出现内存泄露呢? 
Android UI中的View如何刷新。 
简单描述下Android 数字签名。 
什么是ANR 如何避免它? 
android中的动画有哪几类,它们的特点和区别是什么? 
handler机制的原理。 
android中线程与线程,进程与进程之间如何通信。 
说说mvc模式的原理,它在android中的运用。 
android中有哪几种解析xml的类,官方推荐哪种?以及它们的原理和区别。 
DDMS与TraceView的区别? 
res目录有默认几项resource。 
android的哪个版本是一次重大的升级? 

 

 

copy from:http://hi.baidu.com/455611934/blog/item/39a123d4af29b2d251da4bd7.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值