Android面试题目大全Word文档下载推荐.docx

上传人:b****1 文档编号:5765016 上传时间:2023-05-05 格式:DOCX 页数:49 大小:44.94KB
下载 相关 举报
Android面试题目大全Word文档下载推荐.docx_第1页
第1页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第2页
第2页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第3页
第3页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第4页
第4页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第5页
第5页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第6页
第6页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第7页
第7页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第8页
第8页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第9页
第9页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第10页
第10页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第11页
第11页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第12页
第12页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第13页
第13页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第14页
第14页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第15页
第15页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第16页
第16页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第17页
第17页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第18页
第18页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第19页
第19页 / 共49页
Android面试题目大全Word文档下载推荐.docx_第20页
第20页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Android面试题目大全Word文档下载推荐.docx

《Android面试题目大全Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Android面试题目大全Word文档下载推荐.docx(49页珍藏版)》请在冰点文库上搜索。

Android面试题目大全Word文档下载推荐.docx

如何工作?

能处理哪些类型的数据?

请解释下Android程序运行时权限与文件系统权限的区别。

系统上安装了多种浏览器,能否指定某浏览器访问指定页面?

对多线程的运用和理解,及多线程之间handle的传值。

对android虚拟机的理解,包括内存管理机制垃圾回收机制。

Framework工作方式及原理,Activity是如何生成一个view的,机制是什么。

 

android本身的一些限制,比如apk包大小限制,读取大文件时的时间限。

如何加载的音乐信息,如何改善其效率。

ListView如何提高其效率?

启动应用后,改变系统语言,应用的语言会改变么?

启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?

Android程序与Java程序的区别?

Android中Task任务栈的分配。

在Android中,怎么节省内存的使用,怎么主动回收内存?

不同工程中的方法是否可以相互调用?

在Android中是如何实现判断区分通话记录中的电话状态,去电,来电、未接来电?

dvm的进程和Linux的进程,应用程序的进程是否为同一个概念

sim卡的EF文件有何作用

如何判断是否有SD卡?

嵌入式操作系统内存管理有哪几种,各有何特性。

什么是嵌入式实时操作系统,Android操作系统属于实时操作系统吗?

一条最长的短信息约占多少byte?

 

Linux中跨进程通信的几种方式。

谈谈对AndroidNDK的理解。

谈谈Android的优点和不足之处。

Android系统中GC什么情况下会出现内存泄露呢?

AndroidUI中的View如何刷新。

简单描述下Android数字签名。

什么是ANR如何避免它?

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

handler机制的原理。

android中线程与线程,进程与进程之间如何通信。

说说mvc模式的原理,它在android中的运用。

android中有哪几种解析xml的类,官方推荐哪种?

以及它们的原理和区别。

DDMS与TraceView的区别?

res目录有默认几项resource。

·

android的哪个版本是一次重大的升级?

1. 

什么是Activity?

四大组件之一,一般的,一个用户交互界面对应一个activity

setContentView(),// 

要显示的布局

2. 

请描述一下Activity 

生命周期。

共有七个周期函数:

voidonCreate(BundlesavedInstanceState) 

voidonStart() 

voidonRestart() 

voidonResume() 

voidonPause() 

voidonStop() 

voidonDestroy() 

1.完整生命周期:

即一个activity从出现到消失,对应的周期方法是从onCreate到onDestroy 

2.可见生命周期:

从onStart()到onStop()方法,在这个周期中,用户可以看见Activity,但不一定能够与之交互,这两个方法可以随着状态的变化被执行多次。

3.前景生命周期:

从onResume()到onPause()方法,在这个周期中,Activity处在其它Activity之前,即在Activity栈的最顶端,负责与用户进行交互,伴随着状态的变化,这两个方法可以被执行多次。

3. 

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

一般情况比如说有两个activity,分别叫A,B,当在A里面激活B组件的时候,A 

会调用onPause()方法,然后B 

调用onCreate(),onStart(),OnResume(),这个时候B覆盖了窗体,A会调用onStop()方法. 

如果B呢是个透明的,或者是对话框的样式, 

就不会调用onStop()方法

4. 

横竖屏切换时候Activity的生命周期。

这个生命周期跟清单文件里的配置有关系

1、不设置Activity的android:

configChanges时,切屏会重新调用各个生命周期

默认首先销毁当前activity,然后重新加载

2、设置Activity的android:

configChanges="

