android面试技巧分享

时间:2020-10-17 19:33:10 面试技巧 我要投稿

android面试技巧分享

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

android面试技巧分享

  FLAG_ACTIVITY_SINGLE_TOP如果目标Activity已经运行在栈顶,将不会再启动

  = singleTop

  FLAG_ACTIVITY_BROUGHT_TO_FRONT 、=singleTask

  FLAG_ACTIVITY_MULTIPLE_TASK=singleInstance

  FLAG_ACTIVITY_CLEAR_TOP、如果被启动的activity已经运行在当前 task,将不会再创建新的活动实例,位于其上的其它activity将会被关闭。

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

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

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

  2). 实现Parcelable接口,这里Android的部分类比如Bitmap类就已经实现了,同

  时Parcelable在Android AIDL中交换数据也很常见的。

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

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

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

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

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

  SQLite作为轻量级的数据库,比MySQL还小,但支持SQL语句查询,提高性能可以考虑通过优化的SQL查询语句方式处理。SQLITE默认就是打开事务的。

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

  Binder是系统进程间通信(IPC)方式之一。Binder使用Client-Server通信方式:一个进程作为Server提供诸如视频/音频解码,视频捕获,地址本查询,网络连接等服务;多个进程作为Client向Server发起服务请求,获得所需要的服务。要想实现Client-Server通信据必须实现以下两点:一是server 必须有确定的访问接入点或者说地址来接受Client的请求,并且Client可以通过某种途径获知Server的地址;二是制定Command- Reply协议来传输数据。例如在网络通信中Server的访问接入点就是Server主机的IP地址+端口号,传输协议为TCP协议。对Binder而言,Binder可以看成Server提供的实现某个特定服务的访问接入点, Client通过这个‘地址’向Server发送请求来使用该服务;对Client而言,Binder可以看成是通向Server的管道入口,要想和某个 Server通信首先必须建立这个管道并获得管道入口。Binder框架定义了四个角色:Server,Client,ServiceManager(以后简称SMgr)以及驱动。其中 Server,Client,SMgr运行于用户空间,驱动运行于内核空间。由于Android的Java层级只是一个外壳框架而已,大部分的系统组件(Android本身)都是在Nataive层(又称C/C++层)执行。这是Android的整体架构,所以我们的应用程序也必须考虑分为两层的必要性,才能完全的融入Android的整体架构里。我们看到的Android应用架构(Application Framework)其实只是Android整体架构里的外壳结构而已。Android应用框架就如同椅子的椅面,那么椅子的椅腿在哪里呢?Binder系统是在Native层的C/C++组件。Java应用程序(如Activity体系等)是透过JNI界面去呼叫Binder系统(或称为组件)。

  AIDL:在Android中, 每个应用程序都可以有自己的进程. 在写UI应用的时候, 经常要用到Service. 在不同的进程中, 怎样传递对象呢? 显然, Java中不允许跨进程内存共享. 因此传递对象, 只能把对象拆分成操作系统能理解的简单形式, 以达到跨界对象访问的目的`. 在J2EE中,采用RMI的方式, 可以通过序列化传递对象. 在Android中, 则采用AIDL的方式. 理论上AIDL可以传递Bundle,实际上做起来却比较麻烦.

  AIDL(AndRoid接口描述语言)是一种借口描述语言; 编译器可以通过aidl文件生成一段代码,通过预先定义的接口达到两个进程内部通信进程的目的. 如果需要在一个Activity中, 访问另一个Service中的某个对象, 需要先将对象转化成AIDL可识别的参数(可能是多个参数), 然后使用AIDL来传递这些参数, 在消息的接收端, 使用这些参数组装成自己需要的对象. AIDL的IPC的机制和COM或CORBA类似, 是基于接口的,但它是轻量级的。它使用代理类在客户端和实现层间传递值. 如果要使用AIDL, 需要完成2件事情: 1. 引入AIDL的相关类.; 2. 调用aidl产生的class.

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

【android面试技巧分享】相关文章:

面试技巧经验分享12-28

面试应答技巧分享01-04

面试小技巧分享12-19

面试技巧汇总分享12-06

关于面试的技巧分享08-30

面试最佳状态技巧分享01-07

银行面试的技巧分享12-30

英语教师面试技巧分享11-25

2016英语面试技巧分享12-07

关于英语面试技巧分享12-07