搜索
您的当前位置:首页阿里云面试题

阿里云面试题

来源:世旅网
阿里云面试题

阿里云面试题 概要:

一.考察你对所了解的知识的掌握程度,要对所接触的知识点有很深的理解,掌握其原理本质。

二.会了解个人的学习主动性及遇到问题的解决方法,要善于在没有具体任务的时候主动学习知识点并深入了解。

三.回答技术问题的时候要抛开以前做过或学过的项目经验而从该问题的本质去回答。

四.比较注重团队文化。项目不是一个人可以做成的,需要大家的配合。

问题:

一.深入理解Android消息处理系统——Looper、Handler、Thread

Android系统中Looper负责管理线程的消息队列和消息循环。可以通过Loop.myLooper()得到当前线程的Looper对象,通过Loop.getMainLooper()可以获得当前进程的主线程的Looper对象。

Activity是一个UI线程,运行于主线程中,Android系统在启动的时候会为Activity 创建一个消息队列和消息循环(Looper)。

Handler的作用是把消息加入特定的(Looper)消息队列中,并分发和处理该消息队列中的消息。构造Handler的时候可以指定一个Looper对象,如果不指定则利用当前线程的Looper创建。

如果通过工作线程刷新界面,推荐使用handler对象来实现。 注意工作线程和主线程之间的竞争关系。推荐handler对象在主线程中构造完成(并且启动工作线程之后不要再修改之,否则会出现数据不一致),然后在工作线程中可以放心的调用发送消息SendMessage等接口。

hanlder对象之外的任何主线程的成员变量如果在工作线程中调用,仔细考虑线程同步问题。如果有必要需要加入同步对象保护该变

量。

handler对象的handleMessage接口将会在主线程中调用。在这个函数可以放心的调用主线程中任何变量和函数,进而完成更新UI的任务。

Android很多API也利用Handler这种线程特性,作为一种回调函数的变种,来通知调用者。这样Android框架就可以在其线程中将消息发送到调用者的线程消息队列之中,不用担心线程同步的问题。

二.ListView的各项功能及参数。(主要看下该控件) getView()的参数有哪些?

一共有3个参数getV iew(int position,V iew convertV iew,ViewGroup parent){}

解释各个参数的作用。

三.概括一下android的布局文件,及常用的控件。(会随机提问各控件功能)LinearLayout线性布局分为横向布局(horizontal)和纵向布局(vertical)

RelativeLayout相对布局可以随意布局各种控件。 TableLayout 表格布局计算器的布局 AbsoluteLayout 绝对布局(已废弃)

FrameLayout 框架布局控件堆叠,又内向外堆叠。

四.android的四大组件有哪些?ContentProvider的作用。 Activity BroadcastReceiver Service ContentProvider ContentProvider作用:

应用程序可以通过content provider访问其它应用程序的一些私有数据,这是Android提供的一种标准的共享数据的机制。共享的数据可以是存储在文件系统中、

SQLite数据库中或其它的一些媒体中。content provider扩展自ContentProvider类,通过实现此类的一组标准的接口可以使其它应用程序存取由它控制的数据。然而应

用程序并不会直接调用ContentProvider中的方法,而是通过类ContentResolver。

ContentResolver能够与任何一个ContentProvider通信,它与ContentProvider合作

管理进程间的通信。

五.android的数据存储方式。 1. 使用SharedPreferences存储数据; 2. 文件存储数据;

3. SQLite数据库存储数据; 4. 使用ContentProvider存储数据; 5. 网络存储数据; 六.Spinner的作用。

这个控件主要就是一个列表,那么我们就来说说这个控件吧,这个控件在以前的也看见过,但今天还是从新介绍一遍吧。Spinner位于android.widget包下,每

次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选

择列表中的元素同样来自适配器。Spinner是View类得一个子类。 总结,该面试官主要看重个人的学习和理解知识的能力和团队配合力,答题时要表现得比较谦虚,简历的写法也要注意,不要太张扬。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top