面试问答题.docx

上传人:b****3 文档编号:4003995 上传时间:2022-11-27 格式:DOCX 页数:11 大小:25.59KB
下载 相关 举报
面试问答题.docx_第1页
第1页 / 共11页
面试问答题.docx_第2页
第2页 / 共11页
面试问答题.docx_第3页
第3页 / 共11页
面试问答题.docx_第4页
第4页 / 共11页
面试问答题.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

面试问答题.docx

《面试问答题.docx》由会员分享,可在线阅读,更多相关《面试问答题.docx(11页珍藏版)》请在冰豆网上搜索。

面试问答题.docx

面试问答题

2、问答题

1.说明使用操作栏为程序开发所带来的便利。

答案:

操作栏代替了传统的标题栏功能,右侧用来显示“选项菜单”的菜单项,但所显示的内容,会根据操作栏所具有的空间不同而具有不同的显示方式。

在屏幕尺寸较小的设备上,操作栏会自动隐藏菜单项的文字,而仅现实菜单项的图标;而在屏幕尺寸较大的设备上,操作栏会同时现实菜单项的文字和图标。

操作栏提供多个实用的功能,包括

(1)将“选项菜单”的菜单项现实在操作栏的右侧;

(2)基于Fragment实现类似于Tab页的导航切换功能;(3)为导航提供可“拖拽—放置”的下拉列表;(4)可在操作栏上实现类似于“搜索框”的功能。

2.写出android中主要的三种数据存储方式。

答案一:

数据存储方式有三种:

一个是文件,一个是数据库,另一个则是网络。

答案二:

常用的数据存储方式:

SharePreference存储、File存储(分为手机内存存储和SD卡存储)、SQLite数据库存储和网络存储。

答案三:

1.SharedPreferences2.文件存储3.SQLite数据库方式 

4.内容提供器(Content provider)5. 网络存储方式

3.简述android中的适配器作用,android有哪些适配器?

区别是什么?

答案:

作用:

把一些数据给弄得适当,适合以便于在View上显示。

我们常用的适配器一共有三个,ArrayAdapter,SimpleAdapter,SimpleCursorAdapter,他们都是继承BaseAdapter

其中以ArrayAdapter最为简单,只能展示一行字。

SimpleAdapter有最好的扩充性,可以自定义出各种效果。

SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来。

4.说明线程的两种实现方式是什么?

答案:

第一种方式:

使用Runnable接口创建线程。

第二种方式:

直接继承Thread类创建对象使用Runnable接口创建线程。

5.说明如何在不同的activity之间进行传值?

答案:

基本数据类型可以通过.Intent传递数据

extras.putDouble(key,value)

intent.putExtra(name,value)

//通过intentputExtra方法基本数据类型都传递

Bundlebundle=newBundle();

bundle.putShort(key,value);

intent.putExtras(bundle);

intent.putExtras(bundle)

获取到激活他的getIntent();

Intentintent=getIntent();

Bundlebundle=intent.getExtras();

intent.getStringExtra(“key”,”value”);

intent.getBooleanExtra(“key”,”value”)

6.什么是Activity?

答案:

Activity是Android组件中最基本也是最为常见用的四大组件之一。

Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。

Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件。

在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。

Activity之间通过Intent进行通信。

7.两个Activity之间跳转时必然会执行的是哪几个方法。

答案:

一般情况比如说有两个activity,分别叫A,B,当在A里面激活B组件的时候,A会调用onPause()方法,然后B调用onCreate(),onStart(),OnResume(),这个时候B覆盖了窗体,A会调用onStop()方法.如果B呢是个透明的,或者是对话框的样式,就不会调用onStop()方法

8.怎么让在启动一个Activity是就启动一个service?

答案:

在activity的onCreate()方法里面startService();

9.Intent作用

答案:

Android中通过Intent对象来表示一条消息,一个Intent对象不仅包含有这个消息的目的地,还可以包含消息的内容,这好比一封Email,其中不仅应该包含收件地址,还可以包含具体的内容。

对于一个Intent对象,消息“目的地”是必须的,而内容则是可选项。

通过Intent可以实现各种系统组件的调用与激活.

10.Intent传递数据时,可以传递哪些类型数据?

