搜档网
当前位置:搜档网 › Android面试题整理很全面.doc

Android面试题整理很全面.doc

Android面试题整理很全面.doc
Android面试题整理很全面.doc

1. 什么是Activity?

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

setContentView() ,// 要显示的布局

, activity 是Context的子类,同时实现了window.callback和keyevent.callback, 可以处理与窗体用户交互的事件.

button.setOnclickLinstener{

}

我开发常用的的有ListActivity , PreferenceActivity ,TabAcitivty等…

如果界面有共同的特点或者功能的时候,还会自己定义一个BaseActivity.

进度对话框的显示与销毁 doubanservice

2. 请描述一下Activity 生命周期。

生命周期描述的是一个类从创建(new出来)到死亡(垃圾回收)的过程中会执行的方法..

在这个过程中会针对不同的生命阶段会调用不同的方法

Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:oncreate ondestroy onstop onstart onresume onpause

其实这些方法都是两两对应的,onCreate创建与onDestroy销毁;

onStart可见与onStop不可见;onResume可编辑(即焦点)与onPause;

对话框的弹出, Activity.this

这6个方法是相对应的,那么就只剩下一个onRestart方法了,这个方法在什么时候调用呢?答案就是:在Activity被onStop后,但是没有被onDestroy,在再次启动此Activity时就调用onRestart(而不再调用onCreate)方法;

如果被onDestroy了,则是调用onCreate方法。

最后讲自己项目中的经验,比如说豆瓣客户端每次进入某个界面的时候都要看到最新的数据,这个刷新列表的操作就放在onStart()的方法里面.

fillData() 这样保证每次用户看到的数据都是最新的.

多媒体播放, 播放来电话. onStop() 视频, 视频声音设置为0 , 记录视频播放的位置mediaplayer.pause();

onStart() 根据保存的状态恢复现场. mediaplayer.start();

在读文档的时候还发现 activity还有两个方法 onPostResume() 和 OnPostCreate()这两个生命周期的方法,不过开发的时候没有用到过.

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

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

onPause()方法,然后B 调用onCreate() ,onStart(), OnResume() ,

这个时候B覆盖了窗体, A会调用onStop()方法. 如果B呢是个透明的,或者是对话框的样式, 就不会调用onStop()方法.对话框的话也不会调用Onpause()方法.因为对话框也是Activity的一部分.不等于失去焦点.

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

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

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期

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

Onpause onstop ondestory oncreate onstart onresume

2、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

游戏开发中, 屏幕的朝向都是写死的.

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

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

android:theme="@style/FloatActivity"

E:\day9\mobilesafe\res\values\style

给Activity设置一个浮动的窗口样式

主题是作用在Activity和Application上的.

样式是作用在某个控件上的.

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

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

//当系统回收时会调用下面的方法.可以将应用的状态保存在这个方法中.

protected void onSaveInstanceState(Bundle outState) {

super.onSaveInstanceState(outState);

outState.putLong("id", 1234567890);

}

//恢复现场

public void onCreate(Bundle savedInstanceState) {

//判断 savedInstanceState是不是空.

//如果不为空就取出来

super.onCreate(savedInstanceState);

}

7. 如何退出Activity?如何安全退出已调用多个Activity的Application?

退出activity 直接调用 finish () 方法 . //用户点击back键就是退出一个activity 退出activity 会执行 onDestroy()方法 .

1、抛异常强制退出:

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

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

//安全结束进程 android.os.Process.killProcess(android.os.Process.myPid());

2、记录打开的Activity:

每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。

List lists ; 在application 全集的环境里面

lists = new ArrayList();

每一个activity在执行oncreate()方法的时候 lists.add(this);

每一个Activity在执行Ondestory()方法的时候 lists.remove(this);

lists.add(activity);

for(Activity activity: lists)

{

activity.finish();

}

3、发送特定广播:

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

//给某个activity 注册接受接受广播的意图

registerReceiver(receiver, filter)

//如果过接受到的是关闭activity的广播就调用finish()方法把当前的activity finish()掉

4、递归退出

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

404 退出程序

OnActivityResult();

讲一讲你对activity的理解

把上面的几点用自己的心得写出来

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

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

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

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

特殊情况 ,可以在清单文件配置 service 执行所在的进程 ,

让service在另外的进程中执行

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

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

extras.putDouble(key, value)

intent.putExtra(name, value)

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

Bundle bundle = new Bundle();

b undle.putShort(key, value);

i ntent.putExtras(bundle);

intent.putExtras(bundle)

获取到激活他的 getIntent();

Intent intent = getIntent();

Bundle bundle = intent.getExtras();

Bundle 类似map的集合

intent.getStringExtra("key","value");

intent.getBooleanExtra("key","value")

Application 全局里面存放对象 ,自己去实现自己的application的这个类,继承系统的application , 每个activity都可以取到

让对象实现 implements Serializable 接口把对象存放到文件上.

让类实现Serializable 接口,然后可以通过 ObjectOutputStream //对象输出流

File file = new File("c:\\1.obj");

FileOutputStream fos = new FileOutputStream(file);

ObjectOutputStream oos = new ObjectOutputStream(fos);

Student stu = new Student();

stu.setId("10001");

stu.setName("zs");

oos.writeObject(stu);

FileInputStream fis = new FileInputStream(file);

ObjectInputStream ois = new ObjectInputStream(fis);

Student stu1 = (Student) ois.readObject();

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

Parcelable 和Serializable

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

文件/网络

//传递数据的引用

intent.setData(Uri)

Uri.fromFile(); //大图片的传递

contentResolver.getInputStream(uri);

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

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

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

比方说在激活一个新的activity时候, 给intent设置flag

Intent的flag添加FLAG_ACTIVITY_NEW_TASK singleinstance 单独的任务栈这个被激活的activity就会在新的task栈里面…

Intent intent = new Intent(A.this,B.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);

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

startService() 一旦被创建调用着无关没法使用service里面的方法.如果Activity 被销毁了.则Service依然还在.

bindService () 把service 与调用者绑定 ,如果调用者被销毁, service会销毁bindService() 我们可以使用service 里面的方法

bindService(). 让activity能够访问到 service里面的方法

Activity通过bindService来启动一个Service.在Service中会调用OnBind方法返回一个带有Service方法引用的IBinder对象.在Activity中用这个对象就可以调用Service中的方法了.

构建一个intent对象,

Intent service = new Intent(this,MyService.class);

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

bindService(intent, new MyConn(), BIND_AUTO_CREATE);

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

private class myconn implements ServiceConnection

