做android很长时间了 下面是收集的android面试题:

===========================================================

1. Intent的几种有关Activity启动的方式有哪些,你了解每个含义吗?



这里Android123提示大家,Intent的一些标记有FLAG_ACTIVITY_BROUGHT_TO_FRONT 、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET、FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS、FLAG_ACTIVITY_MULTIPLE_TASK和FLAG_ACTIVITY_NEW_TASK 等。每种含义大家看SDK文档和具体跑下这样你的记忆会更深刻些。

2. Activity和Task的启动模式有哪些? 每种含义是什么?

有关在AndroidManifest.xml中的android:launchMode定义,主要有standard、singleTop、singleTask和singleInstance,同时对于android:taskAffinity这些问题大家也要了解,Android开发网在以前的文章中讲过,不过很多开发者仍然不是很清楚,这些基础问题我们以后仍然会再次总结。

关于Activity的启动模式,参考:http://blog.csdn.net/feng88724/archive/2011/05/11/6412638.aspx

3. 通过Intent传递一些二进制数据的方法有哪些?

1). 使用Serializable接口实现序列化,这是Java常用的方法。

2). 实现Parcelable接口,这里Android的部分类比如Bitmap类就已经实现了,同时Parcelable在Android AIDL中交换数据也很常见的。

4. 能说下Android应用的入口点吗?

真正的Android入口点是application的main,你可以看下androidmanifest.xml的包含关系就清楚了。 可以没有Activity但是必须有Application

5. Android都有哪些XML解析器,都熟练掌握吗?

这里XmlPull、SAX和DOM相信做过Web开发的都已经滚瓜烂熟了。

6. SQLite支持事务吗? 添加删除如何提高性能?

SQLite作为轻量级的数据库,比MySQL还小,但支持SQL语句查询,提高性能可以考虑通过原始经过优化的SQL查询语句方式处理。

7. Android Service和Binder、AIDL你都熟练吗?

作为Android重要的后台服务,这些每个Android开发者都应该掌握,这也算是和Java SE最大的不同了,具体的实例大家可以查看Android音乐播放器的源代码Music.git中的,这里不再赘述。

8. 你用过哪款Android手机,有哪些优点和不足,相对于iPhone或Symbian又有哪些优缺点?

把这个作为面试题也是考察下,可以大概了解到它对Android的了解程度,多移动开发的认识。

===================================================================================



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



创建 oncreate -启动onstart – 恢复 onResume – 暂停 onPause – 结束 onEnd – 销毁onDestroy



2. 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?



在”暂停 onPause” 状态将数据保存。


3. 如何将一个Activity设置成窗口的样式。



设置Theme。



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



5. 请介绍下Android中常用的五种布局。



线性布局LinearLayout, 相对布局 RelativeLayout


表单布局 TableLayout,
绝对布局AbsLayout(已淘汰)


帧布局FrameLayout



6. 请介绍下Android的数据存储方式。



Preference,文件,数据库SQlite,网络存储



7. 请介绍下ContentProvider是如何实现数据共享的。




8. 如何启用Service,如何停用Service。



启动:
Context.startService()
and
Context.bindService().


关闭: Context.stopService().

Service.stopSelf()
or
Service.stopSelfResult()



9. 注册广播有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意。


10. 请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。


11. AIDL的全称是什么?如何工作?能处理哪些类型的数据?


12. 请解释下Android程序运行时权限与文件系统权限的区别。(Edited by Sodino)


13. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由。


14. 有一个一维整型数组int[]data保存的是一张宽为width,高为height的图片像素值信息。请写一个算法,将该图片所有的白色不透明(0xffffffff)像素点的透明度调整为50%。


15. 你如何评价Android系统?优缺点。 (这一题重复了)



优势:
一、开放性 三、丰富的硬件选择 五、无缝结合的Google应用支持

缺点:一、安全和隐私
二,开发商自定义,不够统一 四、同类机型用户减少

=========================



1、什么是ANR如何避免它?


http://blog.csdn.net/Zengyangtech/archive/2010/11/21/6025671.aspx


2、什么情况会导致Force Close ?如何避免?能否捕获导致其的异常?



3、Android本身的api并未声明会抛出异常,则其在运行时有无可能抛出runtime异常,你遇到过吗?诺有的话会导致什么问题?如何解决?