答案:

一般的基本数据类型Intent.putextra()intent.getStringextra();

数据的uri,intent.setData()intent.getData();

11.Activity,intent、Service和BroadCastReceiver之间是什么关系?

Activity、Intent、Service、BroadCastReceiver的概念(每个1.5分),一个应用程序怎么去利用他们(每个1分)

 

12.android中常用的数据存储方式和怎样去实现这些存储方式

答案:

常用的数据存储方式:

SharePreference存储、File存储(分为手机内存存储和SD卡存储)、SQLite数据库存储和网络存储。

(每个1.5分)怎样去实现这些存储(每个1分)

 

13.简述Manifest.xml文件?

答案:

AndroidManifest.xml是每个android程序中必须的文件。

它位于整个项目的根目录,描述了package中暴露的组件(activities,services,等等),他们各自的实现类,各种能被处理的数据和启动位置。

除了能声明程序中的Activities,ContentProviders,Services,和IntentReceivers,还能指定permissions和instrumentation(安全控制和测试)

14.举例说明android:

gravity与android:

layout_gravity的区别

答案:

LinearLayout有两个非常相似的属性:

android:

gravity与android:

layout_gravity。

他们的区别在于:

android:

gravity用于设置View组件的对齐方式,而android:

layout_gravity用于设置Container组件的对齐方式。

举个例子,我们可以通过设置android:

gravity="center"来让EditText中的文字在EditText组件中居中显示;同时我们设置EditText的android:

layout_gravity="right"来让EditText组件在LinearLayout中居右显示。

15.注册广播接收者两种方式是什么?

答案:

首先写一个类要继承BroadcastReceiver

第一种:

在清单文件中声明,添加

name=".IncomingSMSReceiver">

name="android.provider.Telephony.SMS_RECEIVED")

二种使用代码进行注册如:

IntentFilterfilter=newIntentFilter("android.provider.Telephony.SMS_RECEIVED");

IncomingSMSReceiverreceiver=newIncomgSMSReceiver();

registerReceiver(receiver.filter);

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

答案:

FrameLayout(框架布局),LinearLayout(线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)

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

一.SharedPreferences方式

二.文件存储方式

三.SQLite数据库方式

四.内容提供器(Contentprovider)方式

五.网络存储方式

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

答案:

Context.startService()和Context.bindService服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。

这两个方法都可以启动Service,但是它们的使用场合有所不同。

1.使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服务仍然运行。

使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止。

2.采用Context.startService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onStart()方法。

如果调用startService()方法前服务已经被创建,多次调用startService()方法并不会导致多次创建服务,但会导致多次调用onStart()方法。

采用startService()方法启动的服务,只能调用Context.stopService()方法结束服务,服务结束时会调用onDestroy()方法。

3.采用Context.bindService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onBind()方法。

这个时候调用者和服务绑定在一起,调用者退出了,系统就会先调用服务的onUnbind()方法,。

接着调用onDestroy()方法。

如果调用bindService()方法前服务已经被绑定,多次调用bindService()方法并不会导致多次创建服务及绑定(也就是说onCreate()和onBind()方法并不会被多次调用)。

如果调用者希望与正在绑定的服务解除绑定,可以调用unbindService()方法,调用该方法也会导致系统调用服务的onUnbind()-->onDestroy()方法

19.android中的动画有哪几类,它们的特点和区别是什么?

答案:

两种,一种是Tween动画、还有一种是Frame动画。

Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

20.谈谈UI中,Padding和Margin有什么区别?

答案:

Padding文字对边框,margin是控件与控件之间的距离。

21.Adapter的作用是什么?

常见的Adapter有哪些?

(见3)

答案:

Apapter使数据绑定到控件变得更加简单和灵活,为容器提供子视图,利用视图的数据和元数据来构建每个子视图。

常见有arrayAdapter,simpleCursorAdapter,cursorAdapter,resourceCursorAdapter

 

22.android四大组件是什么,各有有什么作用

答案一:

Activity:

Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑。

service:

后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事务,定义好需要接受的Intent提供同步和异步的接口。

ContentProvider:

是Android提供的第三方应用数据的访问方案,可以派生ContentProvider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的接口模型,大大简化上层应用,对数据的整合提供了更方便的途径。

