北航Android移动开发试卷及答案.docx

上传人:h**** 文档编号:1371228 上传时间:2019-02-23 格式:DOCX 页数:9 大小:84.32KB
下载 相关 举报
北航Android移动开发试卷及答案.docx_第1页
第1页 / 共9页
北航Android移动开发试卷及答案.docx_第2页
第2页 / 共9页
北航Android移动开发试卷及答案.docx_第3页
第3页 / 共9页
北航Android移动开发试卷及答案.docx_第4页
第4页 / 共9页
北航Android移动开发试卷及答案.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、一、 选择题 1、 以下那个控件可以用来显示图片 a) ImageView b) TextView c) Button d) 以上都可以 2、 针对 ListView 组件描述错误的是 a) ListView 自带滚动面板功能,如果数据超出屏幕范围,可以自动滚动 b) ListView 在使用时,必须通过 Adapter 来加入数据 c) ListView 如果想改变显示内容,只需要调整对应的 List 集合中的数据即可。 d) ListView 中可以通过 OnItemClickListener 来完成针对某一项目的点击监听 3、 Android 在退出程序时,想保存一些信息,可以在哪个方法

2、中完成? a) onCreate b) onStart c) onStop d) onDestory 4、 Android 开发中常用的数据库是: a) SQL Server b) MySQL c) SQLite d) Oracle 5、 以下调整宽度和高度的属性,哪个不是 Android 系统提供的? a) Match_parent b) Wrap_content c) Fill_content d) Fill_parent 6、 从其他应用中读取共享的数据库数据,需要用到的是 query 方法,返回 Cursor 数据,那么这个方法是哪个对象的方法? a) ContentProvider

3、b) ContentResolver c) SQLiteOpenHelper d) SQLiteDataBase 7、 下列不属于 Android 布局的是 a) LinearLayout b) RelativeLayout c) AnnotationLayout d) FrameLayout 8、 Android 项目中 assets 目录的作用是什么? a) 放置字符串,颜色等信息 b) 放置图片资源 c) 放置较大的文件资源 d) 放置界面布局配置 9、 以下哪个对象是自定义组件中用来绘制内容的对象 a) Bitmap b) Canvas c) BufferedImage d) Draw

4、able 10、 以下属性中哪个属性是 LinearLayout 拥有但 RelativeLayout 没有的属性 a) android:layout_width b) android:layout_height c) android:layout_weight d) android:background 二、 简答题 1、 请描述 Activity 的生命周期流程 使用一张流程图来查看整个 Activity 的生命周期。 (1).启动 Activity:系统会先调用 onCreate 方法,然后调用 onStart 方法,最后调用onResume, Activity 进入运行状态。 (2).

5、当前 Activity 被其他 Activity 覆盖其上或被锁屏:系统会调用 onPause 方法,暂停当前 Activity 的执行。 (3)当前 Activity 由被覆盖状态回到前台或解锁屏:系统会调用 onResume 方法,再次进入运行状态。 (4).当前 Activity 转到新的 Activity 界面或按 Home 键回到主屏,自身退居后台:系统会先调用 onPause 方法,然后调用 onStop 方法,进入停滞状态。 (5)用户后退回到此 Activity:系统会先调用 onRestart 方法,然后调用 onStart 方法,最后调用 onResume 方法,再次进入运

6、行状态。 (6).当前 Activity 处于被覆盖状态或者后台不可见状 态,即第 2 步和第 4 步,系统内存不足,杀死当前 Activity,而后用户退回当前 Activity:再次调用 onCreate 方法、onStart 方法、 onResume 方法,进入运行状态。 (7).用户退出当前 Activity:系统先调用 onPause 方法,然后调用 onStop 方法,最后调用 onDestory 方法,结束当前 Activity。 2、 列举 Android 开发中用到的常用权限,以及编写哪些功能时会用到这些权限(写出权限的作用即可,不需要写权限名) android.permis

7、sion.READ_CALL_LOG:允许应用读取用户的 通话记录 android.permission.READ_CONTACTS:允许应用读取用户的联系人数据 android.permission.WRITE_CONTACTS: 允许应用写(非读)用户的联系人数据 android.permission.CALL_PHONE-允许应用启动一个用户确认电话被拨打 ,而不 是 通过拨打电话的用户界面的拨打程序 . android.permission.WRITE_EXTERNAL_STORAGE:允许应用写(非读)用户的外部存储器 android.permission.SEND_SMS 允许应用

8、 发送短信 3、 比较 Android 与 IOS 系统,列举 Android 系统的优缺点 Android iOS 优点 开放性 (Open Source),支持的厂商很多,可以进行厂商软件和硬件定制 整个生态系统比较好。开发者比较容易从 APP Store 获益,大家愿意付费买应用,让开发者更有开发动力。 内置丰富的 google 服务,当然现在很多都被厂商定制或渠道定制了 苹果对 iOS 可以完全掌控,可以让产品体验追求极致。 平台发展迅速,市场应用丰富 应用整体水平较高,用户都比较喜欢 产品定价范围宽,适合各种人群 缺点 版本过多,升级过快 封闭,只有苹果一家在玩,难于扩大市场。 由于

