收藏 分享(赏)

2017广东海洋大学《移动编程》复习试题.doc

上传人:精品资料 文档编号:7895628 上传时间:2019-05-29 格式:DOC 页数:11 大小:85.35KB
下载 相关 举报
2017广东海洋大学《移动编程》复习试题.doc_第1页
第1页 / 共11页
2017广东海洋大学《移动编程》复习试题.doc_第2页
第2页 / 共11页
2017广东海洋大学《移动编程》复习试题.doc_第3页
第3页 / 共11页
2017广东海洋大学《移动编程》复习试题.doc_第4页
第4页 / 共11页
2017广东海洋大学《移动编程》复习试题.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、 2017 广东海洋大学移动编程复习提纲注:还有一些选择判断填空的小细节自己复习,红色字体的为重点复习内容。记住一句话就能(高分)过:一定按照老师最后复习说的内容进行逐点复习。题型:选择+填空+判断=65 分 程序填空+编程=35 分1.Android 体系结构(各控件的作用)(判断题:安卓有自己的运行时和内存管理机制()安卓基于 Linux 内核,采用软件堆层,分四层,第一层:Linux 内核,提供由操作系统内核管理的底层基础功能,如:安全机制、内存管理、进程管理、电源驱动等第二层:中间件层,有函数库和 Android 运行时构成,如:运行时(核心库和ART 虚拟机)、函数库(Surface

2、 Manager、SQLite 等)第三层:应用程序框架,提供了 Android 平台基本的管理功能和组件重用机制,如:Activity Manager、Window Manager、Content Providers。第四层:应用程序层,如:邮件客户端、通讯录。SDK 提供开发所必备的调试、打包和仿真工具和详细的说明文档以及开发示例。Add-one 目录存放 Google 提供的地图开发包,docs 目录是帮助文档,extrasGoogle 目录保存 Android 手机的 USB 驱动程序。Platforms 存放 sdk和 avd 管理器下载的各种版本的 SDK,Platform-too

3、ls 保存了与平台调试相关的工具。2.开发工具(各开发工具的作用)1.Android 模拟器:SDK 中最重要的工具,允许程序开发者在没有物理设备的情况,在计算机上对 Android 程序进行开发、调试和仿真。2.Android 调试桥(ADB):用于连接 Android 设备或模拟器的工具,负责将应用程序安装带模拟器和设备中,或从模拟器或设备中传输文件。3.DDMS(dalvik debug monitor service):系统中内置的调试工具,可以用来监视 Android 系统中进程、堆栈信息,查看 logcat 日志等。其中,设备管理器用于监控多个 Android 模拟器,显示其正在运

4、行的所有进程。模拟器控制器用于控制模拟器网络速度和延时等。文件浏览器可以对 Android 内置存储器上的文件进行上传下载等操作。日志浏览器(logcat)可以浏览系统或者应用程序产生的日志信息。(设置日志点,五种分类)3.四大组件包括 Activity、Service、Broadcast receiver、Content provider。Activity 是程序的呈现层,显示可视化的用户界面,并接受用户交互所产生的界面事件。Service 一般用于没有用户界面,但需要长时间在后台运行的应用。如 MP3Broadcast receiver 是用来接收并响应广播消息的组件。如时区变更,电量不足

5、等。Content provider 是 Android 系统提供的一种标准的共享数据的机制,应用程序可以通过 content provider 访问其他应用程序的私有数据。全生命周期:始于 onCreate,终于 onDestroy可视生命周期:始于 onStart,终于 onStop活动生命周期:始于 onResume,终于 onPauseActivity 重新获得焦点如果 Activity 重新获得焦点,会依次执行 3 个事件回调函数:onRestart onStart onResume 启动 Activity在这个阶段依次执行 3 个事件回调函数:onCreate onStart on

6、Resume单选按钮 RadioButton;复选按钮 CheckBox4.定制用户界面控件相应的响应事件。View.OnClickListener/CheckBox.OnClicklistener/RadioButton.OnClicklistener xxx = new xx.OnClickListener()Public void onClick(View v)相对布局能够最大程度保证在不同分辨率的设备上正确显示界面布局用 XML 使用选项菜单和子菜单(程序填空题,除了下面的,还有线性布局,相对布局都挖了空,参考课本 P106(第六行等),P112(第 20 行等)或课件相关内容。)pu

7、blic class OptionMenuActivity extends Activity public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);/考试中 main 被替换成具体的文件。public boolean onCreateOptionsMenu(Menu menu) MenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.main_men