BroadCastReceiver:

接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型。

答案二:

Activity是Android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件,用于提示用户程序已经正常启动。

Service一般用于没有用户界面,但需要长时间在后台运行的应用。

BroadcaseReceiver是用来接受并响应广播消息的组件。

ContentProvider是Android系统提供的一种标准的共享数据的机制,应用程序可以通过ContentProvider访问其他应用程序的私有数据。

23.android中常用的四个布局有哪些?

答案:

五种布局方式,分别是:

FrameLayout(框架布局),LinearLayout

(线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)

24.android的四大组件是什么?

答案:

Activity、Service、BroadcastReceiver、ContentProvider

25.android中service的实现方法是:

startservice和bindservice。

26.activity一般会重载7个方法用来维护其生命周期,分别是什么(至少写5个)?

答案:

onCreate(),onStart(),onDestory()、onRestart(),onResume(),onPause(),onStop()

27.android的数据存储的方式有哪些?

(见2)

28.简述在嵌入式系统中使用SQlite数据库的优势。

29程序运行的结果是:

______goodandgbc_______。

publicclassExample{

  Stringstr=newString("good");

  char[]ch={'a','b','c'};

  publicstaticvoidmain(Stringargs[]){

    Exampleex=newExample();

    ex.change(ex.str,ex.ch);

    System.out.print(ex.str+"and");

    Sytem.out.print(ex.ch);

  }

  publicvoidchange(Stringstr,charch[]){

    str="testok";

    ch[0]='g';

  }

}

30.简述Service的用途?

(见22)

31.简述android系统三种菜单的特点及使用方式?

答案:

Android系统支持的三种菜单分别是:

选项菜单、子菜单和快捷菜单。

(1)选项菜单是常用的Android系统菜单,可分为图标菜单和扩展菜单,图标菜单的子项最多是六个,支持显示图标,不支持单选框和复选框;而当子项多余六个时,采用扩展菜单,扩展菜单的子项是垂直排列,支持单选框和复选框,不支持显示图标。

第一次启动选项菜单时,只需要调用一次onCreateMenu函数。

(2)子菜单的表现形式是浮动窗体的形式,适应小屏幕的显示形式,能够展示更加详细的信息,通过addSubMenu函数增加子菜单,但不支持嵌套。

在选项菜单和快捷菜单中使用子菜单,便于显示和分类相似的菜单子项。

(3)快捷菜单采用动窗体的显示形式,启动方式特别,点击界面元素超过2秒后,则启动该界面元素的快捷菜单。

每次启动快捷菜单时,都要调用一次onCreateMenu函数。

32.简述Intent的定义和用途?

答案:

Intent是一个动作的完整描述,包含了动作的产生组件、接收组件和传递的数据信息。

Intent为Activity、Service和BroadcastReceiver等组件提供交互能力,将一个组件的数据和动作传递给另一个组件。

Intent的一个最常见的用途就是启动Activity和Service;另一个用途是在Android系统上发布广播消息,广播消息可以是接收到特定数据或消息,也可以是手机的信号变化或电池的电量过低等信息。

33.android中service的实现方法是:

startservice和bindservice。

34.当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行的回调函数是?

35.Socket通信服务端编程步骤?

答案:

1.创建一个ServerSocket,用于监听客户端Socket的连接请求。

2.采用循环不断接受来自客户端的请求。

3.每当接受到客户端Socket的请求,服务器端也对应产生一个Socket

 

36.Socket通信客户端编程步骤

答案:

客户端编程步骤:

1、创建客户端套接字(指定服务器端IP地址与端口号)。

2、连接(Android创建Socket时会自动连接)。

3、与服务器端进行通信。

4、关闭套接字。

37.AsyncTask的作用

答案:

费时的任务操作总会启动一些匿名的子线程,太多的子线程给系统带来巨大的负担,随之带来一些性能问题。

因此android提供了一个工具类AsyncTask,顾名思义异步执行任务。

这个AsyncTask生来就是处理一些后台的比较耗时的任务,给用户带来良好用户体验的,从编程的语法上显得优雅了许多,不再需要子线程和Handler就可以完成异步操作并且刷新用户界面。