{

public void onServiceConnected(ComponentName name, IBinder service) { // TODO Auto-generated method stub

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

}

public void onServiceDisconnected(ComponentName name) {

// TODO Auto-generated method stub

}

}

13. 14 .什么是Service以及描述下它的生命周期。Service有哪些启动方法,有什么区别,怎样停用Service?

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

onBind和onUnbind。

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

1 通过startService

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

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

2 通过bindService

Service会运行onCreate,然后是调用onBind,这个时候调用者和Service绑定在一起。调用者退出了,Srevice就会调用onUnbind->onDestroyed方法。

所谓绑定在一起就共存亡了。调用者也可以通过调用unbindService方法来停止服务,这时候Srevice就会调用onUnbind->onDestroyed方法。

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

一个原则是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 ,默认运行在ui main 主线程

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可以使用setForeground(true)方法来将service设置为前台状态,那么

系统就认为是对用户可见的,并不会在内存不足时killed。

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

1.Service的特点可以让他在后台一直运行,可以在service里面创建线程去完成耗时的操作. 天气预报 widget TimerTask Timer 定期执行timertask

2.Broadcast receiver捕获到一个事件之后,可以起一个service来完成一个耗时的操作.

Broadcast receiver生命周期和响应时间很短

3.远程的service如果被启动起来,可以被多次bind, 但不会重新create. 索爱手机X10i的人脸识别的service可以被图库使用,可以被摄像机,照相机等程序使用.

18. 请描述一下Intent 和 Intent Filter。

Android 中通过 Intent 对象来表示一条消息,一个 Intent 对象不仅包含有这个消息的目的地,还可以包含消息的内容,这好比一封 Email,其中不仅应该包含收件地址,还可以包含具体的内容。对于一个 Intent 对象,消息“目的地”是必须的,而内容则是可选项。通过Intent 可以实现各种系统组件的调用与激活.

Intent filter: 可以理解为邮局或者是一个信笺的分拣系统…

这个分拣系统通过3个参数来识别

Action: 动作 Intent.ation_view

Data: 数据uri uri mime

Category : 而外的附加信息

Action 匹配

Action 是一个用户定义的字符串,用于描述一个 Android 应用程序组件,一个 Intent Filter 可以包含多个 Action。在 AndroidManifest.xml 的 Activity 定义时可以在其节点指定一个 Action 列表用于标示 Activity 所能接受的“动作”,例如:

……

如果我们在启动一个 Activity 时使用这样的 Intent 对象:

Intent intent =new Intent();

intent.setAction("cn.itcast.action");

那么所有的 Action 列表中包含了“cn.itcast”的 Activity 都将会匹配成功。

Android 预定义了一系列的 Action 分别表示特定的系统动作。这些 Action 通过常量的方式定义在 android.content. Intent中,以“ACTION_”开头。我们可以在 Android 提供的文档中找到它们的详细说明。

URI 数据匹配

一个 Intent 可以通过 URI 携带外部数据给目标组件。在 节点中,通过节点匹配外部数据。

mimeType 属性指定携带外部数据的数据类型,scheme 指定协议,host、port、path 指定数据的位置、端口、和路径。如下:

android:host="host" android:port="port" android:path="path"/>

电话的uri tel: 12345

https://www.sodocs.net/doc/dc873669.html,

自己定义的uri itcast://cn.itcast/person/10

如果在 Intent Filter 中指定了这些属性,那么只有所有的属性都匹配成功时 URI 数据匹配才会成功。

Category 类别匹配

节点中可以为组件定义一个 Category 类别列表,当 Intent 中包含这个列表的所有项目时 Category 类别匹配才会成功。

默认是DEFAULT

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

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

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

20. 说说Activity,Intent,Service是什么关系。

麦当劳和麦当娜的关系是什么关系?

这种问题,就讲下activity,讲一下service,说一下通过intent去激活组件,传递数据.

说自己项目中有这样一个网络更新的功能,显示界面就用的activity, 后台有个service每隔半小时都去访问下服务器获取更新的数据…

开启服务用的是intent来开启

21.请描述一下Broadcast Receiver。

有很多广播接收者 ,系统已经实现了.

广播分两种

有序广播

无序广播

指定接收者的广播 . 是不可以被拦截掉的

onReceive() 方法.

abortBroadcast();

有序广播有一个特例

用于接收系统的广播通知, 系统会有很多sd卡挂载,手机重启,广播通知,低电量,来短信

等,一个apk的安装成功….

手机卫士中自定义一个broadcast receiver

sms_received

来获取短信到来的广播, 根据黑名单来判断是否拦截该短信.

画画板生成图片后,发送一个sd挂载的通知,通知系统的gallery去获取到新的图片.

Intent intent = new

Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://"+Environment.ge tExternalStorageDirectory()));

sendBroadcast(intent);

22. 在manifest和代码中如何注册和使用 broadcast receiver 。

设置广播接收者的优先级,设置广播接受者的action名字等…

详细见工程代码.

android:name="android.provider.Telephony.SMS_RECEIVED"/>

代码中注册,如果代码没有执行,就接受不到广播事件

23. 请介绍下ContentProvider是如何实现数据共享的。

把自己的数据通过uri的形式共享出去

android 系统下不同程序数据默认是不能共享访问

需要去实现一个类去继承ContentProvider

public class PersonContentProvider extends ContentProvider{

public boolean onCreate(){

//..

}

query(Uri, String[], String, String[], String)

insert(Uri, ContentValues)

update(Uri, ContentValues, String, String[])

delete(Uri, String, String[])

}

content:// 代表contentprovider

技巧: 1.看urlmarcher.

2. 根据匹配码查看增删改查的具体实现

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

文件访问权限. sdcard

/data/data/包名/files 内存里面

/ context.openFileInput(name) 默认是私有的访问权限数据库 sqlite

SharedPreference //包名/shared_preps Context.modeprivate

网络 socket tcp 面向连接打电话 udp 平信 udp,

http httpurlconnection

Android httpclient post get

ftp的网络 file transport protocol

25. 为什么要用ContentProvider?它和sql的实现上有什么差别?

屏蔽数据存储的细节,对用户透明,用户只需要关心操作数据的uri就可以了,对应的参数 .

不同app之间共享,操作数据

但是contentprovider 还可以去增删改查本地文件. xml文件的读取,更改,

网络数据读取更改

Sql也有增删改查的方法.

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

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

FrameLayout

从屏幕的左上角开始布局,叠加显示, 实际应用播放器的暂停按钮.

LinearLayout

