经典71道Android试题及答案
本⽂为开发者奉献了70道经典Android⾯试题加答案--重要知识点⼏乎都涉及到了,你还等啥,赶紧收藏吧!!
1. 下列哪些语句关于内存回收的说明是正确的? (b)
A、程序员必须创建⼀个线程来释放内存
B、内存回收程序负责释放⽆⽤内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
2. 下⾯异常是属于Runtime Exception 的是(abcd)(多选)
A、ArithmeticException
B、IllegalArgumentException
C、NullPointerException
D、BufferUnderflowException
3. und(11.5)等于多少(). und(-11.5)等于多少(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.activity
5. 对⼀些资源以及状态的操作保存,最好是保存在⽣命周期的哪个函数中进⾏(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、处理⼀个应⽤程序整体性的⼯作
repeatmasker 8. 下列属于SAX解析xml⽂件的优点的是(b)
A、将整个⽂档树在内存中,便于操作,⽀持删除,修改,重新排列等多种功能
B、不⽤事先调⼊整个⽂档,占⽤资源少
C、整个⽂档调⼊内存,浪费时间和空间
D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会
消失
9. 下⾯的对⾃定style的⽅式正确的是
A、 <resources>
<style name="myStyle">
<itemname="android:layout_width">fill_parent</item>
</style>
</resources>
B、 <style name="myStyle">
<itemname="android:layout_width">fill_parent</item>
</style>
C、 <resources>
<itemname="android:layout_width">fill_parent</item>
</resources>
D、 <resources>
<stylename="android:layout_width">fill_parent</style>
</resources>
10. 在android中使⽤Menu时可能需要重写的⽅法有(ac)。(多选)
A、onCreateOptionsMenu()
B、onCreateMenu()
C、onOptionsItemSelected()
D、onItemSelected()
11. 在SQL Server Management Studio 中运⾏下列T-SQL语句,其输出值(c)。 SELECT @@IDENTITY
A、可能为0.1
B、可能为3
C、不可能为-100
D、肯定为0
12. 在SQL Server 2005中运⾏如下T-SQL语句,假定SALES表中有多⾏数据,执⾏查询之后的结果是(d)。
BEGIN TRANSACTION A
Update SALES Set qty=30 WHERE qty<30
BEGIN TRANSACTION B
Update SALES Set qty=40 WHEREqty<40
Update SALES Set qty=50 WHEREqty<50
Update SALES Set qty=60 WHEREqty<60
COMMIT TRANSACTION B
COMMIT TRANSACTION A
A、SALES表中qty列最⼩值⼤于等于30
B、SALES表中qty列最⼩值⼤于等于40
C、SALES表中qty列的数据全部为50
D、SALES表中qty列最⼩值⼤于等于60
13. 在android中使⽤SQLiteOpenHelper这个辅助类时,可以⽣成⼀个数据库,并可以对数据库版本进⾏管理的⽅法可以是(ab)
A、getWriteableDatabase()
B、getReadableDatabase()delphi有没有全中文的版本
C、getDatabase()
D、getAbleDatabase()
14. android 关于service⽣命周期的onCreate()和onStart()说法正确的是(ad)(多选题)
A、当第⼀次启动的时候先后调⽤onCreate()和onStart()⽅法
B、当第⼀次启动的时候只会调⽤onCreate()⽅法
C、如果service已经启动,将先后调⽤onCreate()和onStart()⽅法
D、如果service已经启动,只会执⾏onStart()⽅法,不在执⾏onCreate()⽅法
15. 下⾯是属于GLSurFaceView特性的是(abc)(多选)
A、管理⼀个surface,这个surface就是⼀块特殊的内存,能直接排版到android的视图view上。
B、管理⼀个EGL display,它能让opengl把内容渲染到上述的surface上。
C、让渲染器在独⽴的线程⾥运作,和UI线程分离。
D、可以直接从内存或者DMA等硬件接⼝取得图像数据
16. 下⾯在l⽂件中注册BroadcastReceiver⽅式正确的
A、<receiver android:name="NewBroad">
<intent-filter>
<action
android:name="android.provider.action.NewBroad"/>
<action>
</intent-filter>
</receiver>
B、<receiver android:name="NewBroad">
<intent-filter>
android:name="android.provider.action.NewBroad"/>
</intent-filter>
</receiver>
C、<receiver android:name="NewBroad">
<action
android:name="android.provider.action.NewBroad"/>
<action>
</receiver>
D、<intent-filter>
<receiver android:name="NewBroad">
<action>
android:name="android.provider.action.NewBroad"/>
<action>
</receiver>
</intent-filter>
17. 关于ContenValues类说法正确的是(a)
A、他和Hashtable⽐较类似,也是负责存储⼀些名值对,但是他存储的名值对当中的
名是String类型,⽽值都是基本类型
B、他和Hashtable⽐较类似,也是负责存储⼀些名值对,但是他存储的名值对当中的
名是任意类型,⽽值都是基本类型
C、他和Hashtable⽐较类似,也是负责存储⼀些名值对,但是他存储的名值对当中的
名,可以为空,⽽值都是String类型
D、他和Hashtable⽐较类似,也是负责存储⼀些名值对,但是他存储的名值对当中
的名是String类型,⽽值也是String类型
18. 我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的⽅法是(a)
A、onDestroy()
B、onClear()
C、onFinish()
D、onStop()
19. 下⾯退出Activity错误的⽅法是(c)
A、finish()
B、抛异常强制退出
C、it()
D、onStop()
20. 下⾯属于android的动画分类的有(ab)(多项)
A、Tween
B、Frame
C、Draw
D、Animation
21. 下⾯关于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中的⼀个进程,所以说可以认为是同⼀个概念.
22. Android项⽬⼯程下⾯的assets⽬录的作⽤是什么b
A、放置应⽤到的图⽚资源。tcp协议的全称是什么
B、主要放置多媒体等数据⽂件
C、放置字符串,颜⾊,数组等常量数据
D、放置⼀些与UI相应的布局⽂件,都是xml⽂件
23. 关于res/raw⽬录说法正确的是(a)A、这⾥的⽂件是原封不动的存储到设备上不会转换为⼆进制的格式
B、这⾥的⽂件是原封不动的存储到设备上会转换为⼆进制的格式
C、这⾥的⽂件最终以⼆进制的格式存储到指定的包中
css的三种类型 D、这⾥的⽂件最终不会以⼆进制的格式存储到指定的包中
24. 下列对android NDK的理解正确的是(abcd )
A、 NDK是⼀系列⼯具的集合
B、 NDK 提供了⼀份稳定、功能有限的 API 头⽂件声明。
C、使 “Java+C” 的开发⽅式终于转正,成为官⽅⽀持的开发⽅式
D、 NDK 将是 Android 平台⽀持 C 开发的开端
⼆.⽂件存储⽅式
三.SQLite数据库⽅式
四.内容提供器(Content provider)⽅式
⼆、Android⾯试填空题
25. android中常⽤的四个布局是framlayout,linenarlayout,relativelayout和tablelayout。
26. android 的四⼤组件是activiey,service,broadcast和contentprovide。27. java.io包中的objectinputstream和objectoutputstream类主要⽤于对对象(Object)的读写。
28. android 中service的实现⽅法是:startservice和bindservice。
29. activity⼀般会重载7个⽅法⽤来维护其⽣命周期,除了onCreate(),onStart(),onDestory() 外还有onrestart,onresume,onpause,onstop。
reducescores的意思30. android的数据存储的⽅式sharedpreference,⽂件,SQlite,contentprovider,⽹络。
31. 当启动⼀个Activity并且新的Activity执⾏完后需要返回到启动它的Activity来执⾏的回调函数是start
ActivityResult()。
32. 请使⽤命令⾏的⽅式创建⼀个名字为myAvd,sdk版本为2.2,sd卡是在d盘的根⽬录下,名字为scard.img,并指定屏幕⼤⼩HVGA.____________________________________。
33. 程序运⾏的结果是:_____good and gbc__________。
public classExample{
String str=new String("good");
char[]ch={'a','b','c'};
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
Sytem.out.print(ex.ch);
mysql语句的执行顺序 }
public void change(String str,char ch[]){
str="test ok";
ch[0]='g';
}
}
34. 在android中,请简述jni的调⽤过程。(8分)
1)安装和下载Cygwin,下载 Android NDK
2)在ndk项⽬中JNI接⼝的设计
3)使⽤C/C++实现本地⽅法
4)JNI⽣成动态链接库.so⽂件
5)将动态链接库复制到java⼯程,在java⼯程中调⽤,运⾏java⼯程即可
35. 简述Android应⽤程序结构是哪些?(7分)Android应⽤程序结构是:
Linux Kernel(Linux内核)、Libraries(系统运⾏库或者是c/c++核⼼库)、Application
Framework(开发框架包)、Applications (核⼼应⽤程序)
36. 请继承SQLiteOpenHelper实现:(10分)
1).创建⼀个版本为1的“diaryOpenHelper.db”的数据库,
2).同时创建⼀个 “diary” 表(包含⼀个_id主键并⾃增长,topic字符型100
长度, content字符型1000长度)
3).在数据库版本变化时请删除diary表,并重新创建出diary表。
publicclass DBHelper extends SQLiteOpenHelper{
public final static String DATABASENAME ="diaryOpenHelper.db";
public final static int DATABASEVERSION =1;
//创建数据库
public DBHelper(Context context,Stringname,CursorFactory factory,int version)
{
super(context, name, factory,version);
}
//创建表等机构性⽂件
public void onCreate(SQLiteDatabase db)
{
String sql ="create tablediary"+
"("+
"_idinteger primary key autoincrement,"+
"topicvarchar(100),"+
"contentvarchar(1000)"+
")";
db.execSQL(sql);
}
//若数据库版本有更新,则调⽤此⽅法
public void onUpgrade(SQLiteDatabasedb,int oldVersion,int newVersion)
{
String sql ="drop table ifexists diary";
db.execSQL(sql);
Create(db);
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论