38.两种广播注册类型的区别是什么?

答案:

1)第一种是常驻型(静态注册),也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。

2)第二种不是常驻型广播(动态注册),也就是说广播跟随程序的生命周期。

注册的方法有两种,一种是静态注册,一种是动态注册。

动态注册优点:

在Android的广播机制中,动态注册的优先级是要高于静态注册优先级的,因此在必要的情况下,我们是需要动态注册广播接收器的。

静态注册优点:

动态注册广播接收器还有一个特点,就是当用来注册的Activity关掉后,广播也就失效了。

同时反映了静态注册的一个优势,就是无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器就是打开着的。

39.Android中为什么要引入Handler?

答案:

在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户体验。

但是在子线程中无法去操作主线程(UI线程),在子线程中操作UI线程会出现错误。

因此android提供了一个类Handler来在子线程中来更新UI线程,用发消息的机制更新UI界面,呈现给用户。

这样就解决了子线程更新UI的问题。

40.Adapter的作用是什么?

常见的Adapter有哪些?

AndroidManifest.xml文件中主要有哪些信息?

答案:

它指定了该应用程序的Java包:

该包名作为应用程序的一个独特标识。

它描述了应用程序组件:

该应用程序由哪些activity,service,broadcastreceiver和contentprovider组成。

它指定了实现每个组件的类以及公开发布它们的能力(例如,它们能持有哪个Intent信息)。

这些声明使Android系统知道这儿有什么组件以及在什么条件下它们可以被载入。

它决定那些进程将容纳应用程序组件。

它声明了本应用程序必须拥有哪些许可,以便访问API的被保护部分,以及与其他应用程序交互。

它也声明了其他应用程序在和该应用程序交互时需要持有的许可。

它列出了Instrumentation类,可以在应用程序运行时提供简档和其他信息。

这些声明仅当应用程序在开发和测试过程中被提供;它们将在应用程序正式发布之前被移除。

它声明了该应用程序所需的AndroidAPI的最小化水平。

它列出了该应用程序必须链接的库。

启动一个线程使用run()还是start()?

答案:

启动线程肯定要用start()方法。

当用start()开始一个线程后,线程就进入就绪状态,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。

这并不意味着线程就会立即运行。

当cpu分配给它时间时,才开始执行run()方法(如果有的话)。

START()是方法,它调用RUN()方法.而RUN()方法是你必须重写的.run()方法中包含的是线程的主体。

41.你如何评价Android系统?

优缺点(总共写出5条即可)。

Android平台手机5大优势:

一、开放性

二、挣脱运营商的束缚

三、丰富的硬件选择

四、不受任何限制的开发商

五、无缝结合的Google应用

再说Android的5大不足:

一、安全和隐私

二、首先开卖Android手机的不是最大运营商

三、运营商仍然能够影响到Android手机

四、同类机型用户减少

五、过分依赖开发商缺少标准配置

42. 如何将SQLite数据库(dictionary.db文件)与apk文件一起发布?

解答:

可以将dictionary.db文件复制到EclipseAndroid工程中的resraw目录中。

所有在resraw目录中的文件不会被压缩,这样可以直接提取该目录中的文件。

可以将dictionary.db文件复制到resraw目录中

43.如何将打开resraw目录中的数据库文件?

解答:

在Android中不能直接打开resraw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中,然后再打开该数据库文件。

复制的基本方法是使用getResources().openRawResource方法获得resraw目录中资源的InputStream对象,然后将该InputStream对象中的数据写入其他的目录中相应文件中。

在AndroidSDK中可以使用SQLiteDatabase.openOrCreateDatabase方法来打开任意目录中的SQLite数据库文件。

44.activity一般会重载7个方法用来维护其生命周期,分别是什么(至少写5个)?

(见上)

 

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

答案:

FrameLayout(帧布局),LinearLayout(线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。

46.通过startService()和bindService()启动service,service的生命周期上有哪些不同?

答案:

通过startService()启动服务:

会调用如下生命周期方法:

onCreate()---->onStart()---->onDestory()

如果是调用bindService()启动服务:

会调用如下生命周期方法:

onCreate()---->o

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1