线性布局,这个东西,从外框上可以理解为一个div,他首先是一个一个从上往下罗列在屏幕上。每一个LinearLayout里面又可分为垂直布局

(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。

AbsoluteLayout

绝对布局犹如div指定了absolute属性,用X,Y坐标来指定元素的位置android:layout_x="20px"

android:layout_y="12px"

qq斗地主 qq游戏大厅 800*480 800*480.apk fwvga 854*480 320*240

指定平板机型的游戏开发中经常用到绝对布局 widget 绝对布局

指定机型的平板游戏开发. 2.3 3.0

android 2.2 2.3 2.3 sip 开发网络电话 session setup protocol 2.3 支持摄像头Android 3.0 3.1 针对平板电脑

分裂

4.0 平板平板电视机机顶盒

1.界面布局任务管理器 gridview

2.手机任务管理 listview

lephone

lepad

RelativeLayout

相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:相对于某一个元素

android:layout_below="@id/aaa" 该元素在 id为aaa的下面

android:layout_toLeftOf="@id/bbb" 改元素的左边是bbb

相对于父元素的地方

android:layout_alignParentLeft="true" 在父元素左对齐

android:layout_alignParentRight="true" 在父元素右对齐

TableLayout

表格布局类似Html里面的Table。每一个TableLayout里面有表格行TableRow,TableRow 里面可以具体定义每一个元素,设定他的对齐方式 android:gravity="" 。

每一个布局都有自己适合的方式,另外,这五个布局元素可以相互嵌套应用,做出美观的界面。

oa 自动化生成报表 ,图标表示

css div

webview

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

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

28. widget相对位置的完成在activity的哪个生命周期阶段实现。

这个题没看懂…

widget可以理解成桌面小控件,

也可以理解成某个button, imageview这样的控件…

onmeasure() // 计算控件在屏幕上的位子

某个view 要显示在界面 ondraw 被显示到界面上的

29. 请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。

Activity 里面默认会帮创建Looper

子线程里面显示土司

Looper.parepare();

Toast

Looper.loop();

30. AIDL的全称是什么?如何工作?

Android interface definition language (android接口定义语言) ,

用来跨进程的访问方法,

访问远程的服务的方法. 如何工作 day7 queryStudent .

.endcall();

手机卫士 Itelephony 接口挂断电话.

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

Android程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 打电话,访问网络,获取坐标,写sd卡,读写联系人等..安装的时候会提示用户…

-rw------ 私有权限 -rw-rw-rw- 全局可读可写 linux系统的文件权限

文件系统的权限是linux权限. 比如说sharedpreference里面的Context.Mode_private Context.Mode.world_read_able Context.Mode_world_writeable

777自己同组其他

root 是危险的行为

32.系统上安装了多种浏览器,能否指定某浏览器访问指定页面?Intent .setAction(VIEW)

setData("http://")

找到对应的浏览器的意图,传递数据URI , 激活这个意图

Intent intent = new Intent();

// com.android.browser/.BrowserActivity

intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity ");

Intent.setdata(uri);

queryintentactivity(); 推广自己产品的操作

33. 对android主线程的运用和理解。

主ui线程不能执行耗时的操作,

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

虚拟机很小,空间很小,谈谈移动设备的虚拟机的大小限制默认 16M

谈谈加载图片的时候怎么处理大图片的,

垃圾回收,没有引用的对象,在某个时刻会被系统gc掉.

System.gc(); 不是立刻去执行垃圾回收.

Moblietv 获取300 30K 频道.icon gallery

手机电视. 视频点播. Onstop() 通知gc();

别的界面图片白板.

遇到一个不可复现的bug, 不解决 won't fix

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

反射 , 配置文件

可以讲下activity的源码,比如说每个activity里面都有window.callback和keyevent.callback,一些回调的接口或者函数吧. 框架把activity创建出来就会调用里面的这些回调方法,会调用activity生命周期相关的方法.

setContentView();

普通的情况:

Activity创建一个view是通过 ondraw 画出来的, 画这个view之前呢,还会调用onmeasure方法来计算显示的大小.

Surfaceview 直接操作硬件 opengl .GLSurfaceView

图像要想被显示到界面上, 需要设备显卡, 显存.

写到显存.

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

这个问题问的有问题, apk包大小限制不好说,

极品飞车有100M 还是能装到手机上,

// apk 资源文件素材.

世面google market 上大程序主程序很小 5~10M 下载sdcard

15分钟之内申请退款

apk包,精简包, 素材存放在服务器. 游戏程序.

读大文件的时间限制应该是main线程里面的时间限制吧.5秒.

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

Mp3 作者信息专辑图片歌词信息 id3 id3v1 id3v2

Android提供mediascanner,mediaStore等接口, 音乐文件的信息都会存放到系统的数据库

表中,可以通过content provider获取,

显示出来,改善效率,是个常见问题, 可以从以下几个方面作答,

分批加载数据, 延时加载数据, 合理使用缓存等...

Java虚拟机, 目标, 加快java程序执行速度

预先加载一些都会的使用的大的class的字节码, 提前加载.

时间换时间

空间换时间

38. ListView如何提高其效率?

复用convertview , 历史的view对象

异步加载数据, 分页加载数据, onscallLinster();

Static class ViewHolder

使用静态的view对象避免创建过多的view.

把下载后的数据缓存到数据库里

客户端和服务器协同作战 .

Http 请求

If-modify-since : 检查数据是否更新 1.html 2001年 302 拿缓存

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

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

区别是根据activity在manifest里面的配置,这个activity可能会放在不同的task栈里面

intent设置的flag flag_new_task

41. Android程序与Java程序的区别?

Android程序用android sdk开发,java程序用javasdk开发.

Android SDK引用了大部分的Java SDK,少数部分被Android SDK抛弃,比如说界面部分,java.awt swing package除了java.awt.font被引用外,其他都被抛弃,在Android平台开发中不能使用。

android sdk 添加工具jar httpclient , pull openGL

将Java 游戏或者j2me程序移植到Android平台的过程中,

Android SDK 与Java SDK的区别是很需要注意的地方。

1.6的不支持 httpUrlconning 获取 last-modified 信息的处理

simpleDataFormat

42.Android中Task任务栈的分配。

假如有三个Activity A B C,A跳到B,然后B跳到C,现在需要从C跳到A如何传递数据而且使效率最高呢?

首先我们来看下Task的定义,Google是这样定义Task的:a task is what the user experiences as an "application." It's a group of related activities, arranged in a stack. A task is a stack of activities, not a class or an element in the manifest file. 这意思就是说Task实际上是一个Activity栈,通常用户感受的一个Application 就是一个Task。从这个定义来看,Task跟Service或者其他Components是没有任何联系的,它只是针对Activity而言的。

Activity有不同的启动模式, 可以影响到task的分配

Task,简单的说,就是一组以栈的模式聚集在一起的Activity组件集合。它们有潜在的前后驱关联,新加入的Activity组件,位于栈顶,并仅有在栈顶的Activity,才会有机会与用户进行交互。而当栈顶的Activity完成使命退出的时候,Task会将其退栈,并让下一个将跑到栈顶的Activity来于用户面对面,直至栈中再无更多Activity,Task结束。

如上表所示,是一个实例。从用户从进入邮箱开始,到回复完成,退出应用整个过程的Task 栈变化。这是一个标准的栈模式,对于大部分的状况,这样的Task模型,足以应付,但是,涉及到实际的性能、开销等问题,就会变得残酷许多。

比如,启动一个浏览器,在Android中是一个比较沉重的过程,它需要做很多初始化的工作,并且会有不小的内存开销。但与此同时,用浏览器打开一些内容,又是一般应用都会有的一个需求。设想一下,如果同时有十个运行着的应用(就会对应着是多个Task),都需要启动浏览器,这将是一个多么残酷的场面,十个Task栈都堆积着很雷同的浏览器Activity,

是多么华丽的一种浪费啊。

于是你会有这样一种设想,浏览器Activity,可不可以作为一个单独的Task而存在,不管

是来自那个Task的请求,浏览器的Task,都不会归并过去。这样,虽然浏览器Activity 本身需要维系的状态更多了,但整体的开销将大大的减少,这种舍小家为大家的行为,还是很值得歌颂的

standard", "singleTop", "singleTask", "singleInstance"。

standard模式,是默认的也是标准的Task模式,在没有其他因素的影响下,使用此模式的Activity,会构造一个Activity的实例,加入到调用者的Task栈中去,对于使用频度一般开销一般什么都一般的Activity而言,standard模式无疑是最合适的,因为它逻辑简单条理清晰,所以是默认的选择。

而singleTop模式,基本上于standard一致,仅在请求的Activity正好位于栈顶时,有所区别。此时,配置成singleTop的Activity,不再会构造新的实例加入到Task栈中,而是将新来的Intent发送到栈顶Activity中,栈顶的Activity可以通过重载onNewIntent来处理新的Intent(当然,也可以无视...)。这个模式,降低了位于栈顶时的一些重复开销,更避免了一些奇异的行为(想象一下,如果在栈顶连续几个都是同样的Activity,再一级级退出的时候,这是怎么样的用户体验...),很适合一些会有更新的列表Activity展示。一个活生生的实例是,在Android默认提供的应用中,浏览器(Browser)的书签Activity (BrowserBookmarkPage),就用的是singleTop。

singleTask,和singleInstance,则都采取的另辟Task的蹊径。

标志为singleTask的Activity,最多仅有一个实例存在,并且,位于以它为根的Task中。所有对该Activity的请求,都会跳到该Activity的Task中展开进行。singleTask,很象概念中的单件模式,所有的修改都是基于一个实例,这通常用在构造成本很大,但切换成本较小的Activity中。最典型的例子,还是浏览器应用的主Activity(名为Browser...),它是展示当前tab,当前页面内容的窗口。它的构造成本大,但页面的切换还是较快的,于singleTask相配,还是挺天作之合的。

singleInstance显得更为极端一些。在大部分时候singleInstance与singleTask完全一致,唯一的不同在于,singleInstance的Activity,是它所在栈中仅有的一个Activity,如果涉及到的其他Activity,都移交到其他Task中进行。这使得singleInstance的Activity,像一座孤岛,彻底的黑盒,它不关注请求来自何方,也不计较后续由谁执行。在Android默认的各个应用中,很少有这样的Activity,在我个人的工程实践中,曾尝试在有道词典的快速取词Activity中采用过,

是因为我觉得快速取词入口足够方便(从notification中点选进入),并且会在各个场合使用,应该做得完全独立。

大的apk 拆成很多小的apk

●Activity的 android:taskAffinity=""属性姻缘关系

1.配置后当启动这个activity时就先去找有没有activity的亲和力属性相同有就加入这个

activity所在的任务中没有就新开任务

2.affinity起作用需要的条件而者具备一个:

1.intent包含FLAG_ACTIVITY_NEW_TASK标记

2.activity元素启用了allowTaskReparenting属性. true

Android工程师笔试题及答案(汇编)

Android工程师面试题 一、基础(79分) 1. String s = new String("xyz");创建了几个String Object? ( )3分 A、1个 B、2个 C、3个 D、4个 2. Math.round(11.5)和Math.round(-11.5)分别等于多少?()2分 A、11和-11 B、12和-11 C、11和-12 D、12和-12 3.以下错误的说法有:( )2分 A、只要设计合理,当出现error这样的情况时,程序完全可以自动处理 B、exception 表示一种设计或实现问题 C、Set和Map都继承自Collection接口 D、接口可以继承接口 E、抽象类可以继承没有构造函数的实体类 4. 以下哪种类型不能作为switch(expr1)表达式的expr1?( )3分 A、int B、long C、char D、byte 5. 有关ArrayList和Vector的说法,那些是错误的?( )3分 A、Vector是线程安全的 B、ArrayList是线程序不安全的 C、当需要增长时,Vector默认增长为原来一培 D、当需要增长时, ArrayList默认增长为原来一培 6. 以下说法那些是错误的?()3分 A、一个char型变量可以存储一个中文汉字 B、String是最基本的数据类型 C、Integer的缺省值是0 D、String类提供了数值不可改变的字符串 7.请指出以下代码的执行结果()5分 class A{ static{ System.out.print("X"); } public A(){ System.out.print("2"); } } class B extends A{ static{ System.out.print("a"); } public B(){ System.out.print("b"); } } public class Hello{ public static void main(String[] ars){

android笔试题及答案

单选题 中可以用来处理中警示,确认等对话框地是() .假设目录下有文件结构,用()方法将该网页加载至 时,需传入地参数是() . . . . .下列不属于补间动画相关类地是() 中网络互连中需要获取状态码,根据状态码来判断请求是否已经完成,下列状态码表示请求完成地是() .关于说法错误地是:() 里可以通过设定转换时候地透明位 .在使用一个之前,不一定要调用方法 是设置资源被读入到这个地时候动画效果 是资源文件从这个里消失地时候要实现地动画效果 .建立蓝牙连接时通过方法来获取对象 () (); (); . () .关于地说法不正确地是( ) .它实现不同进程间通信地一种机制 .它避免了在新线程中刷新地操作 .它采用队列地方式来存储 .它实现不同线程间通信地一种机制

8.和地主要区别是(): . 内部基于链表,而是基于数组地 . 地大部分方法做了同步,而没有同步 . 是可串行化地,而不是 . 实现了,而没有 .下列属于解析文件地优点地是() .将整个文档输在内存中,便于操作,支持删除,修改,重新排列等多种功能 .不用事先调入整个文档,占用资源少 .整个文档调入内存,浪费时间和空间 .不是长久驻留在内存,数据不是持久地,事件过后,若没有保存数据,数据就会消失""; ""; ""; 总共创建( )个对象. 多选题 .在添加第一个窗口小部件时,会执行地方法是() .下列属于优点地是() 与编程语言无关. 可以使用任何语言来完成是完全和厂商无关. 与平台无关 是简单地,可扩展地 3.下列属于解析需要用到地类和接口是() A. .在使用蓝牙必须获取地权限是() .< ""> .< "" > .< ""> .< ""> 5.类地重要方法()

Android面试题附答案

Android面试题附答案 一、选择题(30题,每题1.5分,共45分) 1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分类,按功能分为:(c),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(g) A、输入流和输出流 B、字节流和字符流 C、节点流和处理流 D、File stream E、Pipe stream F、Random stream G、Filter stream 2.下列代码的执行结果是:(b) public class Test3{ public static void main(String args[]){ System.out.print(100%3); System.out.print(“,”); System.out.println(100%3.0); } } A、1,1 B、1,1.0 C、1.0,1 D、1.0,1.0

3.在继承中,关于构造方法的说明,下列说法错误的是(d) A、子类无条件的继承父类的无参构造方法, B、子类可以引用父类中的有参构造方法,使用super关键字, C、如果子类没有构造方法,则父类无参构造方法作为自已的构造方法, D、如果子类有无参构造方法,而父类的无参构造方法则被覆盖。 4.以下程序的运行结果为(b) public class IfTest{ public static void main(String args[]){ int x=3; int y=1; if(x==y) System.out.println(“Not equal”); else System.out.println(“Equal”); } } A、Not equal B、Equal C、无输出 D、编译出错 5.Java语言中字符串“学Java”所占的内存空间是(a) A. 6个字节 B. 7个字节

Android编程基础笔试题及答案2.0

《Android 编程基础》试卷A 注意事项: 1. 本试卷共8页,满分100分; 2. 请把学院、姓名、班级写到密封线内,考试时间90分钟; 3. 请不要把答案写在密封线内 一、单选题(共35题,共61分) 1、 D03MA057(2分)退出 activity 对一些资源以及状态的操作保存,可以在生命周期的哪个函数中进行 a A 、onPause() B 、onCreate() C 、onResume() D 、onStart() 2、 D02MA058 (2分) Android 项目工程下面的 assets 目录的作用是什么 b A 、放置应用到的图片资源。 Res/drawable B 、主要放置一些文件资源,这些文件会被原封不动打包到 apk 里面 C 、放置字符串,颜色,数组等常量数据 res/values D 、放置一些与 UI 相应的布局文件,都是 xml 文件 res/layout 3、 D04MA059 (2分)下列不属于android 布局的是(c) A 、F r a m e L a y o u t B 、L i n e a r L a y o u t C 、BorderLayout D 、T a b l e L a y o u t E 、R e l a t i v e L a y o u t 4、 D08MA2060 (2分)Intent 的作用的是 a A 、intent 是连接四大组件的纽带,可以实现界面间切换,可以包含动作和动作数据, B 、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会 因为切 换页面而消失 service C 、实现应用程序间的数据共享 contentprovider D 、处理一个应用程序整体性的工作 5、 D04EA1061(1分) 下列哪个是AbsoluteLayout 中特有的属性 b A,android:layout_height B,android:layout_x C,android:layout_above D,android:layout_toRightOf 6、 D07EA1062(1分)RatingBar 组件中不能用属性直接设置的是d A,五角星个数 B,当前分数C,分数的增量D,五角星的色彩 7、 D 10EA1063(1分) 在手机开发中常用的数据库是_a__ A,sqlLite B,Oracle C,Sql Server D,Db23 8、 D14MA2064(2分) 关于BroadcastReceiver 的说法不正确的是_b_ A, 是用来接收广播Intent 的 密封线内不要答 题 学院班级姓名

android java笔试题(带大部分答案)

请将试题答在答题卡上,不要在试卷中做任何标记 一、基础题: 1.请写出输出结果 public class Test1 { public static void changeStr(String str){ str="welcome"; } public static void main(String[] args) { String str="1234"; changeStr(str); System.out.println(str); } } ___"1234"____________________________________________________ 2.请写出输出结果 public class Test2 { static boolean foo(char c) { System.out.print(c); return true; } public static void main(String[] argv) { int i = 0; for (foo('A'); foo('B') && (i < 2); foo('C')) { i++; foo('D'); } } } _____ABDCBDCB___________________________________________________ 3.class A { protected int method1(int a, int b) { return 0; } } 以下A扩展类中的方法哪两个是正确的:(选择两个) A.public int method1(int a, int b) { return 0;} B.private int method1(int a, int b) { return 0;} C.private int method1(int a, long b) { return 0;} D.public short method1(int a, int b) { return 0;} E.static protected int method1(int a, int b) { return 0;} ____AD___________________________________________________ 4.public class Outer{ public void someOuterMethod() { // Line 3

android笔试题及答案

单选题 中可以用来处理js中警示,确认等对话框的是(C) 2.假设assets目录下有文件结构html/,用loadUrl()方法将该网页加载至 webView 时,需传入的参数是(B) A. B. C. D. 3.下列不属于补间动画相关类的是(B) 中网络互连中需要获取状态码,根据状态码来判断请求是否已经完成,下列状 态码表示请求完成的是(D) 5.关于ImageSwitcher 说法错误的是:( B ) 里可以通过Alpha设定转换时候的透明位 B.在使用一个ImageSwitcher之前,不一定要调用setFactory方法 是设置资源被读入到这个ImageSwitcher的时候动画效果 是资源文件从这个ImageSwitcher里消失的时候要实现的动画效果 6.建立蓝牙连接时通过_D_方法来获取BluetoothAdapter对象 D. () 7.关于Handler的说法不正确的是( A ) A.它实现不同进程间通信的一种机制 B.它避免了在新线程中刷新UI的操作 C.它采用队列的方式来存储Message D.它实现不同线程间通信的一种机制 8.Vector和ArrayList的主要区别是(B): A. ArrayList内部基于链表,而Vector是基于数组的

B. Vector的大部分方法做了同步,而ArrayList没有同步 C. Vector是可串行化的,而ArrayList不是 D. Vector实现了RandomAccess,而ArrayList没有 9.下列属于SAX解析xml文件的优点的是(B ) A.将整个文档输在内存中,便于操作,支持删除,修改,重新排列等多种功能 B.不用事先调入整个文档,占用资源少 C.整个文档调入内存,浪费时间和空间 D.不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失 a1="abc"; String a2="abc"; String a3="abcd"; 总共创建( A )个String对象。 多选题 1.在添加第一个appwidget窗口小部件时,会执行的方法是(ABD) 2.下列属于SOAP优点的是(ABCD) A,SOAP 与编程语言无关。SOAP 可以使用任何语言来完成 B,SOAP 是完全和厂商无关。 C,SOAP 与平台无关D,SOAP 是简单的,可扩展的 3.下列属于SAX解析XML需要用到的类和接口是(BCD) A.DocumentBuilder 4.在使用蓝牙必须获取的权限是(AD) 5.Chronometer类的重要方法(ABC) 简答题 1.oom是什么如何避免 当程序需要申请一段“大”内存,但是虚拟机没有办法及时的给到,即使做了GC操作以后这就会抛出OutOfMemoryException 也就是OOM 避免:

Android面试题整理

Android常用面试简答题 1、android 中得动画有哪几类,它们得特点与区别就是什 么? 参考答案: 有两种,一种就是 Tween(补间)动画、还有一种就是 Frame(帧)动画。Tween 动画,这种实现方式可以使视图组件移动、放大、缩小以及产 生透明度得变化;另一种 Frame 动画,传统得动画方法,通过顺序得播放排列好得图片来实现,类似电影。 2、请简述Handler得机制原理 参考答案: andriod 提供了 Handler 与 Looper 来满足线程间得通信。Handler 先进先出原则。 Looper类用来管理特定线程内对象之间得消息交换(Message Exchange)。 1)Looper: 一个线程可以产生一个 Looper 对象,由它来管理此线程里 得 Message Queue(消息队列)。 2)Handler: 您可以构造 Handler 对象来与 Looper 沟通,以便 push 新消息到 Message Queue 里;或者接收 Looper从 Message Queue 取出)所送来得消息。 3) Message Queue(消息队列):用来存放线程放入得消息。 4)线程:UI thread 通常就就是 main thread,而 Android 启动程序时会替它建立一个Message Queue。 3、说说mvc模式得原理,它在android中得运用 参考答案: MVC 就是 Model,View,Controller 得缩写,从上图可以瞧出 MVC 包含三个部分: 模型( Model )对象:就是应用程序得主体部分,所有得业务逻辑都应该写在该层。 视图( View )对象:就是应用程序中负责生成用户界面得部分。也就是在整个MVC 架构中用户唯一可以瞧到得一层,接收用户得输入,显 示处理结果。 控制器( Control )对象:就是根据用户得输入,控制用户界面数据显示及更新Model 对象状态得部分,控制器更重要得一种导航功能,想 用用户触发得相关事件,交给 Model处理。 Android 鼓励弱耦合与组件得重用,在 Android 中 MVC 得具体体现如下 1) 视图层( view ):一般采用 xml 文件进行界面得描述,使用得时 候可以非常方便得引入,当然,如何您对 android 了解得比较得多了话,就一定可以想到在 android 中也可以使用javascript+html 等得方式作为 view 层,当然这里需要进行 java 与 javascript 之间得通信,幸运得就是, android 提供了它们之间非常方便得通信实现。

