《Android操作系统及应用》期末作业总结报告.docx
- 文档编号:20968506
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:16
- 大小:152.98KB
《Android操作系统及应用》期末作业总结报告.docx
《《Android操作系统及应用》期末作业总结报告.docx》由会员分享,可在线阅读,更多相关《《Android操作系统及应用》期末作业总结报告.docx(16页珍藏版)》请在冰豆网上搜索。
《Android操作系统及应用》期末作业总结报告
南阳理工学院
计算机与信息工程学院
《Android操作系统及应用》大作业总结报告
题目:
便签的设计与开发
姓名:
邹长江
学号:
1406915090
班级:
14计科(信息)
目录
一作品概述1
二分析1
2.1功能分析1
2.2、数据分析1
三设计2
3.1、模块设计2
3.2、UI设计3
3.3、数据库设计3
四系统实现3
4.1Android工程程序结构3
4.2代码实现6
五系统测试10
六设计体会11
七参考文献11
一作品概述
现在的生活节奏正在变快,人们除了工作和学习之外,还要花费不少的时间在往返的路上,这一现状自然而然的激发了手机移动终端的崛起。
各种各样方便、精美的手机软件已经走进我们的生活。
手机与人们的生活紧密的结合起来,可以说现在人们已经离不开手机了,手机软件会成为手机多媒体时代最受欢迎并且是最有价值的应用。
Android手机应用程序开发是一项复杂的工程。
本文研究了Android的系统架构,并在AndroidStudio开发环境下,使用JAVA语言,设计了一个个性化便签软件,该软件可以通过简单的手势添加便签。
二分析
为了跟上现代日益加快的生活节奏,电子工艺技术也在飞速的发展,就目前而言的手机功能已经无法满足人们越来越多的需求了,为了满足需求市场上出现了各种不同的操作系统,Windows mobile、塞班和谷歌的Android操作系统是目前市场上最主要的三个手机操作系统。
其中Android因为有开发源代码的优势使其成为有最大的发展前景的系统。
不同手机平台的手机,所支持的便签软件也是各不相同,目前市场上最流行的手机平台是google的Android手机平台,本课题致力于开发出一款基于Android手机平台的个性化便签,来满足用户的使用需求。
2.1功能分析
本软件属于用户常用的便签。
可以方便用户平时对便签的操作。
本系统应达到以下目标:
(1)软件采用人机交互的方式,界面美观大方,操作灵活、方便。
(2)能够对便签进行有效的管理。
(3)系统应该能够最大程度地实现易维护性和易操作性。
具体功能有:
(1)添加:
添加方便,具有有效的手势操作;
(2)编辑:
对便签进行随时修改;
(3)删除:
对旧的便签进行删除;
(4)查看:
可通过手势对一览表进行上下滑动浏览。
2.2、数据分析
SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。
Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。
在Android系统,为我们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库版本进行管理来实现前面提出的需求。
为了实现对数据库版本进行管理,SQLiteOpenHelper类提供了两个重要的方法,分别是onCreate(SQLiteDatabasedb)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion),前者用于初次使用软件时生成数据库表,后者用于升级软件时更新数据库表结构。
当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取用于操作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用,在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据。
onUpgrade()方法在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号,而数据库的版本是由程序员控制的。
三设计
3.1、模块设计
整个系统大体可以分成三大模块,一是主界面,主要按照时间显示便签;二是新建界面,想要新建便签时,可以点击便签新建符新建项,会弹出该界面;三是编辑界面,点击已有的便签即可进入编辑状态。
总的系统组织结构图如下图所示:
3.2、UI设计
主界面设计:
新建界面设计:
编辑界面设计:
3.3、数据库设计
便签软件只有一个简单的数据表,id为主键,对数据库的更改都在这个表中进行,具体如下图所示:
四系统实现
4.1Android工程程序结构
Android工程的基本结构目录包括:
编写源代码的src、用来存放程序界面的布局配置(.xml)文件和图片资源的资源文件res,代码测试文件test,jar包存放文件ExternalLibraries。
Android资源的类型和布局图如下:
图4-1资源类型和布局图
1、便签代码结构如下图4-2所示。
其中src文件夹包含着整个便签实现的源代码,res文件夹下面是便签软件实现的一个资源,像是界面的布局和界面上需要用到的一些图片,标志等。
图4.2代码结构图
2、便签.Java文件如下图所示。
其中包cn.feixianblue.stickynote下的是便签个界面实现的代码,其中MainActivity.java文件中的是主界面的代码,EditeActivity.java文件中的是创建便签后的界面代码;UpdateActivity.java文件是文本编辑的界面代码。
3、便签软件需要的字符串等配置文件,在values的strings.xml文件中是整个便签软件界面中需要用到的所有字符串,colors.xml文件中是整个便签软件界面中需要到的颜色,styles.xml文件中是整个便签软件界面中页面的样式。
4、便签的图像资源,drawable-hdpi文件下存放的是便签软件中需要用到的一些图片标识。
5、AndroidManifest.xml文件
AndroidMainfest.xml是四大组件的驱动配置文件,有了它的存在,Android程序的四大组件才能够顺利正常的跳转。
任意一个的Android系统的程序启动都要靠AndroidManifest.xml文件来启动程序,每次新建好一个的工程,在其目录都会自动生成一个AndroidManifest.xml文件,这个配置文件为程序能够正常运行提供了保证,是整个工程的核心部分,它里面包括了AndroidSDK的版本,程序运行的默认Activity,当程序中的任何一个组件触发事件后,系统都会自动的在AndroidManifest.xml文件中找出正确的标识从而作出相应的操作。
每一个AndroidManifest.Xml文件的格式都应该是这样的:
4.2代码实现
1、实现主界面功能的代码:
publicclassMainActivityextendsAppCompatActivity{
privateDBManagerdbManager;
privateListViewlistView;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbartoolbar=(Toolbar)findViewById(R.id.toolBar);
setSupportActionBar(toolbar);
listView=(ListView)findViewById(R.id.list_item);
//初始化DBManager
dbManager=newDBManager(MainActivity.this);
listView.setOnItemClickListener(newAdapterView.OnItemClickListener(){
@SuppressWarnings("unchecked")
@Override
publicvoidonItemClick(AdapterView
>parent,Viewview,intposition,longid){
HashMap
StringnoteTitle=map.get("title");
Intentintent=newIntent(MainActivity.this,UpdateActivity.class);
//传数据(将数据传到intent中的bundle类中)
intent.putExtra("title",noteTitle);
startActivity(intent);
finish();//解决在MainActivity页面下返回键失效问题
}
});
}
@Override
protectedvoidonStart(){
super.onStart();
List
ArrayList
for(Notenote:
notes){
HashMap
map.put("title",note.getTitle());
map.put("content",note.getContent());
map.put("info",note.getInfo());
list.add(map);
}
SimpleAdapteradapter=newSimpleAdapter(this,list,android.R.layout.simple_list_item_2,
newString[]{"title","content"},newint[]{android.R.id.text1,android.R.id.text2});
listView.setAdapter(adapter);
}
publicvoidonAddClick(Viewview){
dbManager.closeDB();
startActivity(newIntent(this,EditActivity.class));
finish();
}
@Override
protectedvoidonDestroy(){
super.onDestroy();
//应用的最后一个Activity关闭时应释放DB
dbManager.closeDB();
}
}
2、实现便签添加页面代码:
publicclassEditActivityextendsAppCompatActivity{
privateDBManagerdbManager;
privateEditTexteditTitle;
privateEditTexteditContent;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit);
Toolbartoolbar=(Toolbar)findViewById(R.id.toolBar);
setSupportActionBar(toolbar);
editTitle=(EditText)findViewById(R.id.edit_title);
editContent=(EditText)findViewById(R.id.edit_content);
dbManager=newDBManager(this);
}
publicvoidonSaveClick(Viewview){
Notenote=newNote();
if(dbManager.queryByTitle(editTitle.getText().toString())==null){
note.setTitle(editTitle.getText().toString());
note.setContent(editContent.getText().toString());
dbManager.add(note);
dbManager.closeDB();
startActivity(newIntent(this,MainActivity.class));
finish();
}else{
Toast.makeText(EditActivity.this,"保存失败,Title已存在!
",Toast.LENGTH_LONG).show();
}
}
}
3、实现页面编辑代码:
publicclassUpdateActivityextendsAppCompatActivity{
privateDBManagerdbManager;
privateEditTexteditTitle;
privateEditTexteditContent;
privateNotenote;
privateStringownTitle;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_update);
Toolbartoolbar=(Toolbar)findViewById(R.id.toolBar);
setSupportActionBar(toolbar);
editTitle=(EditText)findViewById(R.id.edit_title);
editContent=(EditText)findViewById(R.id.edit_content);
dbManager=newDBManager(this);
Intentintent=getIntent();
//获取数据(从intent对象中获取bundle中的数据)
Bundlebundle=intent.getExtras();
//获取数据(从bundle中依据id获取数据值)
ownTitle=bundle.getString("title");
note=dbManager.queryByTitle(ownTitle);
if(note==null){
Log.d("uuuuuuuuuuuuuuuuu","note==null");
}
Log.d("idididididididididid","note_id="+note.getId());
editTitle.setText(note.getTitle());
editContent.setText(note.getContent());
}
publicvoidonUpdateClick(Viewview){
Noten=dbManager.queryByTitle(editTitle.getText().toString());
if(n==null||n.getTitle().equals(ownTitle)){
note.setTitle(editTitle.getText().toString());
note.setContent(editContent.getText().toString());
dbManager.update(note);
dbManager.closeDB();
startActivity(newIntent(this,MainActivity.class));
finish();
}else{
Toast.makeText(UpdateActivity.this,"保存失败,Title已存在!
",Toast.LENGTH_LONG).show();
}
}
publicvoidonDeleteClick(Viewview){
dbManager.delete(note.getId());
dbManager.closeDB();
startActivity(newIntent(this,MainActivity.class));
finish();
}
}
五系统测试
1、用户在启动便签软件时进去便签主界面,最上面是便签名称“便签”,右下角的红色“+”符号点是添加新的便签按钮,白色区域内排列的是已建的便签,具体如下图所示:
2、进入添加界面后,红色底线是标题栏,灰色底线是便签内容,编辑完成后可以点击灰色保存键,若存在相同的标题,则会出现相关提示,具体如下图所示:
3、想对已有的便签进行修改或删除时,进入编辑页面,具体如图所示:
六设计体会
本文在Android平台上开发便签软件上做了大量的工作,由于个人的经验和水平有限,因此功能设计得比较简单,只满足了便签基本的应用功能。
随着电子工艺技术日新月异的发展,便签的功能性也在不断的向前延伸,其应用也将越来越广,手机,平板,电脑等设备都能够用得上,且会成为必需品,这将激励着我们不停的摸索新的需求,发展的技术促使系统更加完善,更加人性化。
我们要秉着没有最好只有更好的原则在Android软件的舞台上尽情发挥。
致力于开发简单快捷方便好用的软件,只有功能强大、使用方便的软件才能牢牢的抓住使用者的心。
七参考文献
[1]郑健,贺超著.Android和Chrome的发展与未来[J].移动通信,2010.
[2]张正政,林耀荣著,基于Android系统的影音播放器开发[J].现代电子技术,2011.
[3]董士海.人机交互的进展及面临的挑战[J].计算机辅助设计与图形学学报,2004.
[4]付永刚,张凤军,戴国忠.双手交互界面研究进展[J].计算机研究与发展,2005.
[5]E2Ecloud工作室.深入浅出Android[M].北京:
人民邮电出版社,2009.
[6]郭志宏.Android应用开发详解[M].北京:
电子工业出版社,2010.
[7]R.Rogers.Android应用开发[M].李耀亮,译.北京:
人民邮电出版社,2010.
[8]马越.Android的架构与应用[D].中国地质大学,2008.
[9]李凯.Android操作系统分析与移植[D].华南理工大学,2011.
[10]郭宏志.Android应用开发详解[M].北京:
电子工业出版社,2010.
教师评语:
成绩:
教师签字:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android操作系统及应用 Android 操作系统 应用 期末 作业 总结报告