安卓记事本开发设计报告Word下载.docx
- 文档编号:22225493
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:26
- 大小:78.84KB
安卓记事本开发设计报告Word下载.docx
《安卓记事本开发设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《安卓记事本开发设计报告Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
如今叱咤互联网的Google已经走过10年度历史。
从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。
1.2可行性分析
(1)技术可行性—-—-—本项目仅需要一台装有Eclipse及配置好Android开发环境的计算机即可,对计算机本身有一定的要求,它可以使用windowsxp及其以上版本,macos,linux等操作系统。
(2)经济可行性-—-——由于本软件开发只有一个单个人,一台电脑就行,基本不需要太大的成本。
在经济上完全可行。
(3)操作可行性--———界面设计时充分考虑用户的习惯以及手机方面的局限性,程序必须要很简单;
本程序只涉及到开发环境配置,安卓组件的熟悉,以及安卓平台上的数据存储.并没有太大的难度,所以,该项目完全有可操作性.
2开发环境的安装和配置
2.1开发包及其工具的介绍
Android以java作为开发语言,jdk是进行java开发时必需的开发包,Eclipse是一款非常优秀的开源IDE,在大量插件的配合下,完全可以满足从企业级java应用到手机终端java游戏的开发。
Google官方也提供了基于Eclipse的Android开发插件ADT,所以本软件开发选择Eclipse作为开发IDE。
2.2Android开发平台搭建
2。
1安装包下载
(1)java
JDK下载
进入
http:
//
JDK只下载JDK,无需下载jre。
(2)Eclipse下载
进入http:
//www。
eclipse.org/downloads我们选择第一个,即EclipseIDEforjavaEEDevelopers。
(3)Android
SDK下载
说明:
Android
SDK两种下载版本,一种是包含具体版本的SDK的,一种是只有升级工具,而不包含具体的SDK版本。
完全版下载
(Android
sdk
2.1
r01).
2.2.2软件安装
(1)安装JDK
安装完成即可。
(2)解压Eclipse
Eclipse无需安装,解压后,直接打开就行.
(3)解压Android
SDK
这个也无需安装,解压后供后面使。
(4)配置Eclipse
打开Eclipse,,在菜单栏上选择
help-〉Install
New
SoftWare点击
Add按钮,出现如下界面,输入网址:
https:
//dl—ssl。
(如果出错,请将https改成http)
名称:
(这里可以自定义),点击OK,
点击
Next按钮
,点击Next按钮,出现如下界面:
选择
I
accept
the
terms
of
license
agreements,点击Next,进入安装插件界面安装完成后,
点击Yes按钮,重启Eclips。
(5)
配置Android
SDK
点击菜单window—〉preferences
选择你的Android
SDK解压后的目录,选错了就会报错,这个是升级工具,目前还没有一个版本的SDK
升级SDK版本,选择菜单
window-〉Android
and
avd
manager
选择update
all按钮,出现如下界面选择左边的某一项,点击accept表示安装,点击reject表示不安装,我这里只选了SDK
1
和samples
for
api
7
,,自己可以任意自定义,确定后,选择install按钮,进入安装界面:
安装完成。
(6)新建AVD(Android
vitural
device)
和上面一样,进入Android
manager,选中VituralDevices
在点击New按钮后,
名称可以随便取,target选择你需要的SDK版本,SD卡大小自定义,点击
Create
AVD,显示创建AVD完毕.
(7)
新建Android项目
选择菜单file-〉new->
other
进入如下界面:
选择新建Android
Project项目,点击Next按钮,进入如下界面名称自定义,应用程序名自定义,报名必须包含一个点以上,min
SDK
version里面必须输入整数
(8)配置运行
右键项目—>
Run
as
—>
Configuration该界面,点击Browse
按钮,选择你要运行的项目选择Target切换到以下界面该界面选择运行的AVD,将AVD前面的方框设置为选择状态.
(9)测试项目运行右键项目名称-〉run
—〉Android
Application
即可启动运行该Android程序。
3软件功能规划
3。
1软件功能
能够提示用户是否有已写记事本,能够进行记事本的标题填写和内容填写,确定后保存。
2界面设计
进入程序提示“您还没有开始写日记呢!
点击下边的Menu按钮开始写日记吧!
”,点击menu菜单后进入标题和内容的填写界面。
4程序设计
4。
1记事本组件的设计
本项目涉及到以下组件:
TextView:
“记事本"
,“新建记事”,“编辑记事"
等标题。
EditView:
“记事本的标题"
,“内容"
等.
Button:
“确定”按钮。
Menu:
“添加新记事”,“编译内容”,“删除当前记事"
等。
2记事本逻辑设计
(1)添加新记事
如果当前没有记事,点击“menu”后只有一个菜单选项“添加新记事”,写完记事之后,点击“确定”进行保存.
(2)编辑内容
选中要编辑的那一个记事,然后点击“menu”菜单,会出现三个选项“新建记事”,“编辑内容”,“删除当前记事”,点击“编辑内容”对被选中的记事进行编辑,然后点击“确定"
加以保存.
(3)删除记事
点击上下键,选中要删除的记事,然后点击“menu”菜单,然后点击“删除当前记事”,对选中的记事加以删除。
4.3记事本存储实现
Android中一共提供了5种数据存储方式,但是由于存储的这些数据都是其应用程序私有的,所以如果需要在其他应用程序中使用这些数据,就要使用Android提供的ContentProviders.
ContentProviders:
Android提供的一个特殊的存储数据的类型,它提供了一套标准的接口来获取,操作数据.
SharedPreference:
用来存储“key—valuepaires”格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型。
Files:
它通过FileInputStream和FileOutputStream对文件进行操作,但是在Android中,文件是一个应用程序私有的,一个应用程序无法读写其他应用程序的文件。
SQLite:
Android提供的一个标准的数据库,支持SQL语句。
Network:
通过网络来存储和获得数据.
3.1数据存储之SharedPreferences
通过getpreferences()方法来获得Preference对象,通过SharePreferences。
Editoreditor=uiState。
edit;
取得编辑对象,然后通过editor。
put……()方法添加数据,最后通过commit()方法来保存数据。
3.2数据存储之Files
我们可以通过自定义的save()方法来保存数据,同时也可以通过load()方法来获取文件中的数据。
booleansave()
{
Propertiesproperties=newProperties();
/*将数据打包成Properties*/
properties.put(”bmusic”,String。
valueOf(mbMusic));
try
{
FileOutputStreamstream=this。
openFileOutput("
music.cfg”,Context.MODE_WORLD_WRITEABLE);
/*将打包好的数据写入文件中*/
properties。
store(stream,"
"
);
}
catch(FileNotFoundExceptione)
returnfalse;
catch(IOExceptione)
{
returnfalse;
returntrue;
}
/*装载、读取数据*/
voidload()
{
/*构建Properties对对象*/
/*开发文件*/
FileInputStreamstream=this.openFileInput(”music。
cfg”);
/*读取文件内容*/
load(stream);
return;
}
/*取得数据*/
mbMusic=Boolean.valueOf(properties.get("
bmusic"
).toString());
3.3数据存储之Network
通过网络来获取和保存数据资源,将数据存储到网络上的方法很多,比如将要保存的数据以文件的方式上传到服务器,发送邮件等。
下面我们看下如何实现读取网络文件
StringmyString=null;
/*定义我们要访问的地址url*/
URLuri=newURL(”http:
//192.168.1。
110:
8080/Android.txt"
/*打开这个url连接*/
URLConnectionucon=uri.openConnection();
/*从上面的链接中取得InputStream*/
InputStreamis=ucon.getInputStream();
BufferedInputStreambis=newBufferedInputStream(is);
ByteArrayBufferbaf=newByteArrayBuffer(100);
intcurrent=0;
/*一直读到文件结束*/
while((current=bis.read())!
=-1)
{
baf.append((byte)current);
}
myString=newString(baf。
toByteArray());
catch(Exceptione)
myString=e。
getMessage();
另外由于在程序中访问了外部网络,我们需要在AndroidManifest.xml文件中给予权限,代码如下:
<
uses—permissiionAndroid:
name=”Android.permission.INTERNET"
/〉
4.3。
4数据存储之SQLite
这个方法在数据保存中非常常用.只是它只会被一个程序读取数据,不能在不同程序间共享数据。
/*创建和打开数据库*/
mSQLiteDatabase=this。
openOrCreateDatabase(DATABASE_NAME,MODE_PRIVATE,null);
/*创建表*/
mSQLiteDatabase。
execSQL(CREATE_TABLE);
/*删除数据库*/
publicvoidDeleteDataBase()
this.deleteDatabase(DATABASE_NAME);
this。
finish();
}
/*删除一个表*/
publicvoidDeleteTable()
mSQLiteDatabase.execSQL("
DROPTABLE”+TABLE_NAME);
/*更新一条数据*/
publicvoidUpData()
ContentValuescv=newContentValues();
cv。
put(TABLE_NUM,miCount);
cv.put(TABLE_DATA,”修改后的数据”+miCount);
/*更新数据*/
mSQLiteDatabase.update(TABLE_NAME,cv,TABLE_NUM+"
="
+Integer。
toString(miCount-1),null);
UpdataAdapter();
/*向表中添加一条数据*/
publicvoidAddData()
ContentValuescv=newContentValues();
cv.put(TABLE_NUM,miCount);
cv.put(TABLE_DATA,"
测试数据库数据”+miCount);
/*插入数据*/
mSQLiteDatabase。
insert(TABLE_NAME,null,cv);
miCount++;
/*从表中删除指定的一条数据*/
publicvoidDeleteData()
/*删除数据*/
execSQL(”DELETEFROM”+TABLE_NAME+”WHERE_id="
toString(miCount));
miCount——;
if(miCount〈0)
miCount=0;
UpdataAdapter();
/*更行试图显示*/
publicvoidUpdataAdapter()
//获取数据库Phones的Cursor
Cursorcur=mSQLiteDatabase。
query(TABLE_NAME,newString[]{TABLE_ID,TABLE_NUM,TABLE_DATA},null,null,null,null,null);
miCount=cur.getCount();
if(cur!
=null&&cur。
getCount()〉=0)
//ListAdapter是ListView和后台数据的桥梁
ListAdapteradapter=newSimpleCursorAdapter(this,
//定义List中每一行的显示模板
//表示每一行包含两个数据项
Android.R。
layout。
simple_list_item_2,
//数据库的Cursor对象
cur,
//从数据库的TABLE_NUM和TABLE_DATA两列中取数据
newString[]{TABLE_NUM,TABLE_DATA},
//与NAME和NUMBER对应的Views
newint[]{Android.R.id。
text1,Android。
R。
id。
text2});
/*将adapter添加到m_ListView中*/
m_ListView。
setAdapter(adapter);
5数据存储之ContentProviders
ContentProviders:
Android提供的一个特殊的存储数据的类型,它提供了一套标准的接口来获取,操作数据.
查询数据:
可以使用ContentProvider。
query()或者Activity.managedQuery()方法。
修改数据:
通过ContentResolver.update()方法可以用来修改数据。
添加数据:
通过ContentResolver.insert()方法来增加一条数据.
删除数据:
通过ContentResolver.delete()方法来删除一条记录。
5程序开发
5。
1主activity的设计
当选择“新建记事本”,“编辑内容”,“删除当前记事”等菜单选项时对应的操作。
publicbooleanonOptionsItemSelected(MenuItemitem){
switch(item.getItemId()){
//插入一条数据
caseMENU_ITEM_INSERT:
Intentintent0=newIntent(this,ActivityDiaryEditor。
class);
intent0。
setAction(ActivityDiaryEditor。
INSERT_DIARY_ACTION);
setData(getIntent().getData());
startActivity(intent0);
returntrue;
//编辑当前数据内容
caseMENU_ITEM_EDIT:
Intentintent=newIntent(this,ActivityDiaryEditor.class);
intent.setData(item。
getIntent().getData());
intent。
setAction(ActivityDiaryEditor.EDIT_DIARY_ACTION);
startActivity(intent);
//删除当前数据
caseMENU_ITEM_DELETE:
Uriuri=ContentUris。
withAppendedId(getIntent()。
getData(),
getListView()。
getSelectedItemId());
getContentResolver().delete(uri,null,null);
renderListView();
returnsuper。
onOptionsItemSelected(item);
2编辑内容
protectedvoidonCreate(BundlesavedInstanceState){
super。
onCreate(savedInstanceState);
//
setTheme(Android。
style。
Theme_Black);
finalIntentintent=getIntent();
finalStringaction=intent。
getAction();
setContentView(R。
layout.diary_edit);
mTitleText=(EditText)findViewById(R。
id.title);
mBodyText=(EditText)findViewById(R。
body);
//确定按钮
confirmButton=(Button)findViewById(R.id。
confirm);
if(EDIT_DIARY_ACTION。
equals(action)){//编辑记事本
mState=STATE_EDIT;
mUri=intent。
get
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 记事本 开发 设计 报告