北航Android移动开发试卷及答案.docx_第1页
北航Android移动开发试卷及答案.docx_第2页
北航Android移动开发试卷及答案.docx_第3页
北航Android移动开发试卷及答案.docx_第4页
北航Android移动开发试卷及答案.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、 选择题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) SQL Serverb) 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的生命周期流程使用一张流程图来查看整个Activity的生命周期。 (1).启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。(2).当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。(3)当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。(4).当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。(5)用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。(6).当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。(7).用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。2、 列举Android开发中用到的常用权限,以及编写哪些功能时会用到这些权限(写出权限的作用即可,不需要写权限名)android.permission.READ_CALL_LOG:允许应用读取用户的通话记录android.permission.READ_CONTACTS:允许应用读取用户的联系人数据android.permission.WRITE_CONTACTS: 允许应用写(非读)用户的联系人数据android.permission.CALL_PHONE-允许应用启动一个用户确认电话被拨打,而不是通过拨打电话的用户界面的拨打程序.android.permission.WRITE_EXTERNAL_STORAGE:允许应用写(非读)用户的外部存储器android.permission.SEND_SMS允许应用发送短信3、 比较Android与IOS系统,列举Android系统的优缺点AndroidiOS优点开放性(Open Source),支持的厂商很多,可以进行厂商软件和硬件定制整个生态系统比较好。开发者比较容易从APP Store获益,大家愿意付费买应用,让开发者更有开发动力。内置丰富的google服务,当然现在很多都被厂商定制或渠道定制了苹果对iOS可以完全掌控,可以让产品体验追求极致。平台发展迅速,市场应用丰富应用整体水平较高,用户都比较喜欢产品定价范围宽,适合各种人群缺点版本过多,升级过快封闭,只有苹果一家在玩,难于扩大市场。由于开原性,很容易被复制(山寨)大部分好的应用都需要付费。用户体验不一致产品定价较高,适合较高消费水平人群由于平台的开放性,用户信息和安全等方面存在明显的隐患开发门槛较高,需要熟悉Objective C/C/C+语言和苹果开发环境。第三方应用商店很多,很杂,选择上导致存在一定的难度,应用品质也相对较差第三方软件开发者盈利模式相对有限,盗版严重4、 一个应用长时间没有响应(Application Not Response)主要是由于什么原因引起的,怎样解决(提示:线程)Android应用程序通常是运行在一个单独的线程(例如,main)里。这意味着你的应用程序所做的事情如果在主线程里占用了太长的时间的话,就会引发ANR对话框,因为你的应用程序并没有给自己机会来处理输入事件或者Intent广播。因此,运行在主线程里的任何方法都尽可能少做事情。 可能处于加载大量数据中,并且没有使用多线程,界面上无法显示数据,导致不响应。解决方案:采用多线程,将加载数据的功能放在thread,通过handler提醒界面数据更改5、 列出你开发中使用到的常用布局,并说明这些布局的特点View的布局方式的类,都是直接或间接继承自ViewGroup类,如下图所示:我开发中使用到的常用布局有1) LinearLayout:线性布局 其特点是将多个组件穿到一条线上显示。可以通过属性调整其横向还是纵向摆放。如果是纵向排列,那么将是一个N行单列的结构,每一行只会有一个元素,而不论这个元素的宽度为多少;如果是横向摆放,那么将是一个单行N列的结构。android:layout_weight描述该子元素在剩余空间中占有的大小比例2) Relative Layout:相对布局其特点是允许子元素指定他们相对于其它元素或者父元素的位置(例如底部对齐,或中间偏左),例如android:layout_below, android:layout_above, android:layout_toLeftOf,android:layout_alignTop, android:layout_centerVertical等。注意在指定位置关系时,引用的id必须在引用之前,先被定义,否则将出现异常。可以实现多重界面覆盖3) TableLayout,表格布局其特点是适用于N行N列的布局格式。一个TableLayout由许多TableRow组成,一个TableRow就代表TableLayout中的一行。HTML中的表格布局非常类似,TableRow 就像HTML表格的标记。TableRow是LinearLayout的子类,ablelLayout并不需要明确地声明包含多少行、多少列,而是通过TableRow,以及其他组件来控制表格的行数和列数, TableRow也是容器,因此可以向TableRow里面添加其他组件,没添加一个组件该表格就增加一列。如果想TableLayout里面添加组件,那么该组件就直接占用一行。在表格布局中,列的宽度由该列中最宽的单元格决定,整个表格布局的宽度取决于父容器的宽度(默认是占满父容器本身)。TableLayout继承了LinearLayout4)FrameLayout 帧布局其特点是它是最简单的布局格式,他可以防止任何空件,但是都只能罗列到左上角,不能进行复杂的布局5)AbsoluteLayout 绝对布局其特点是可以让子元素指定准确的x/y坐标值,并显示在屏幕上。AbsoluteLayout 没有页边框,允许元素之间互相重叠(尽管不推荐)。他是绝对坐标,所以在实际中不提倡使用。6、 描述一个Android项目开发时,整个项目中应该包含哪些目录和核心文件,这些目录和文件的主要作用是什么?在Android项目中包含以下目录:1) src:源代码目录,保存着所有的java源程序2) gen:自动生成的java代码,会根据项目中加入的配置和资源来生成,一定不要手工修改3) assets:放入一些相对比较大的文件,以供程序读取。a) 一般建议1Mb以上的文件就放到该目录下。4) bin:编译后的文件所在的目录,里面包含了apk文件5) libs:支持类库。6) res:资源目录,大部分要用到的文件,需要放到此目录下。a) drawable-xxxx:图片,所有在应用中需要用到的图片,要放到这些目录中i. xxxx:表示对应的分辨率级别。ii. 这里的文件名称必须符合java命名规范,而且不能有大写b) layout:布局配置,这里放入都是xml文件,通过XML描述界面的显示布局。i. 一般来说,一个Activity肯定要对应一个xml布局文件。c) menu:放入点菜单键后弹出的菜单内容,现在很少使用。d) values:放入xml文件,用来配置一些固定的数值或文字的。e) raw:放入其他文件,可以使用IO流读取,一般放入txtf) anim:动画配置文件Android项目的核心文件:AndroidManifest.xml:项目的核心文件,标示这个android项目在整个平台的唯一性、版本、activity的标示以及权限等信息,重要性等同于Web项目中的web.xml文件。三、编程题1、请继承SQLiteOpenHelper,编写一个数据库连接类,完成以下功能创建一个版本为1,名称为“test.db”的数据库在onCreate方法中创建一张名称为question的表,表中包含以下字段id(主键,数字,自增长),title(文本),answer(文本)publicclass DataBaseConnection extends SQLiteOpenHelper / 初始化固定的值privatestaticfinalintDBVERSION = 1;privatestaticfinal String DBNAME = test.db;/ 为了方便使用,这里自己完成一个构造方法public DataBaseConnection(Context ctx) super(ctx,DBNAME, null, DBVERSION);public DataBaseConnection(Context context, String name,CursorFactory factory, int version) super(context, name, factory, version);Overridepublicvoid onCreate(SQLiteDatabase conn) / 当第一次运行程序时, 需要在这里直接建立出数据库中的表String sql = CREATE TABLE question ( +idinteger primary key, +titletext , +answer text +) ;/ 执行这条sqlconn.execSQL(sql);2、 现有两个Activity,分别为QuestionListActivity和DetailActivity,现在要从QuestionListActivity中切换界面到DetailActivity,并传递一个名称为id,值为1的参数,请编写代码实现。public class QuestionListActivityextends Activity Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); /创建线程Thread t=new Thread()Overridepublic void run() try Thread.sleep(2000);/ 建立Intent对象,设置要从哪儿,切换到哪儿Intent in = new Intent(QuestionListActivity.this, DetailActivity.class);/ 设置要传递的参数in.putExtra(id, 1);startActivity(in); finish(); catch (InterruptedException e) e.printStackTrace();t.start();+接收:public class DetailActivityextends Activity Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_second);/ 接收上一个Activity传入的参数String param = getIntent().getStringExtra(id);Toast.makeText(this, 接收到的参数为: + param, Toast.LENGTH_LONG).show();补充:1、 列出你开发中使用到的常用组件TextView - 文本显示控件EditView - 文本编辑框Button - 按钮控件ImageButton - 图片按钮控件ImageView - 图片显示控件CheckBox - 复选框控件RadioButton - 单选框控件Spinner-下拉列表DatePicker-日期选择控件TimePicker-时间选择控件ProgressBar-进度条控件SeekBar-可拖动的进度条控件VideoView - 视频播放控件RatingBar - 评分控件ScrollView - 滚动条控件GridView(网格控件)ListView(列表控件)ExpandableList(支持展开/收缩功能的列表控件AutoCompleteTextView-支持自动完成功能的可编辑文本控件MultiAutoCompleteTextView-支持自动完成功能的可编辑文本控件,允许输入多值【多值之间会自动地用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论