android面试题及答案

一选择题(可多选,30分) 1、关于BroadcastReceiver说法正确的是(AB) A、BroadcastReceiver有两种注册方式,静态注册和动态注册 B、Broadcast分正常广播和有序广播,其中有序广播可以被停止掉,不传给下一个接受者 C、Broadcast Receiver 提供了可视化的界面来显示广播信息 D、BroadcastReceiver的onReceive函数里可以使用线程来执行耗时的操作 2、关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是(D) A、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念. B、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux 中的一个进程,所以说不是一个概念. C、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux 中的一个进程,所以说不是一个概念. D、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念. 3 android 中下列关于Intent说法正确的是(C) A、实现应用程序间的数据共享 B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作 4 android 关于service生命周期的onCreate()和onStart()说法正确的是(AD) A、当第一次启动的时候先后调用onCreate()和onStart()方法 B、当第一次启动的时候只会调用onCreate()方法 C、如果service已经启动,将先后调用onCreate()和onStart()方法 D、如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法 5.在异常处理中,如释放资源、关闭文件、关闭数据库等由( C)来完成。 A.try子句 B.catch子句 C.finally子句 D.throw子句 6.关于Collections说法正确的是(AC) A.Collections 包含有各种有关集合操作的静态多态方法 B.Collections是集合类的一个顶级接口, C.Collections 是一个包装类,此类不能实例化 D.List是Collections的子接口 7.关于java抽象类说法正确时是(AC)

