版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、唐山师范学院本科毕业论文 题 目掌上书城的设计与实现 学 生李瑞青 指导老师葛卫军 副教授 年 级2012级 专 业信息管理与信息系统 系 别数学与信息科学系唐山师范学院数学与信息科学系2015年9月郑重声明本人的毕业论文(设计)是在指导教师葛卫军老师的指导下独立撰写完成的。如有剽窃、抄袭、造假等违反学术道德、学术规范和侵权的行为,本人愿意承担由此产生的各种后果,直至法律责任,并愿意通过网络接受公众的监督。特此郑重声明。毕业论文(设计)作者(签名): 年 月 日目 录标题1摘要5 1 前言52 概述62.1 课题的背景及意义62.2 课题背景62.3 课题意义62.4研究成果 63 开发环境7
2、3.1软件定义73.2开发平台简介73.2.1 Android SDK 4.4平台73.2.2 开发工具 Eclipse73.2.3 Java73.2.4 SQLite和JavaWeb84 系统分析94.1 可行性分析94.1.1技术可行性94.1.2 经济可行性94.1.3 社会可行性94.2 需求分析说明94.2.1 项目总体概述94.2.2 具体需求95 系统结构与模型105.1 设计实现的思路105.2 系统结构设计106 数据库设计136.1 E-R图136.2数据库逻辑设计136.3数据库物理结构设计147 总体设计147.1 总体设计与说明147.2代码实现167.2.1 SQL
3、ite的代码实现167.2.2 首启动欢迎页177.2.3 主页面197.2.4 其他页面228 测试238.1测试方法简介248.1.1 根据是否需要执行程序 248.1.2 按阶段划分 248.1.3 按测试方法划分248.2系统测试中的问题及测试方法和解决办法248.3系统维护258.4测试结果279 总结37参考文献38致 谢39外文页40掌上书城的设计与实现李瑞青 摘 要 该设计用了Eclipse作为开发工具,使用Java语言及安卓知识进行大致设计,先总体规划数据结构后逐步实现功能完成了一个掌上书城的手机APP,在已有的某些应用基础上添加新功能,以适应客户对阅读软件的更多要求。前台用
4、户可以在书城中查看图书并向书架里添加、删除图书,查看图书时还可以添加笔记,在某个页面查看笔记、删除笔记及修改笔记。但目前该应用还有很多不理想、功能不完善的地方需要改进,例如阅读进度提示等。通过此设计,可以发现近几年安卓市场的火热,以及安卓应用的方便快捷。该应用继续开发下去一定会有更为广阔的前景,且它完全是可实现的,能让人们更方便更愉悦的阅读图书。 关键词 Java 安卓 掌上书城 1 前言 2007年11月5日,Google发布了基于Linux平台的开源移动平台Android。该平台由操作系统、中间件、用户界面和应用软件等组成,号称是首个为移动终端打造的真正开发的移动开发平台。 Android
5、作为谷歌企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。Google的目标是让移动通信不依赖与设备甚至平台。出于这个目的,Android将补充Google长期以来奉行的移动开发战略;通过与全球的手机制造商和移动运营商结成合作伙伴,开发并推广移动服务。 在Android开发方面,Android SDK1.6 r1 和Android NDK1.6 r1 已发布,Eclipse插件ADT Plug-in 已更新至0.9.3版本。Android SDK1.6 的API Level 是4,而1.5的是3。SDK 1.6 的工程目录与1.5相同,所以大多数基于SDK 1
6、.5的应用程序可以不经修改直接在SDK 1.6 修改,但如果涉及 API Level 的问题,就需要进行具体的分析。 在Android终端设备方面,世界上第一款 Android 手机G1 出自HTC,此后HTC陆续推出了HTC Magic G2、HTC Hero、HTC Tatoo等机型,功能日臻强大。此外,摩托罗拉、三星、索尼爱立信、LG、华为、联想等大牌设备厂商也在积极筹备Android手机的上市。在国内,中国移动最早启动了基于Android 平台的手机操作系统OMS(Open Mobile System)的研发。而中国联通和中国电信也紧追不舍,相应展开了基于Android的手机操作系统研
7、发。运营商在开发Ophone(中国移动)、Uphone(中国联通)、Cphone(中国电信)等手机操作系统的同时,也在积极部署相应的软件商店。软件商店是利润的主要来源,而优秀的应用程序时构成软件商店的基本要素,这就为国内的移动开发者提供了非常好的机遇。2 概述2.1 研究背景 在这个信息高速发展的时代,手机越来越普遍,几乎是人手一部手机,有的甚至两部或更多。由于苹果手机的价格昂贵,大多数人用的都是安卓手机。手机更新换代快,而手机软件的更新就更迅速了。且目前大多数人因为手机等电子设备的方便更偏爱阅读电子书,各类阅读软件应运而生,该阅读软件除了可以让用户读到想读的书外还可以有添加笔记更换背景音乐等
8、等功能,未来发展前景良好。2.2 研究目的 为了满足广大用户对各类电子书的需求,针对当前安卓手机火热的市场前景,综合以往的开发经验以及前期调查,同时结合自己及其他用户使用阅读软件的感受,我设计并实现了该软件。该软件全面细致的分析了目前市场上同类型的其他应用的不足并加以改进,明确了要实现的具体功能,并适当的辅以界面和特效。使得整个应用更加协调美观实用。 设计并实现一个掌上书城的项目,针对用户的需求适当的添加修改某些功能,以便让用户用的更方便。实现让用户随时随地看想看的电子书,记下看书时一瞬间想法的笔记的功能。 决定需求前,和多位资深小说爱好者交流过,发现目前的阅读APP存在只有阅读没有游戏缓解阅
9、读疲劳,有时候找不到刚刚忘记添加进书架的书在哪里等等问题,我开发了这个对阅饼容易得到且添加了最近阅读书单的软件。希望大家用的满意。2.3 研究内容 本设计主要通过分析关键需求,确定主要问题,明确主要功能及方向,然后设计软件的结构和页面的布局,并分析数据库,通过Java语言来编写,来实现美观实用的书城APP。2.4研究成果及意义 本设计实现了管理员后台添加图书、修改图书、删除图书等功能,以便用户查看图书并根据自己的喜好添加到书架中,用户还可对笔记进行增删改查。虽然跟已经流行的某些阅读软件相比还有不足之处,功能也相对不完善,但是软件重在一点点更新,我相信下一个版本会更好,且它提供了其他阅读软件没有
10、的功能。对于现代人高信息化快节奏化的生活,很有调节及消除疲劳、休闲娱乐的功能。3 开发环境3.1 软件定义 平台及版本:Android SDK 4.4.2 开发IDE:Eclipse 使用语言:Java 数据库:SQLite运行环境:Eclipse模拟器3.2 开发平台介绍3.2.1 Android SDK 4.4.2 与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。且Android是一个对第三方
11、软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,可节省近三成成本。3.2.2 Eclipse Eclipse最初是IBM的一个软件产品,前期投入了4000万美金。 Eclipse的设计思想是:一切皆为插件。它自身的核心是非常小的,其他所有的功能都以插件的形式附加到该核心上。 Eclipse平台是一个具有一组强大服务的框架,这些服务支持插件,比如Java开发环境插件(JDT)、插件开发环境(PDE)和其他的第三方插件(New t
12、ool)。它由几个主要的部分构成:平台运行库、工作区、工作台、团队支持和帮助。3.2.3 Java Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。 Java语言主要有三大特点,多态、封装、继承。我个人理解为,Java的多态主要表现在方法的重写和重载上,即overload和override。重写是子类继承父类,重写父类的方法。而重载是指方法名相同,只是参数类型不同,可以是参数数目不同,参数数据类型不同,也可以是两者都不同。封装就是封装属性或方法,大大增加了代码的安全性和可重复利用率。Java中的继承和C语言中的继承不同,Java中只
13、允许单继承,即一个子类只能继承一个父类,但它可以实现多个接口,也就是所谓的单继承多接口,而C语言中子类可继承多个父类。这也体现了Java语言的面向对象特点,现实世界中随处可见的一种事物就是对象,对象是事物存在的实体,如人类、汽车、计算机等。人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象都是由哪些部分组成的。通常会将对象划分为两部分,静态部分和动态部分,静态部分及对象所具备的属性,例如我们大家,每个人都有自己的身高、体重、年龄、职业等描述,而且我们每个人还有自己的动作,我们可以跑动、哭泣、说话、大笑,这都是我们所具备的行为。而Java就是通过观察探讨对象的属性和所具备的行为来了解
14、对象进行编程。3.2.4 SQLite和JavaWeb该应用使用SQLite本地数据库,没有使用JavaWeb服务器。JavaWeb是用Java技术来解决相关的web互联网领域的技术总和。Web包括:web服务器和web客户端两部分。Java在客户端的应用现在使用的很少,Java在服务器端的应用非常丰富,比如Servlet,JSP和第三方框架等。SQLite是一个轻量级的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中可能只需要几百K的内存就够了。 它能够支持Windows/Linux/Unix等等主流的操作系统,同时能跟很多程序语言相
15、结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起MySql、PostgreSQL这两款世著名的开源暑假管理系统来讲,它的处理速度比他们都快。它的易使用性可以加快应用程序的开发,并使得小型应用程序能够完全支持复杂的SQL。这一点对于小型设备空间的应用程序来说尤为重要。 SQLite支持事件,不需要配置,不需要安装,也不需要管理员,没有账户的概念,而是根据文件系统确定所有数据库的权限。这会使强制执行存储配额发生困难,强制执行用户许可变得不可能。4 系统分析4.1 可行性分析4.1.1 技术可行性 Java是如今最热门、最先进的的一种面向对象的新型程序设计语言。它是由Sun M
16、ierosystems 公司为开发网络而研制的发明的语言。该语言为我们提供了一种与平台无关、适于分布式系统的开发和运行环境,主要用于Internet网络的编程。其程序可以在不同的平台上运行,而不需要考虑其移植问题。Sun公司正致力于将Java开发推广成一种Internet标准语法。 Java语言是简单的。Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C+中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别的,Java语言不必使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
17、综上,我们可以看出用Java语言来编写该安卓程序技术上是可行的,该软件的功能目标基本可以完成,我们的开发人员技术也相对达标,通过详细的周期计划,该软件可以在一定的期限内完成。4.1.2 经济可行性 该软件是手机端APP,可以安装在多款手机上使用,以实现阅读小说,添加书架,随时随地添加笔记,记下看书时的任意有创意、有意义的想法,通过编辑笔记修改自己曾经撰写的笔记中的错误。或者删除笔记,查看自己的笔记列表。在阅读书籍的同时还可开启或关闭背景音乐。让用户在阅读的同时还可以享受温暖人心的轻音乐等等功能。硬件设备有:只需要一台带有Eclipse软件的计算机,数款手机终端。开发费用,只需付负责开发的程序员
18、工资以及软件完成后的推广费用,保守估计十万左右。但是现在用电子设备阅读图书的人群越来越壮大,我们完全有可能在后期获得更多的收益。而且当该软件推广后,带给企业的影响是无法衡量的。因此在经济上,完全可以实行。4.1.3 社会可行性 掌上书城APP完全适应现代人的需求,并且有自己的功能,有最近书单,可查看最近阅读的图书,有背景音乐可根据自己的喜好播放或停止,还增加了一个易于过关的小游戏,让用户在读书读累的时候玩会小游戏,劳逸结合。 该软件利用计算机网络及现在的安卓手机的火热,实现了足不出户在线阅读各种小说的功能,极大的方便了用户,就其前景和应用的人群广泛来说,它的社会可行性还是不错的。4.2 需求分
19、析说明 4.2.1 项目总体概述 该软件分为前台用户和后台用户,后台用户即管理员,可以向数据库中增删改查图书,前台用户即普通用户,可以阅读管理员添加的图书,且可以更改背景音乐等。 4.2.2 具体需求 后台管理员 点击相应的按钮,对图书进行增删改查,并管理用户。 前台普通用户 进入主页面,点击相应的按钮,跳转相应的页面,进行相应的操作实现笔记在数据库中的增删改查。数据库管理用户注册信息数据管理存储用户注册信息 验证登录信息掌阅书城数据管理图书的增删查以及个人笔记的增删改查用户登录/注册注册注册一个用户,将用户信息存入数据库登录通过验证用户信息进入系统5 系统结构
20、与模型5.1 设计实现的思路 (1)先确定系统要使用的开发工具,本系统使用的是Eclipse,先搭好Eclipse的运行环境。 (2)实现注册登录模块,这样才会有普通用户和管理员的区分,管理员是指定的。 (3)实现笔记方面的模块。让用户更好的阅读图书。5.2 系统结构设计 (1)用户使用软件时,主页面结构如下: 图 4.2-1 前台用户进入页面 (2)用户进入登录、注册页时,结构流程如下:图 4.2-2 前台用户注册登录页 (3)用户进入书城,浏览图书,并添加喜欢的图书到书架 图 4.2-3 前台用户进入书城页 (4)用户查看书架中的图书,点击进入详细图书内容页 图 4.2-4 前台用户详细图
21、书内容页 (5)用户进入个人中心,查看笔记 图 4.2-5 前台用户个人中心页 (6)用户进入侧滑菜单页,游戏中心玩游戏。图 4.2-6 用户进入游戏中心页6 数据库设计6.1 E-R图E-R如图所示:图 5.1-1 E-R图6.2 数据库逻辑设计(1) E-R图转换为关系模型 关系的码用下划线标出。图书(图书编号,图书名称,图书内容,作者名称,用户名称);用户(用户编号,用户名称,用户密码);笔记(笔记编号,笔记题目,笔记内容,笔记日期,图书名称); 6.3 数据库物理设计 图书信息表 books,用于保存用户添加的图书信息。中文含义类型约束字段名编号Number(5)主键bid图书名称Va
22、rchar(20)Not nullbname图书内容Varchar(100)Not nullbcontent作者名称Varchar(20)Not nullbauthor用户名称Varchar(20)Not nulluname中文含义类型约束字段名编号Number(5)主键jid图书名称Varchar(20)Not nullbname笔记题目Varchar(20)Not nulljname笔记内容Varchar(20)Not nulljcontent笔记日期dateNot nulljtime用户名称Varchar(20)Not nulluname 笔记表 biji,用于保存用户添加的笔记。 用户
23、信息表 user,用于保存用户信息。中文含义类型约束字段名用户编号Number(5)主键uid用户姓名Varchar(10)唯一uname密码Varchar(20)Not nullupass7 总体设计7.1 总体设计说明 该软件使用Java基础语言,使用Activity和layout布局相结合,编写安卓软件。如图所示: (1)Activity类文件如图:图 6.1-1 Activity类 (2)Layout布局的实现,如图:图 6.1-2 Layout布局7.2 代码实现7.2.1 SQLite的代码实现 /db_books是所连的数据库的名称 private static final St
24、ring DBNAME = db_books; /构造方法public SQLiteDBUtil(Context context, String name, CursorFactory factory,int version) super(context, name, factory, version); /声明只带一个参数的构造方法public SQLiteDBUtil(Context context) super(context, DBNAME, null, 1);Overridepublic void onCreate(SQLiteDatabase db) System.out.prin
25、tln(创建表);String userTablesql = create table users (userid integer primary key autoincrement,uname varchar(20) not null,upass varchar(20) not null);db.execSQL(userTablesql);System.out.println(用户表创建完成);String bijiTablesql = create table biji(jid integer primary key autoincrement,bid varchar(20) not nu
26、ll,uname varchar(20) not null,jname varchar(20) not null,jneirong varchar(20),jtime date);db.execSQL(bijiTablesql);System.out.println(笔记表创建完成);String booksTablesql = create table books(bid integer primary key autoincrement,bname varchar(20) not null,bcontent varchar(20) not null,bauthor varchar(20)
27、not null,uname varchar(20) not null);db.execSQL(booksTablesql);System.out.println(图书表创建完成);/该方法用于数据库更新时使用,此处用不到,不改变即可Overridepublic void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) 此时数据库已经搭建完毕。我们可以先从底层界面写起。在此为了方便查阅,底层界面和Activity类一同贴出。7.2.2首启动欢迎页 该页面主要作用是美观,在此界面停留一定的时间后自动跳到主页面。如下所示:(1)Activity
28、代码如下:import java.util.Timer;import java.util.TimerTask;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Window;public class FirstActivity extends Activity /该oncreate方法用于初始化Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(
29、savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);/ 去除标题 /绑定底层的布局文件this.setContentView(R.layout.layout_first); /从该页面跳转到下一个页面当中去final Intent intent = new Intent(FirstActivity.this, MainActivity.class); /实例化一个Timer对象Timer timer = new Timer();TimerTask task = new TimerTask() Overridepub
30、lic void run() / 开始跳转,并且跳转后关闭原界面startActivity(intent);finish(); /跳转前在此页面停留3秒timer.schedule(task, 1000 * 3);底层页面布局如下,在此简单的介绍一下,其他页面布局不再详细介绍: LinearLayout是流式布局,layout_width和layut_height有四种形式,match_parent和fill_parent用法相同,和上一层嵌套布局等高等宽,而wrap_content是根据所包含的内容的大小自适应,还有一种就是用户自定义一定数值的宽和高。Orientation是它的摆放模式,有
31、横向和纵向两种。TextView是文本组件,gravity是组件的居中方式。 到此,首启动页已经完成。7.2.3 主页面 主页面显示的是书架。代码如下: /首先添加属性DrawerLayout mDrawerLayout;Button btnshucheng;ListView llistview;TextView txt_bname, txt_uname;ArrayListHashMap list;Overrideprotected void onCreate(Bundle savedlnstanceState) super.onCreate(savedlnstanceState);reque
32、stWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.layout_main);/ 注册组件this.btnshucheng = (Button) findViewById(R.id.btnshucheng);this.txt_bname = (TextView) findViewById(R.id.txt_bname);this.txt_uname = (TextView) findViewById(R.id.txt_uname);this.llistview = (ListView) findViewById(R.
33、id.listview); /实例化数据库,并打开连接SQLiteDBUtil dbutil = new SQLiteDBUtil(MainActivity.this);SQLiteDatabase db = dbutil.getReadableDatabase();list = this.getData();/ 定义一个适配器,用于在页面中显示数据SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.lilst1,new String bname , new int R.id.txt_bname );/ 绑定适配器thi
34、s.llistview.setAdapter(adapter); /绑定监听事件this.llistview.setOnItemClickListener(new ListListener();initView();initEvents();/ 绑定事件源btnshucheng.setOnClickListener(new BtnListener();/ 定义一个内部类,监听listview菜单class ListListener implements OnItemClickListener Overridepublic void onItemClick(AdapterView arg0, V
35、iew arg1, int i, long arg3) HashMap map = list.get(i);/ 跳转到显示书籍页面,并传值String bid = map.get(bid).toString();String bname = map.get(bname).toString();String bcontent = map.get(bcontent).toString();String bauthor = map.get(bauthor).toString();String uname = map.get(uname).toString();Intent intent = new
36、Intent(MainActivity.this,BooksneirongActivity.class);intent.putExtra(bid, bid);intent.putExtra(bname, bname);intent.putExtra(bcontent, bcontent);intent.putExtra(bauthor, bauthor);intent.putExtra(uname, uname);startActivity(intent); finish();public void OpenLeftMenu(View view) mDrawerLayout.openDrawe
37、r(Gravity.LEFT);mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED,Gravity.LEFT);private void initEvents() mDrawerLayout.setDrawerListener(new DrawerListener() Overridepublic void onDrawerClosed(View drawerView) / TODO Auto-generated method stubmDrawerLayout.setDrawerLockMode(DrawerLayo
38、ut.LOCK_MODE_LOCKED_CLOSED, Gravity.LEFT);Overridepublic void onDrawerOpened(View drawerView) / TODO Auto-generated method stub /通过动画效果实现侧滑Overridepublic void onDrawerSlide(View drawerView, float slideOffset) / TODO Auto-generated method stubView mContent = mDrawerLayout.getChildAt(0);View mMenu = d
39、rawerView;float scale = 1 - slideOffset;float rightScale = 0.8f + scale * 0.2f;if (drawerView.getTag().equals(Left) /ViewHelper.setTranslationX(mContent,mMenu.getMeasuredWidth() * slideOffset);ViewHelper.setPivotX(mContent, mContent.getMeasuredWidth();ViewHelper.setPivotY(mContent,mContent.getMeasur
40、edHeight() / 2);ViewHelper.setAlpha(mMenu, 0.6f + 0.4f * (1 - scale);mContent.invalidate();ViewHelper.setScaleX(mContent, rightScale);ViewHelper.setScaleY(mContent, rightScale); else float leftScale = 1 - 0.3f * scale;ViewHelper.setScaleX(mMenu, leftScale);ViewHelper.setScaleY(mMenu, leftScale);View
41、Helper.setAlpha(mMenu, 0.6f + 0.4f * (1 - scale);ViewHelper.setTranslationX(mContent,mMenu.getMeasuredWidth() * (1 - scale);ViewHelper.setPivotX(mContent, 0);ViewHelper.setPivotY(mContent,mContent.getMeasuredHeight() / 2);mContent.invalidate();ViewHelper.setScaleX(mContent, rightScale);ViewHelper.se
42、tScaleY(mContent, rightScale);Overridepublic void onDrawerStateChanged(int newState) / TODO Auto-generated method stub);private void initView() mDrawerLayout = (DrawerLayout) findViewById(R.id.id_drawerLayout);/ mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED,/ Gravity.LEFT);cla
43、ss BtnListener implements OnClickListener Overridepublic void onClick(View v) if (v.getId() = R.id.btnshucheng) / 向书城跳转Intent intent = new Intent(MainActivity.this,ThirdActivity.class);/ intent.putExtra(username1, uname1);startActivity(intent);finish();/该方法用于从数据库中读取数据并保存到集合中,便于显示private ArrayListHas
44、hMap getData() ArrayListHashMap list = new ArrayListHashMap();SQLiteDBUtil dbutil1 = new SQLiteDBUtil(MainActivity.this);SQLiteDatabase db2 = dbutil1.getReadableDatabase();String sql = select * from books ;Cursor cursor = db2.rawQuery(sql, new String );while (cursor.moveToNext() HashMap map = new Ha
45、shMap();map.put(bid, cursor.getInt(0);map.put(bname, cursor.getString(1);map.put(bcontent, cursor.getString(2);map.put(bauthor, cursor.getString(3);map.put(uname, cursor.getString(4);list.add(map);return list;7.2.4 其他页面其他的布局以及代码不再详细介绍,需要注意的是:I 侧滑菜单继承的是Fragment而不是Activity,代码如下:public class MenuLeftFr
46、agment extends Fragment implements View.OnClickListener 继承Fragment的同时,实现了一个接口,用于监听点击事件。II 在使用侧滑菜单时需要向lib库文件夹下导入一个三方jar包,如图所示:图 6.2-1 引进侧滑需要的Jar包III 书城切换页继承的是ActivityGroup而不是Activity,代码如下:public class ThirdActivity extends ActivityGroup 因为ActivityGroup在高版本的安卓开发工具中已逐渐被弃用,所以它会有删除线。但它仍可使用。8测试随着市场对软件质量的不断提高,软件测试不断受到重视,但是由于总体上,国内软件项目不规范,导致重视编码和轻视测试的现象,对于软件测试的重要性、测试方法和流程等还存在很多错误的认识。作为软件质量保证和可靠性的关键技术手段,软件测试正日益受到重视。软件测试的任务就是发现软件系统的缺陷,保证软件的优良品质。但在软件中是不可能没有缺陷的。即便软件开发人员,包括测试人员尽了努力,也是无法完全发现和消除缺陷。一般符合下面5个规则的才能叫做软件缺陷。(1) 软件未达到产品说明书标明的功能;(2) 软件出现了产品说明书指明不会出现的错误;(3) 软件功能超出产
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学前教育的注意力培养考核试卷
- 文化产业合同管理与招投标实践
- 旅游者健康状况声明
- 商业综合体水电施工合同
- 瑜伽行业交流活动教练招聘合同
- 政府公务飞机租赁合同范本
- 办公楼网络布线工程合同
- 建筑设计行业员工守则
- 建筑工程环境评价单位劳动合同
- 旅游区二手房购房合同协议书
- 《医疗机构工作人员廉洁从业九项准则》制定主题学习课件
- 《大学美育》 课件 22.模块五 第二十二章 光影交织的摄影艺术之美
- 北师大版小学数学六年级上册《分数混合运算(二)》示范课教学设 计
- 2024秋季新人教七上全册重点短语句型小纸条【空白版】
- 概率论与数理统计试卷及答案4套
- 新《劳动合同法》知识学习考试题库200题(含答案)
- 2024-2025一年级上册科学教科版1.5 《植物的变化》课件
- 2024新教科版一年级科学上册第一单元《周围的植物》全部教案
- 2024云南丽江玉龙国资本投资运营限责任公司招聘笔试高频考题难、易错点模拟试题(共500题)附带答案详解
- 2024年新青岛版(六三制)六年级上册科学全册知识点(背诵专用)
- 影视制作项目流程与执行预案
评论
0/150
提交评论