9、开原性,很容易被复制(山寨) 大部分好的应用都需要付费。 用户体验不一致 产品定价较高,适合较高消费水平人群 由于平台的开放性,用户信息和安全等方面存在明显的隐患 开发门槛较高,需要熟悉 Objective C/C/C+语言和苹果开发环境。 第三方应用商店很多,很杂,选择上导致存在一定的难度,应用品质也相对较差 第三方软件开发者盈利模式相对有限,盗版严重 4、 一个应用长时间没有响应( Application Not Response)主要是由于什么原因引起的,怎样解决(提示:线程) Android 应用程序通常是运行在一个单独的线程(例如, main)里。这意味着你的应用程序所做的事情如果在

10、主线程里占用了太长的时间的话,就会引发 ANR 对话框,因为你的应用程序并没有给自己机会来处理输入事件或者 Intent 广播。 因此,运行在主线程里的任何方法都尽可能少做事情。 可能处于加载大量数据中,并且没有使用多线程,界面上无法显示数据,导致不响应。 解决方案:采用多线程,将加载数据的功能放在 thread,通过 handler 提醒界面数据更改 5、 列出你开发中使用到的常用布局,并说明这些布局的特点 View 的布局方式的类,都是直接或间接继承自 ViewGroup 类,如下图所示: 我开发中使用到的常用布局有 1) LinearLayout:线性布局 其特点是将多个组件穿到一条线上

11、显示。可以通过属性调整其横向还是纵向摆放。 如果是纵向排列,那么将是一个 N 行单列的结构 ,每一行只会有一个元素,而不论这个元素的宽度为多少;如果是横向摆放,那么将是一个单行 N 列的结构。 android:layout_weight 描述该子元素在剩余空间中占有的大小比例 2) Relative Layout:相对布局 其特点是 允许子元素指定他们相对于其它元素或 者 父元素的位置( 例如底部对齐,或中间偏左 ) , 例如 android: layout_below, android:layout_above, android:layout_toLeftOf,android:layout_

12、alignTop, android:layout_centerVertical 等。注意在指定位置关系时,引用的id 必须在引用之前,先被定义,否则将出现异常。可以实现多重界面覆盖 3) TableLayout,表格布局 其特点是适用于 N 行 N 列的布局格式。一个 TableLayout 由许多 TableRow 组成,一个 TableRow 就代表 TableLayout 中的一行。 HTML 中的表格布局非常类似, TableRow 就像 HTML表格的 标记 。 TableRow 是 LinearLayout 的子类, ablelLayout 并不需要明确地声明包含多少行、多少列,而

13、是通过 TableRow,以及其他组件来控制表格的行数和列数, TableRow也是容器,因此可以向 TableRow 里面添加其他组件,没添加一个组件该表格就增加一列。如果想 TableLayout 里面添加组件,那么该组件就直接占用一行。在表格布局中,列的宽度由该列中最宽的单元格决定,整个表格布局的宽度取决于父容器的宽度(默认是占满父容器本身)。 TableLayout 继承了 LinearLayout 4) FrameLayout 帧布局 其特点是它是 最简单的布局格式,他可以防止任何空件,但是都只能罗列到左上角,不能进行复杂的布局 5) AbsoluteLayout 绝对布局 其特点是

14、 可以让子元素指定准确的 x/y 坐标值,并显示在屏幕上。 AbsoluteLayout 没有页边框,允许元素之间互相重叠(尽管不推荐)。他是绝对坐标,所以在实际中不提倡使用。 6、 描述一个 Android 项目开发时,整个项目中应该包含哪些目录和核心文件,这些目录和文件的主要作用是什么? 在 Android 项目中包含以下目录: 1) src:源代码目录,保存着所有的 java 源程序 2) gen:自动生成的 java 代码,会根据项目中加入的配置和资源来生成, 一定不要手工修改 3) assets:放入一些相对比较大的文件,以供程序读取。 a) 一般建议 1Mb 以上的文件就放到该目录

15、下。 4) bin:编译后的文件所在的目录,里面包含了 apk 文件 5) libs:支持类库。 6) res:资源目录,大部分要用到的文件,需要放到此目录下。 a) drawable-xxxx:图片,所有在应用中需要用到的图片,要放到这些目录中 i. xxxx:表示对应的分辨率级别。 ii. 这里的文件名称必须符合 java 命名规范,而且不能有大写 b) layout:布局配置,这里放入都是 xml 文件,通过 XML 描述界面的显示布局。 i. 一般来说,一个 Activity 肯定要对应一个 xml 布局文件。 c) menu:放入点菜单键后弹出的菜单内容,现在很少使用。 d) val