会有运行时异常, 运行时异常无需捕捉

4、简要解释一下activity、 intent 、intent filter、service、Broadcast、BroadcaseReceiver


这个问题问的很普遍,自己多看看吧。在此不多说了!


5、IntentService有何优点?


【2011-5-12 补充】




1. android:paddingLeft与android:layout_marginLeft的区别

当按钮分别设置以上两个属性时,得到的效果是不一样的。
android:paddingLeft="30px"
按钮上设置的内容(例如图片)离按钮左边边界30个像素
android:layout_marginLeft="30px"
整个按钮离左边设置的内容30个像素


2. Android动画有哪几种?描述一下


两种。 Tween动画和Frame动画。 Tween动画主要是透明度、尺寸伸缩、旋转、位移等效果。


Frame动画可以理解成gif, 一帧一帧的显示图片。比较常用的有滚动条效果。


3.对Intent、Activity、广播、Service等的理解。


4.哪些情况下会发生ANR ?怎么对应 ? (这个问题也重复了)

Application Not Response。


5.隐式、显式Intent的区别

· 显式意图

通过名字指明目标组件(这个组件名字字段component name field,
前面提到过,
有一个数值集)。既然组件名称通常不为其他应用程序的开发者所了解,显式意图典型的被用作应用程序的内部消息-例如一个活动启动一个附属服务或姊妹活动。

隐式意图

不命名目标组件(组件名称字段为空)。隐式意图经常用来激活其他应用程序的组件。

这一块参考Intent说明,可以同时看一下Notepad的例子, 帮助理解,个人感觉很重要!

(上面几个问题感觉都不错,各位自己查漏补缺吧! 有些还没有写答案的, 各位有空可以回答一下~ 我会将你的答案填充上去)


-------------------------------------------------------------------

2011-07-05 补充


返回键与Home键区别?


back键默认行为是finish处于前台的Activity的即Activity的状态为Destroy状态为止,再次启动该Activity是从onCreate开始的(不会调用onSaveInstanceState方法)Home键默认是stop前台的Activity即状态为onStop为止而不是Destroy,若再次启动它,会调用onSaveInstanceState方法,保持上次Activity的状态则是从OnRestart开始的---->onStart()--->onResume()



【2011-10-12】百度Android工程师面试题(网友提供)(见附件)


【2011-11-21】思科面试题
1. Android中如何传递二进制数据?
2. ANR是什么?哪些情况下会发生?开发时如何寻找ANR?
3. 解释AIDL
4. SAX、DOM、PULL解析xml的原理,以及各自优缺点
4. DIP、DPI分别是什么?


5.java线程的sleep(),wait(),notify(),yield()方法的区别?

1.sleep()使线程休眠一段时间,一段时间结束后,线程进入可执行状态,但并不是立即执行,只是在被排程器调用的时候才执行。在休眠期间,并不释放所持有的“锁”;
2.wait()使线程休眠一段时间,若设置参数,时间到时,线程就自动进入可执行状态。若没有,则需要notify()方法去调用。注意:wait()方法和notify()方法都时针对this对象的,调用wait()方法后,会释放加在对象上的“锁”。
3.yield()使线程放弃执行的权利,进入可执行状态,也就意味着线程在yield()方法后,有可能又执行。使用yield()方法,线程并不释放自己锁持有的“锁”。

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. Android实现下载文件功能的方法
  5. Android中,把XML文件转换成Object对象的方法
  6. Android(安卓)通讯录中用到的关于按名字首字母排序方法
  7. 实习杂记(27):android中关于横竖屏切换的那些事
  8. android studio升级方法
  9. bridge和原生交互的简单用法

随机推荐

  1. Android分享笔记(5) Android(安卓)与 JS
  2. android 与JS之间的交互
  3. Android跨进程通信之Proxy与Stub(三)
  4. Android扫描条形码实现
  5. Android 解决自定义 CheckBox 样式时的背
  6. Android官方ORM数据库Room技术解决方案简
  7. 谷歌google Android 2010 回顾和展望
  8. Android 中创建avd和sdcard
  9. 图解Android - Android GUI 系统 (5) - A
  10. Android(安卓)Toast工具类大放送