您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 北航-Android移动开发试卷+答案
一、选择题1、以下那个控件可以用来显示图片a)ImageViewb)TextViewc)Buttond)以上都可以2、针对ListView组件描述错误的是a)ListView自带滚动面板功能,如果数据超出屏幕范围,可以自动滚动b)ListView在使用时,必须通过Adapter来加入数据c)ListView如果想改变显示内容,只需要调整对应的List集合中的数据即可。d)ListView中可以通过OnItemClickListener来完成针对某一项目的点击监听3、Android在退出程序时,想保存一些信息,可以在哪个方法中完成?a)onCreateb)onStartc)onStopd)onDestory4、Android开发中常用的数据库是:a)SQLServerb)MySQLc)SQLited)Oracle5、以下调整宽度和高度的属性,哪个不是Android系统提供的?a)Match_parentb)Wrap_contentc)Fill_contentd)Fill_parent6、从其他应用中读取共享的数据库数据,需要用到的是query方法,返回Cursor数据,那么这个方法是哪个对象的方法?a)ContentProviderb)ContentResolverc)SQLiteOpenHelperd)SQLiteDataBase7、下列不属于Android布局的是a)LinearLayoutb)RelativeLayoutc)AnnotationLayoutd)FrameLayout8、Android项目中assets目录的作用是什么?a)放置字符串,颜色等信息b)放置图片资源c)放置较大的文件资源d)放置界面布局配置9、以下哪个对象是自定义组件中用来绘制内容的对象a)Bitmapb)Canvasc)BufferedImaged)Drawable10、以下属性中哪个属性是LinearLayout拥有但RelativeLayout没有的属性a)android:layout_widthb)android:layout_heightc)android:layout_weightd)android:background二、简答题1、请描述Activity的生命周期流程答:3.1、Activity生命周期及其应用Activity在创建到销毁的过程中也经历过多个方法来监听其生命周期执行过程。其中,主要有以下几个方法:onCreate():在创建activity时被回调。在整个生命周期只会被调用一次,做一些数据的初始化工作。onStart():启动activity时被回调。也就是当一个activity变为显示时被回调。onRestart():重新启动activity时被回调。该方法总是在onStart()方法以后执行。onResume():当activity由暂停状态恢复为活动状态时调用。调用该方法后,该activity位于activity栈的栈顶。该方法总是在onPause()方法以后执行。onPause():暂停Activity时被回调。它通常被用来持久化数据、停止动画活其他耗费资源的动作。onStop():停止Activity时被回调。onDestroy():当Activity退出销毁时自动执行该方法,主要用来执行收尾和垃圾回收的工作。使用一张流程图来查看整个Activity的生命周期。2、列举Android开发中用到的常用权限,以及编写哪些功能时会用到这些权限(写出权限的作用即可,不需要写权限名)!--允许应用读取用户的联系人数据--uses-permissionandroid:name=android.permission.READ_CONTACTS/!--允许应用写(非读)用户的联系人数据--uses-permissionandroid:name=android.permission.WRITE_CONTACTS/!--允许应用写(非读)用户的外部存储器--uses-permissionandroid:name=android.permission.WRITE_EXTERNAL_STORAGE/!--允许应用启动一个用户确认电话被拨打而不通过拨打电话的用户界面的的拨打程序--uses-permissionandroid:name=android.permission.CALL_PHONE/!--允许应用启动一个用户确认电话被拨打而不通过拨打电话的用户界面的的任意号码的拨打,包括紧急号码.--uses-permissionandroid:name=android.permission.CALL_PRIVILEGED/3、比较Android与IOS系统,列举Android系统的优缺点AndroidiOS优点开放性(OpenSource),支持的厂商很多,可以进行厂商软件和硬件定制整个生态系统比较好。开发者比较容易从APPStore获益,大家愿意付费买应用,让开发者更有开发动力。内置丰富的google服务,当然现在很多都被厂商定制或渠道定制了苹果对iOS可以完全掌控,可以让产品体验追求极致。平台发展迅速,市场应用丰富应用整体水平较高,用户都比较喜欢产品定价范围宽,适合各种人群缺点版本过多,升级过快封闭,只有苹果一家在玩,难于扩大市场。由于开原性,很容易被复制(山寨)大部分好的应用都需要付费。用户体验不一致产品定价较高,适合较高消费水平人群由于平台的开放性,用户信息和安全等方面存在明显的隐患开发门槛较高,需要熟悉ObjectiveC/C/C++语言和苹果开发环境。第三方应用商店很多,很杂,选择上导致存在一定的难度,应用品质也相对较差第三方软件开发者盈利模式相对有限,盗版严重4、一个应用长时间没有响应(ApplicationNotResponse)主要是由于什么原因引起的,怎样解决(提示:线程)Android应用程序通常是运行在一个单独的线程(例如,main)里。这意味着你的应用程序所做的事情如果在主线程里占用了太长的时间的话,就会引发ANR对话框,因为你的应用程序并没有给自己机会来处理输入事件或者Intent广播。因此,运行在主线程里的任何方法都尽可能少做事情。替代的方法是,主线程应该为子线程提供一个Handler,以便完成时能够提交给主线程。5、列出你开发中使用到的常用布局,并说明这些布局的特点6、描述一个Android项目开发时,整个项目中应该包含哪些目录和核心文件,这些目录和文件的主要作用是什么?Android中的目录结构:1)src:放入自己编写的Java源代码。2)gen:自动生成的java文件,会根据开发人员向项目中加入的资源和配置自动完成,一定不要手工修改3)assets:一般放入一些比较大的文件,以进行IO操作。建议将1Mb以上的文件都放到此目录下保存。4)bin:编译后的项目目录,里面包含了编译后的软件apk5)libs:放入的是支持类库6)res:资源目录,里面放入了常用的项目资源,比如:图片或xml配置等。a)drawable-xxxx:放入项目中使用的一些图片。b)layout:布局配置,里面放入了针对Activity界面的显示布局配置,开发中一般要求,每一个Activity都要有一个对应的xml布局文件。c)menu:菜单内容的配置,现在基本没用了。d)values:放入一些固定的信息配置,例如:文本内容,样式,边框宽度等。e)raw:可以放入其他类型的文件来处理。f)anim:动画配置AndroidManifest.xml文件:项目核心配置文件,重要程度等同于Web项目的Web.xml文件。三、编程题1、请继承SQLiteOpenHelper,编写一个数据库连接类,完成以下功能创建一个版本为1,名称为“test.db”的数据库在onCreate方法中创建一张名称为question的表,表中包含以下字段id(主键,数字,自增长),title(文本),answer(文本)publicclassDataBaseConnectionextendsSQLiteOpenHelper{//初始化固定的值privatestaticfinalintDBVERSION=1;privatestaticfinalStringDBNAME=test.db;//为了方便使用,这里自己完成一个构造方法publicDataBaseConnection(Contextctx){super(ctx,DBNAME,null,DBVERSION);}publicDataBaseConnection(Contextcontext,Stringname,CursorFactoryfactory,intversion){super(context,name,factory,version);}@OverridepublicvoidonCreate(SQLiteDatabaseconn){//当第一次运行程序时,需要在这里直接建立出数据库中的表Stringsql=CREATETABLEnews(+idintegerprimarykey,+titletext,+answertext+);//执行这条sqlconn.execSQL(sql);}@OverridepublicvoidonUpgrade(SQLiteDatabaseconn,intoldVersion,intnewVersion){Stringsql=null;if(oldVersion==1){sql=DROPTABLEnews;conn.execSQL(sql);}sql=CREATETABLEnews(+idintegerprimarykey,+titletext,+contenttext,+pub_datetext,+typeinteger,+phototext+);conn.execSQL(sql);}}2、现有两个Activity,分别为QuestionListActivity和DetailActivity,现在要从QuestionListActivity中切换界面到DetailActivity,并传递一个名称为id,值为1的参数,请编写代码实现。publicclassMainActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Threadt=newThread(){@Overridepublicvoidrun(){//TODOAuto-generatedmethodstubtry{Thread.sleep(2000);//建立Intent对象,设置要从哪儿,切换到哪儿Intentin=newIntent(MainActivity.this,SecondActivity.class);//设置要传递的参数in.putExtra(id,1);//执行startActivity(in);}catch(InterruptedExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}};t.start();}}++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++接收:publicclassSecondActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_second);//接收上一个Ac
本文标题:北航-Android移动开发试卷+答案
链接地址:https://www.777doc.com/doc-2639163 .html