16、ues:放入 xml 文件,用来配置一些固定的数值或文字的。 e) raw:放入其他文件,可以使用 IO 流读取,一般放入 txt f) anim:动画配置文件 Android 项目的核心文件 : AndroidManifest.xml: 项目的核心文件,标示这个 android 项目在整个平台的唯一性、版本、 activity 的标示以及权限等信息 ,重要性等同于 Web 项目中的 web.xml 文件。 三、编程题 1、请继承 SQLiteOpenHelper,编写一个数据库连接类,完成以下功能 创建一个版本为 1,名称为“ test.db”的数据库 在 onCreate 方法中创建一张名

17、称为 question 的表,表中包含以下字段 id(主键,数字,自增长), title(文本), answer(文本) publicclass DataBaseConnection extends SQLiteOpenHelper / 初始化固定的值 privatestaticfinalintDBVERSION = 1; privatestaticfinal String DBNAME = “test.db“; / 为了方便使用 ,这里自己完成一个构造方法 public DataBaseConnection(Context ctx) super(ctx,DBNAME, null, DBVER

18、SION); public DataBaseConnection(Context context, String name, CursorFactory factory, int version) super(context, name, factory, version); Override publicvoid onCreate(SQLiteDatabase conn) / 当第一次运行程序时 , 需要在这里直接建立出数据库中的表 String sql = “CREATE TABLE question (“ + “id integer primary key,“ + “title text

19、 ,“ + “answer text “ + “)“ ; / 执行这条 sql conn.execSQL(sql); 2、 现有两个 Activity,分别为 QuestionListActivity 和 DetailActivity,现在要从QuestionListActivity 中切换界面到 DetailActivity,并传递一个名称为 id,值为 1 的参数,请编写代码实现。 public class QuestionListActivityextends Activity Override protected void onCreate(Bundle savedInstanceSt

20、ate) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /创建线程 Thread t=new Thread() Override public void run() try Thread.sleep(2000); / 建立 Intent对象 ,设置要从哪儿 ,切换到哪儿 Intent in = new Intent(QuestionListActivity.this, DetailActivity.class); / 设置要传递的参数 in.putExtra(“id“, “1“); sta

21、rtActivity(in); finish(); catch (InterruptedException e) e.printStackTrace(); ; t.start(); + 接收: public class DetailActivityextends Activity Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); / 接收上一个 Activity传入的参数

22、 String param = getIntent().getStringExtra(“id“); Toast.makeText(this, “接收到的参数为 : “ + param, Toast.LENGTH_LONG).show(); 补充: 1、 列出你开发中使用到的常用组件 TextView - 文本显示控件 EditView - 文本 编辑框 Button - 按钮控件 ImageButton - 图片按钮控件 ImageView - 图片显示控件 CheckBox - 复选框控件 RadioButton - 单选框控件 Spinner-下拉列表 DatePicker-日期选择控件

23、TimePicker-时间选择控件 ProgressBar-进度条控件 SeekBar-可拖动的进度条控件 VideoView - 视频播放控件 RatingBar - 评分控件 ScrollView - 滚动条控件 GridView(网格控件) ListView(列表控件) ExpandableList(支持展开 /收缩功能的列表控件 AutoCompleteTextView-支持自动完成功能的可编辑文本控件 MultiAutoCompleteTextView-支持自动完成功能的可编辑文本控件,允许输入多值【多值之间会自动地用指定的分隔符分开】 ZoomControls - 放大 /缩小按钮

24、控件 Include - 整合控件 WebView - 浏览器控件 Tab - 选项卡控件 Chronometer - 计时器控件 TextSwitcher(文字转换器控件(改变文字时增加一些动画效果) Gallery(缩略图浏览器控件) ImageSwitcher(图片转换器控件(改变图片时增加一些动画效果) 2、 常用的输入和输出流(转换流和缓冲流) BufferedReader reader = new BufferedReader(new InputStreamReader(a .getAssets().open(“answer_text/“ + allTxtFilei), “GBK“

25、); 1. 抽象类 InputStreamOutputStream 方法 read(), write(), close() 流结束的判断方法 read()的返回值为 -1, readLine()返回值为 null 2. 文件读写类 FileInputStreaFileOutputStream 方法 : read()方法将文件读入一个 byte类型的数组 ,其数组长度可由 in.avalialbe()方法 获得 read(byte, int off, int len) off 指从流中读入的字节所放入数组中的开始数字 , len 指读入长度 write(byte, int off, int len) off 指定数组的起始位置 ,从该位置起的字节写入流中 ,len指写入长度 byte 数组的最大长度为 60M,如超出则需要将文件分段 还没写好。注意: 读取 SD 卡的方法 Activity 中怎样设置界面。 Activity 的作用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。