android功能测试面试 安卓测试面试题及答案_经验分享

前言

好久不见,甚是想念。各位朋友们,我又携带着最受大家欢迎的面试题回来了,可能会有朋友要问了:哎呀,你咋不更了,这不是上次那一份资料用完了嘛,这不,我又厚着脸皮去问我们公司的主管:Boss,给我份面试题呗。Boss瞥了我一眼,冷笑了一下就不做声了,最终在我答应带他上白银,他才拿了这份资料给我٩(๑❛ᴗ❛๑)۶老规矩:一天20题,喜欢的朋友点个关注就不会错过我的更新了,关注我,带你装*,带你飞。

21.sim卡的EF 文件有何作用

sim卡就是电话卡,sim卡内有自己的操作系统,用来与手机通讯的。Ef文件用来存储数据的。

22.Activity的状态有几种?

主要有以下三种状态:

1.运行
2.暂停
3.停止

23.让Activity变成一个窗口

设置activity的style属性=”@android:style/Theme.Dialog”

<activity
            android:name=".CondorMainActivity"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Dialog" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
  </activity>

24.android:gravity与android:layout_gravity的区别

gravity
表示组件内元素的对齐方式
layout_gravity
相对于父类容器,该视图组件的对齐方式

25.如何退出Activity

结束当前activity

Finish()
  killProgress()
  System.exit(0)

关闭应用程序时,结束所有的activity 可以创建一个List集合,每新创建一个activity,将该activity的实例放进list中,程序结束时,从集合中取出循环取出activity实例,调用finish()方法结束

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

onPuase方法中调用onSavedInstanceState()

27.Android中的长度单位详解

Px
像素
Sp与dp 是长度单位,但是与屏幕的单位密度无关.

28.activity,service,intent之间的关系

这三个都是Android应用频率非常的组件。Activityservice是四大核心组件。Activity用来加载布局,显示窗口界面,service运行后台,没有界面显示,intentactivityservice的通信使者。

29.activity之间传递参数,除了intent,广播接收器,contentProvider之外,还有那些方法?

File
文件存储,推荐使用sharedPreferecnces静态变量

30.Adapter是什么?你所接触过的adapter有那些?

是适配器,用来为列表提供数据适配的。经常使用的adapterbaseadapter,arrayAdapter,SimpleAdapter,cursorAdapter,SpinnerAdapter

31.Fragment与activity如何传值和交互?

Fragment对象有一个getActivity()的方法,通过该方法与activity交互
使用framentmentManager.findFragmentByXX可以获取fragment对象,在activity中直接操作fragment对象。

32.如果Listview中的数据源发生改变,如何更新listview中的数据

使用adapternotifyDataSetChanged方法

33.广播接受者的生命周期?

广播接收者的生命周期非常短。当执行onRecieve方法之后,广播就会销毁
在广播接受者不能进行耗时较长的操作
在广播接收者不要创建子线程。广播接收者完成操作后,所在进程会变成空进程,很容易被系统回收

34.ContentProvider与sqlite有什么不一样的?

ContentProvider 会对外隐藏内部实现,只需要关注访问contentProvideruri即可,contentProvider应用在app间共享。Sqlite操作本应用程序的数据库。ContentProiver可以对本地文件进行增删改查操作

35.如何保存activity的状态?

默认情况下activity的状态系统会自动保存,有些时候需要我们手动调用保存。

activity处于onPauseonStop之后,activity处于未活动状态,但是activity对象却仍然存在。当内存不足,onPauseonStop之后的activity可能会被系统摧毁。

当通过返回退出activity时,activity状态并不会保存。

保存activity状态需要重写onSavedInstanceState()方法,在执行onPause,onStop之前调用onSavedInstanceState方法,onSavedInstanceState需要一个Bundle类型的参数,我们可以将数据保存到bundle中,通过实参传递给onSavedInstanceState方法。

Activity被销毁后,重新启动时,在onCreate方法中,接受保存的bundle参数,并将之前的数据取出。

36.Android中activity,context,application有什么不同。

Contentapplication都继承与contextWrappercontextWrapper继承于Context类。

Context:

表示当前上下文对象,保存的是上下文中的参数和变量,它可以让更加方便访问到一些资源。
Context通常与activity的生命周期是一样的,application表示整个应用程序的对象。

对于一些生命周期较长的,不要使用context,可以使用application

activity中,尽量使用静态内部类,不要使用内部类。内部里作为外部类的成员存在,不是独立于activity,如果内存中还有内存继续引用到contextactivity如果被销毁,context还不会结束。

37.Service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?

默认情况servicemain thread中执行,当service在主线程中运行,那在service中不要进行一些比较耗时的操作,比如说网络连接,文件拷贝等。

38.Service 和 Activity 在同一个线程吗

默认情况下serviceactivity在同一个线程,都在main Thread,或者ui线程中。

如果在清单文件中指定serviceprocess属性,那么service就在另一个进程中运行。

39.Service 里面可以弹Toast么

可以。

40.在 service 的生命周期方法 onstartConmand()可不可以执行网络操作?如何在 service 中执行网络操作?

可以的,就在onstartConmand方法内执行。

结尾

今天的二十题安卓面试题就到此为止了,关注我,后续每日都会准时更新哦,喜欢的朋友不要吝啬你的赞和收藏哦,那我们明天再见!