orientation|keyboardHidden"

时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

游戏开发中, 

屏幕的朝向都是写死的. 

5. 

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

可以自定义一个activity的样式,详细见手机卫士的程序详细信息

android:

theme="

@style/FloatActivity"

E:

\day9\mobilesafe\res\values\style

6. 

你后台的Activity被系统回收怎么办?

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

除了在栈顶的activity,其他的activity都有可能在内存不足的时候被系统回收,一个activity越处于栈底,被回收的可能性越大.

protectedvoidonSaveInstanceState(BundleoutState){

super.onSaveInstanceState(outState);

outState.putLong("

id"

1234567890);

}

publicvoidonCreate(BundlesavedInstanceState){

//判断savedInstanceState是不是空.

//如果不为空就取出来

super.onCreate(savedInstanceState);

7. 

如何退出Activity?

退出activity 

直接调用finish() 

方法.//用户点击back键就是退出一个activity 

会执行onDestroy()方法.

1、抛异常强制退出:

该方法通过抛异常,使程序ForceClose。

验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出ForceClose的窗口。

//安全结束进程 

android.os.Process.killProcess(android.os.Process.myPid());

2、记录打开的Activity:

每打开一个Activity,就记录下来。

在需要退出时,关闭每一个Activity即可。

List<

Activity>

lists;

在application 

全集的环境里面

lists=newArrayList<

();

lists.add(activity);

for(Activityactivity:

lists)

{

activity.finish();

3、发送特定广播:

在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可。

//给某个activity 

注册接受接受广播的意图 

registerReceiver(receiver,filter)

//如果过接受到的是关闭activity的广播 

就调用finish()方法把当前的activityfinish()掉

4、递归退出

在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。

上面是网上的一些做法.

其实可以通过intent的flag 

来实现..intent.setFlag(FLAG_ACTIVITY_CLEAR_TOP)激活一个新的activity,然后在新的activity的oncreate方法里面finish掉.

Intentintent=newIntent(this,B.class);

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

局限性:

所有的activity的启动模式都要是默认的启动模式

8.service是否在mainthread中执行,service里面是否能执行耗时的操作?

默认情况,如果没有显示的指定service所运行的进程,Service和activity是运行在当前app所在进程的mainthread(UI主线程)里面 

service里面不能执行耗时的操作(网络请求,拷贝数据库,大文件)

在子线程中执行newThread(){}.start();

特殊情况,可以在清单文件配置service 

执行所在的进程,让service在另外的进程中执行 

<

service 

process="

cn.itcast.xxx"

>

/service>

9. 

两个Activity之间怎么传递数据?

基本数据类型可以通过. 

Intent 

传递数据 

extras.putDouble(key,value)

intent.putExtra(name,value) 

// 

通过intentputExtra 

方法基本数据类型都传递

Bundlebundle=new 

Bundle();

 

bumdle.putShort(key,value);

intent.putExtras(bundle);

intent.putExtras(bundle)

获取到激活他的 

getIntent();

Intentintent=getIntent();

Bundlebundle=intent.getExtras();

intent.getStringExtra("

key"

"

value"

);

intent.getBooleanExtra("

Application 

全局里面存放对象,自己去实现自己的application的这个类,基础系统的application, 

每个activity都可以取到

让对象实现implements 

Serializable 

接口把对象存放到文件上. 

让类实现Serializable 

接口,然后可以通过ObjectOutputStream 

//对象输出流 

Filefile=newFile("

c:

\\1.obj"

FileOutputStreamfos 

=newFileOutputStream(file);

ObjectOutputStreamoos=newObjectOutputStream(fos);

Studentstu=newStudent();

stu.setId("

10001"

stu.setName("

zs"

oos.writeObject(stu);

FileInputStreamfis=newFileInputStream(file);

ObjectInputStreamois=newObjectInputStream(fis);

Studentstu1=(Student)ois.readObject();

System.out.println(stu1.getName());

Parcelable 

和Serializable 

把对象序列化到android操作系统的一块公用的内存空间

文件/网络

intent.setData(Uri) 

Uri.fromFile();

//大图片的传递

contentResolver.getInputStream(url);

10. 

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

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

11. 

同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?

比方说在激活一个新的activity时候, 

给intent设置flag

Intent的flag添加FLAG_ACTIVITY_NEW_TASK

这个被激活的activity就会在新的task栈里面…

Intentintent=newIntent(A.this,B.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);

12.Activity怎么和service绑定,怎么在activity中启动自己对应的service?

startService() 

一旦被创建 

调用着无关 

没法使用service里面的方法

bindService() 

把service 

与调用者绑定,如果调用者被销毁,service会销毁

bindService() 

我们可以使用service里面的方法

bindService(). 

让activity能够访问到service里面的方法

构建一个intent对象,

Intentservice=newIntent(this,MyService.class);

通过bindService的方法去启动一个服务,

bindService(intent,newMyConn(),BIND_AUTO_CREATE);

ServiceConnection对象(重写onServiceConnected和OnServiceDisconnected方法) 

和BIND_AUTO_CREATE.

privateclassmyconnimplementsServiceConnection

{

publicvoidonServiceConnected(ComponentNamename,IBinderservice){

//TODOAuto-generatedmethodstub

//可以通过IBinder的对象去使用service里面的方法

}

publicvoidonServiceDisconnected(ComponentNamename){

13.什么是Service以及描述下它的生命周期。

Service有哪些启动方法,有什么区别,怎样停用Service?

在Service的生命周期中,被回调的方法比Activity少一些,只有onCreate,onStart,onDestroy,

onBind和onUnbind。

通常有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。

通过startService

Service会经历onCreate 

到onStart,然后处于运行状态,stopService的时候调用onDestroy方法。

如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。

通过bindService 

Service会运行onCreate,然后是调用onBind,这个时候调用者和Service绑定在一起。

调用者退出了,Srevice就会调用onUnbind->

onDestroyed方法。

所谓绑定在一起就共存亡了。

调用者也可以通过调用unbindService方法来停止服务,这时候Srevice就会调用onUnbind->

需要注意的是如果这几个方法交织在一起的话,会出现什么情况呢?

一个原则是Service的onCreate的方法只会被调用一次,就是你无论多少次的startService又bindService,Service只被创建一次。

如果先是bind了,那么start的时候就直接运行Service的onStart方法,如果先是start,那么bind的时候就直接运行onBind方法。

如果service运行期间调用了bindService,这时候再调用stopService的话,service是不会调用onDestroy方法的,service就stop不掉了,只能调用UnbindService,service就会被销毁

如果一个service通过startService 

被start之后,多次调用startService 

的话,service会多次调用onStart方法。

多次调用stopService的话,service只会调用一次onDestroyed方法。

如果一个service通过bindService被start之后,多次调用bindService的话,service只会调用一次onBind方法。

多次调用unbindService的话会抛出异常。

15. 

不用service,B页面为音乐播放,从A跳转到B,再返回,如何使音乐继续播放?

这个问题问的很山寨.默认不做任何处理,B里面的音乐都能播放. 

遇到问题, 

可以随机应变,灵活发挥,多考虑些细节,比如说这个题就可以这样说,说说你对startActivityForResult的理解()

A开启B的时候,用startActivityForResult()方法,B返回的时候把播放的状态信息返回给A,A继续播放音乐. 

16. 

什么是IntentService?

普通的service,默认运行在uimain 

主线程

Sdk给我们提供的方便的,带有异步处理的service类,

异步处理的方法 

OnHandleIntent()

OnHandleIntent() 

处理耗时的操作

17. 

什么时候使用Service?

拥有service的进程具有较高的优先级

官方文档告诉我们,Android系统会尽量保持拥有service的进程运行,只要在该service已经被启动(start)或者客户端连接(bindService)到它。

当内存不足时,需要保持,拥有service的进程具有较高的优先级。

1.如果service正在调用onCreate, 

onStartCommand或者onDestory方法,那么用于当前service的进程相当于前台进程以避免被killed。

2.如果当前service已经被启动(start),拥有它的进程则比那些用户可见的进程优先级低一些,但是比那些不可见的进程更重要,这就意味着service一般不会被killed.

3.如果客户端已经连接到service(bindService),那么拥有Service的进程则拥有最高的优先级,可以认为service是可见的。

4.如果service可以使用startForeground(true)方法来将service设置为前台状态,那么系统就认为是对用户可见的,并不会在内存不足时killed。

如果有其他的应用组件作为Service,Activity等运行在相同的进程中,那么将会增加该进程的重要性。

1.Service的特点可以让他在后台一直运行,可以在service里面创建线程去完成耗时的操作. 

天气预报widgetTimerTaskTimer

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2