Android面试题-带答案

1.介绍一下Android系统的体系结构 答:应用层:android的应用程序通常涉及用户界面和交互。 应用框架层:UI组件、各种管理器等。 函数库层:系统C库、媒体库、webkit、SQLite等。 linux核心库:linux系统运行的组件。 2.Android的四大组件是哪些,它们的作用? 答:Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期及一些跳转逻辑 service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事物,定义好需要接受的Intent提供同步和异步的接口 Content Provider:是Android提供的第三方应用数据的访问方案,可以派生Content Provider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用,对数据的整合提供了更方便的途径 BroadCast Receiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型 3.请介绍下Android的数据存储方式。 答:一.SharedPreferences方式 二.文件存储方式 三.SQLite数据库方式 四.内容提供器(Content provider)方式 五. 网络存储方式 4.说说mvc模式的原理 答:mvc是model,view,controller的缩写,mvc包含三个部分: 模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。 视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。 控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,响应用户出发的相关事件,交给m层处理。 5.如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? 答:重写onSaveInstanceState()方法,在此方法中保存需要保存的数据,该方法将会在activity被回收之前调用。通过重写onRestoreInstanceState()方法可以从中提取保存好的数据

Android Java面试笔试题

Android Java笔试题(带大部分答案) 请将试题答在答题卡上,不要在试卷中做任何标记 一、基础题: 1. 1. 请写出输出结果 public class Test1 { public static void changeStr(String str){ str=”welcome”; } public static void main(String[] args) { String str=”1234″; changeStr(str); System.out.println(str); } } ___”1234″____________________________________________________ 1. 2. 请写出输出结果 public class Test2 { static boolean foo(char c) { System.out.print(c); return true; } public static void main(String[] argv) { int i = 0; for (foo(…A?); foo(…B?) && (i < 2); foo(…C?)) { i++; foo(…D?); } } } _____ABDCBDCB___________________________________________________ 1.class A {

protected int method1(int a, int b) { return 0; } } 以下A扩展类中的方法哪两个是正确的:(选择两个) A.public int method1(int a, int b) { return 0;} B.private int method1(int a, int b) { return 0;} C.private int method1(int a, long b) { return 0;} D.public short method1(int a, int b) { return 0;} E.static protected int method1(int a, int b) { return 0;} ____AD___________________________________________________ 1.public class Outer{ public void someOuterMethod() { // Line 3 } public class Inner{} public static void main(String[] args) { Outer o = new Outer(); // Line 8 } } 下列哪一个对Inner类实例化的描述是正确的?D A.new Inner(); // At line 3 B.new Inner(); // At line 8 C.new o.Inner(); // At line 8 D.new Outer.Inner(); // At line 8//new Outer().new Inner() 1. 5. 下面这个程序正确吗? 如果不正确请说出哪里错误。 public class Something { public static void main(String[] args) { Other o = new Other(); new Something().addOne(o); } public void addOne(final Other o) { o.i++;

Android开发笔试题.docx

Android 应用开发笔试 姓名 :_____________联系电话:_____________得分:_____________ 共100分,考试时间40 分钟 一、选择题(30题,每题 1.5 分,共45分 ) A 、输入流和输出流B、字节流和字符流C、节点流和处理流 D 、File stream E、 Pipe stream F、Random stream 2. 下列代码的执行结果是:() public class Test3{ public static void main(String args[]){ } G、 Filter stream } B、 A 、1,1B、 1,1.0 C、 1.0,1 D 、1.0,1.0盖。 3.在继承中,关于构造方法的说明,下列说法错误的是() C、子类无条件的继承父类的无参构造方法, D、子类可以引用父类中的有参构造方法,使用super 关键字, E、如果子类没有构造方法,则父类无参构造方法作为自已的构造方法, F、如果子类有无参构造方法,而父类的无参构造方法则被覆盖。 4.以下程序的运行结果为 ( ) public class IfTest{ public static void main(String args[]){ int x=3; int y=1; if(x==y) else } } A 、 Not equal B、Equal C、无输出 D 、编译出错 5.Java语言中字符串“学Java ”所占的内存空间是() A. 6个字节 B. 7个字节 C. 10个字节 D. 11个字节 6.Java语言中 A. 1,2,4,4,4,8byte 、short、int、float、double、long B.1,2,48,8,8 C.1,1,4,4,8,8 D.1,2,4,4,8,8 分别是几个字节() 7. 关于下列程序段的输出结果,说法正确的是:() public class MyClass{ static int i; public static void main(Stringargv[]){ } } A 、有错误,变量i 没有初始化。B、null C 、 1 D 、 0 8.下列哪些语句关于内存回收的说明是正确的? () A 、程序员必须创建一个线程来释放内存

android面试题关于ui四大主键

笔试一般都是java基础 Java知识点包括:接口与抽象的使用及区别,多线程,socket基础,集合类,也有个别公司考察定义,很无语。 这里具体说一下android面试题目: 南京WSCX: 1、 Activity的生命周期,两个Activity之间跳转时必然会执行的是那几个方法? 生命周期:oncreate onStart onStop onPause onResume onDestory OnPause onCreate onStart onstop onResume 2、 不用service,B页面为音乐播放,从A跳转到B,再返回,如何使音乐继续播放? B的Mediaplay.get(播放歌曲,播放时间)保存到intent A if(播放歌曲&&播放时间有值) { MediaPaly(ss,dd); } 3、 Service有哪些启动方法?有什么区别? Service的启动方法有onstartServivr onbindService Start方法是先调用oncreate onstart 但是如果最后不调用onstop方法那么就算是activity 呗回收了也还是会运行 但是bind 是先后调用oncreate onbind 如果不调用onstop放法那么在activity被回收的时候就会被关闭 4、 (音乐播放器)如何加载的音乐信息,如何改善其效率。 构造SimpleAdapter - ListView 5、 电话状态的监听,改变打电话界面(听说我改动的Phone源码就不再问了)。 6、 ListView如何提高其效率? 7、 还有一些都是在上面的基础上扩展的,跟具体项目有关,就不说了。 总结:他们只是问一问这些基础的知识,都是给外包公司招人,自己做不了主,也就是检验一下应聘人员懂不懂android。 南京SL: 1、 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?2、 启动一个Activity有哪几种方法? Intent intent = new Intent(this,FirstActivity.class)

Android面试题带标准答案

Android面试题 下列哪些语句关于内存回收的说明是正确的? (b ) A、程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 下面异常是属于Runtime Exception的是(abcd)(多选) A、ArithmeticException B、IllegalArgumentException C、NullPointerException D、BufferUnderflowException Math.round(11.5)等于多少(). Math.round(-11.5)等于多少(c). c A、11 ,-11 B、11 ,-12 C、12 ,-11 D、12 ,-12 下列程序段的输出结果是:(b)?void complicatedexpression_r(){int x=20, y=30; boolean b; b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60; System.out.println(b);? } A、true B、false C、1 D、011.activity 对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(d) A、onPause() B、onCreate() C、 onResume() D、onStart() Intent传递数据时,下列的数据类型哪些可以被传递(abcd)(多选) A、Serializable B、charsequence C、Parcelable D、Bundle android 中下列属于Intent的作用的是(c) A、实现应用程序间的数据共享 B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作 下列属于SAX解析xml文件的优点的是(b) A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能 B、不用事先调入整个文档,占用资源少 C、整个文档调入内存,浪费时间和空间 D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会 消失 下面的对自定style的方式正确的是(a) A、 <resources> ?<stylename="myStyle"> ? ?</style> B、<style name="myStyle"> ?<item name="android:layout_width">fill_parent</item>

Android面试题

Android面试题 1. 下列哪些语句关于内存回收的说明是正确的? (b ) A、程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 2. 下面异常是属于Runtime Exception 的是(abcd)(多选) A、ArithmeticException B、IllegalArgumentException C、NullPointerException D、BufferUnderflowException 3. Math.round(11.5)等于多少(). Math.round(-11.5)等于多少(c). c A、11 ,-11 B、11 ,-12 C、12 ,-11 D、12 ,-12 4. 下列程序段的输出结果是:(b ) void complicatedexpression_r(){ int x=20, y=30; boolean b; b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60; System.out.println(b); } A、true B、false C、1 D、011.activity5. 对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(d) A、onPause() B、onCreate() C、 onResume() D、onStart() 6. Intent传递数据时,下列的数据类型哪些可以被传递(abcd)(多选) A、Serializable B、charsequence C、Parcelable D、Bundle 7. android中下列属于Intent的作用的是(c) A、实现应用程序间的数据共享 B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作 8. 下列属于SAX解析xml文件的优点的是(b) A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能 B、不用事先调入整个文档,占用资源少 C、整个文档调入内存,浪费时间和空间 D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会 消失 9. 下面的对自定style的方式正确的是(a) A、

android笔试题及答案

单选题 1.WebView中可以用来处理js中警示,确认等对话框的是(C) A.WebSettings B.WebViewClient C.WebChromeClient D.WebViewChrome 2.假设assets目录下有文件结构html/hello.html,用loadUrl()方法将该网页加载至webView 时,需传入的参数是(B) A. file:///asset/html/hello.html B.file:///android_asset/html/hello.html C.file:///androidasset/hello.html D.file:///assets/html/hello.html 3.下列不属于补间动画相关类的是(B) A.TranslateAnimation B.FrameAnimation C.RotateAnimation D.AlphaAnimation 4.Android中网络互连中需要获取状态码,根据状态码来判断请求是否已经完成,下列状态码表示请求完成的是(D) A.100 B.202 C.404 D.200 5.关于ImageSwitcher 说法错误的是:(B ) A.ImageSwitcher里可以通过Alpha设定转换时候的透明位 B.在使用一个ImageSwitcher之前,不一定要调用setFactory方法 C.setInAnimation是设置资源被读入到这个ImageSwitcher的时候动画效果 D.setOutAnimation是资源文件从这个ImageSwitcher里消失的时候要实现的动画效果 6.建立蓝牙连接时通过_D_方法来获取BluetoothAdapter对象 A.BluetoothAdapter.getBluetoothAdapterAdapter() B.BluetoothAdapter adapter=new BluetoothAdapter(); C.BluetoothAdapter.BluetoothAdapterAdapter(); D. BluetoothAdapter.getDefaultAdapter() 7.关于Handler的说法不正确的是( A ) A.它实现不同进程间通信的一种机制 B.它避免了在新线程中刷新UI的操作 C.它采用队列的方式来存储Message D.它实现不同线程间通信的一种机制 8.Vector和ArrayList的主要区别是(B): A. ArrayList内部基于链表,而Vector是基于数组的

2016最新Android常见面试题

1.横竖屏切换时候activity 的生命周期 1). 不设置Activity 的android:configChanges 时, 切屏会重新调用各个生命周期, 切横屏时会执行一次, 切竖屏时会执行两次. 2). 设置Activity 的Android:configChanges=‖orientation‖ 时, 切屏还是会重新调用各个生命周期, 切横、竖屏时只会执行一次. 3). 设置Activity 的Android:configChanges=‖orientation|keyboardHidden‖ 时, 切屏不会重新调用各个生命周期, 只会执行onConfigurationChanged 方法 . 2.android 中的动画有哪几类,它们的特点和区别是什么? 两种,一种是Tween 动画、还有一种是Frame 动画。Tween 动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化; 另一种Frame 动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。 3. 一条最长的短信息约占多少byte? 中文70( 包括标点) ,英文160 ,160 个字节。 4.handler 机制的原理 andriod 提供了Handler 和Looper 来满足线程间的通信。Handler 先进先出原则。Looper 类用来管理特定线程内对象之间的消息交换(Message Exchange) 。 1)Looper: 一个线程可以产生一个Looper 对象,由它来管理此线程里的Message Queue( 消息队列) 。 2)Handler: 你可以构造Handler 对象来与Looper 沟通,以便push 新消息到Message Queue 里; 或者接收Looper 从Message Queue 取出) 所送来的消息。 3) Message Queue( 消息队列): 用来存放线程放入的消息。 4) 线程:UI thread 通常就是main thread ,而Android 启动程序时会替它建立一个Message Queue 。 5. 什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?