8、u, menu);return true;快捷菜单(Activity 栈和 fragment 回退栈):(选择题也考到 Fragment 重载的三个回调函数 onCreate(),onCreateView(),onPause())为 LabelView 元素注册快捷菜单 registerForContextMenu(LabelView);初始化快捷菜单 public void onCreateContextMenu(Context Menumenu,View v, ContextMen uInfo menuInfo)点击事件的响应 public boolean onContextItemSel

9、ected(MenuItem item)菜单项点击事件 public boolean onOptionsItemSelected(MenuItem item) 5.SP 的特点(名/值对 )(考试中,要选一个说法错误的,答案好像是配置文件只能是 XML 那个选项。应该还可以是 INI 等。),支持的访问模式: SP 不仅能保存数据,还能够实现不同程序间的数据共享。 SP 支持各种基本数据类型缺点 尽管 SP 使用安卓的文件系统进行数据的存取,但数据文件只能保存在设备的内部存储器中的一个固定的私有目录中,不能指定其保存路径。 一个关键字只能保存一项数据,数据的存储能力有限。 无法直接存储复杂的数

10、据类型 若要采用 SharedPreferences 存储复杂类型的数据,则需要先对数据进行编码(如,Base64 编码),再将编码后的数据以字符串的形式保存在SharedPreferences 数据文件中访问模式(填空题,两个空,好像是全局读,全局写):私有(MODE_PRIVATE): 缺省模式,数据文件仅能够被创建数据文件的应用程序,或具有相同 UID的其它应用程序进行读取和写入 在私有模式下,写入的数据会覆盖掉文件中原有的数据全局读(MODE_WORLD_READABLE): 不仅创建数据文件的应用程序或具有相同 UID 的应用程序可以对其进行读取或写入,其它应用程序也具有读取操作的权

11、限全局写(MODE_WORLD_WRITEABLE): 不仅创建数据文件的应用程序或具有相同 UID 的应用程序可以对其进行读取或写入,其它应用程序也具有写入操作的权限 在全局写模式下,写入的数据会覆盖掉文件中原有的数据2、如何对 SP 的文件进行访问,SP 的文件保存位置和保存格式 SharedPreferences 以 XML 格式的文件保存所产生的数据 在实际应用中,SharedPreferences 将数据文件保存在设备的内部存储器的一个私有目录中,如下所示目录:datadatashared_prefs3、SP 访问数据的 4 个步骤: 定义 SharedPreferences 的访问

12、模式public static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE 定义 SharedPreferences 的名称,即保存在 Android 文件系统中的SharedPreferences 数据文件(XML 文件)的名称public static final String PREFERENCE_NAME = “SaveSetting“;注意:由于 SharedPreferences 数据文件只能以 XML 文件格式存储在手机内存中的固定目录下,因此,所定义的文件名不能包含路径,也不用指定文

13、件的后缀名 使用 Activity 类的 getSharedPreferences()API 获取一个SharedPreferences 实例SharedPreferences SP = getSharedPreferences(PREFERENCE_NAME, MODE); 对 SharedPreferences 中的数据进行读写操作 写数据 1 SharedPreferences SP = getSharedPreferences(PREFERENCE_NAME, MODE); 2 SharedPreferences.Editor editor = SP.edit(); 3 editor.