Android面试题集合(含答案)

云时代 Android面试题集[键入文档副标题]

目录 第一章Android最全面试题71道题 (55) 一、选择题 (55) 二.填空和问答 (1212) 25. android中常用的五个布局是FrameLayout(单帧布局)、RelativeLyout(相对布局)、LinerLayout(线 性布局)、TableLayout(表格布局)、AbsoluteLayout(绝对布局) (1212) 26. android 的四大组件是__Activity Service BrodcastReceiver ContentProvier。1212 27. java.io包中的__ObjectInputStream_和_ObjectOutputStream_类主要用于对对象(Object)的读写。 (1212) 28. android 中service的启动方法有:__startService____bindService_ (1212) 29. activity一般会重载7个方法用来维护其生命周期,分别是:onCreate onStart onResume onPause onStop onDestroy onRestart (1212) 30. android的数据存储的方式有:SharedPreferences数据存储、文件存储、SQLite数据库存储数据、 Contentprovider存储数据、网络存储数据 (1212) 31. 当启动一个Activity 并且新的Activity 执行完后需要返回到启动它的Activity 数据,启动新 Activity的方法是_startActivityForResult(intent,RequestCode)_,用来处理返回数据的Activity回调函 数是void onActivityResult(int requestCode,int resultCode,intent data)_。 (1313) 33.下面程序运行的结果是:______________。 (1313) 34. 在android中,请简述jni的调用过程。 (1414) 35. 简述Android的体系结构包括哪些? (1414) 36. 请继承SQLiteOpenHelper实现下述功能 (1414) 37. 页面上现有ProgressBar 控件progressBar,请用书写线程以10秒的的时间完成其进度显示工 作。 (1515) 38. 请描述Activity 的生命周期。 (1616) 39. 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?1717 40. 如何将一个Activity 设置成对话框窗口的样式。 (1717) 41. 如何退出Activity?如何安全退出已调用多个Activity 的Application? (1717) 43. 请介绍下Android的数据存储方式。 (1919) 44. 请介绍下ContentProvider是如何实现数据共享的。 (1919) 45. 如何启用Service,如何停用Service。 (2020) 46. 注册广播接收器有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意。 .......................................................................... 错误!未定义书签。错误!未定义书签。 47. 请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。错误!

相关主题