14、putString(“Name“, “Tom“); 4 editor.putInt(“Age“, 20); 5 editor.putFloat(“Height“, 1.81f); 6 mit(); 读数据: 1SharedPreferences SP = getSharedPreferences(PREFERENCE_NAME, MODE); 2 String name = SP.getString(“Name“,“Default Name“); 3 int age = SP.getInt(“Age“, 20); 4 float height = SP.getFloat(“Height”,1.

15、81f);6.文件存储(判断题)(1、内部存储与外部存储的相同点与不同点。 内部存储器空间有限,仅能保存小尺寸的文件,且仅能将文件存储在存储器的固定目录中,但支持文件的访问模式和权限控制的设置(使用 Linux 文件系统的缘故) 外部存储器空间较大,适用于保存大尺寸的文件,且文件能够存储在存储器的任意目录中,但不支持文件的访问模式和权限控制的设置(使用 FAT 文件系统的缘故)2、对内部存储与外部储存文件进行访问的方式 在外部存储器 SD 卡上读写数据的步骤与读写内部存储器数据的步骤基本一致,但需要具备以下 2 项前提 因为 SD 卡可以随意加载或卸载,所以在编程访问 SD 卡前需要检测 SD

16、 卡或者 SD 卡映射目录(如/sdcard 或 /mnt/sdcard)的可用性 在运行程序之前,需要在 AndroidManifest.xml 中注册 2 个用户权限,即在根标签下添加 2 项子标签 外部存储-写入数据部分代码: OnClickListener writeButtonListener = new OnClickListener() Override public void onClick(View v) String fileName = “SdcardFile-“ + System.currentTimeMillis() + “.txt“; File dir = new

17、File(“/sdcard/“); if (dir.exists() FileOutputStream fos = null; try newFile.createNewFile(); if (newFile.exists() fos.write(randomNumbersString.getBytes(); TextView labelView = (TextView)findViewById(R.id.label); labelView.setText(fileName + “文件写入 SD 卡“); catch (IOException e) e.printStackTrace(); f

18、inally if (fos != null) try fos.flush(); fos.close(); catch (IOException e) )7.数据库存储(1、如何对数据库进行管理和访问 2、代码建库 3 种类的作用) 对数据库进行管理和访问(参考以前学过的 oracle 数据库) SQLiteDatabase 类:位于 android.database.sqlite 包中,是管理和操作SQLite 数据库的核心类,封装了几乎所有数据库操作的 API(如:数据的添加、查询、更新、删除等) DBOpenHelper: 为 DBAdapter 类内部自定义的子类,继承于SQLiteO

19、penHelper 帮助类, 用于辅助建立、更新和打开数据库 Context 类: 一个描述应用程序环境(即上下文)的全局性信息的抽象 Android 系统提供了该抽象类的具体实现类 通过 Context 可以访问应用程序中的资源和类,以及执行应用程序级别的操作,例如:启动 Activity、发送广播、接受 Intent 信息等public class DBAdapter private static final String DB_NAME = “people.db”; / 数据库名称private static final String DB_TABLE = “peopleinfo”; /

20、 数据表名称private static final int DB_VERSION = 1; / 数据库版本号public static final String KEY_ID = “_id”; / 数据表的主键字段名称public static final String KEY_NAME = “name”; / 数据表的数据字段名称public static final String KEY_AGE = “age“; / 数据表的数据字段名称public static final String KEY_HEIGHT = “height“; / 数据表的数据字段名称private SQLite

21、Database db;private final Context context;private DBOpenHelper dbOpenHelper;private static class DBOpenHelper extends SQLiteOpenHelper Public DBOpenHelper(Context context,String name,CursorFactory factory,int version)Super(context,name,factory,version);Private static final String DB_CREATE = “create

22、 table”+DB_TABLE+“(”+KEY_ID+”integer primary key autoincrement,”+KEY_NAME+”text not null,”+KEY_AGE+”integer,”+KEY_HEIGHT+”float);”;OverridePublic void onCreate(SQLiteDatabase _db)_db.execSQL(DB_CREATE);OverridePublic void onUpgrade(SQLitedatabase _db,int _oldVersion,int _newVersion)_db.execSQL(“DROP

23、 TABLE IF EXISTS”+DB_TABLE);OnCreate(_db);public DBAdapter(Context _context) context = _context;public void open() throws SQLiteException dbOpenHelper = new DBOpenHelper(context, DB_NAME, null, DB_VERSION);try db = dbOpenHelper.getWritableDatabase();catch (SQLiteException ex) db = dbOpenHelper.getReadableDatabase();public void close() if (db != null)db.close(); db = null;最后一题编程代码建库 P215 起参考最后一个实验相关代码也靠谱(1 创建数据库 2 创建表 3 对表进行增删查改)(1)创建名为 xxx 的数据库(2)创建 student 表(3)向 student 表中插入对应表格里的数据(4)更新数据库等等未完待续。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报