ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:78.84KB ,
资源ID:9089316      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9089316.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(安卓记事本开发设计报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

安卓记事本开发设计报告.docx

1、安卓记事本开发设计报告滨江学院移动通信程序设计课程设计题 目 Android记事本 院 系 计算机系 专 业 计科3 学生姓名 窦同庆 学 号 * 二一四年五月二十九日Android记事本窦同庆南京信息工程大学计算机系,南京 210044摘要:随着3G技术的成熟和智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一。在Google和Android手机联盟的共同推动下,Android在众多移动应用开发平台中脱颖而出。关键词:android 记事本 eclipse1 概要1。1 Android背景Android是基于Linux开放性内核的操作系统,是Google公司在2

2、007年11月5日公布的手机操作系统。早期由原名为”Android”的公司开发,谷歌在2005年收购Android。Inc”后,继续进行对Android系统开发运营,它采用了软件堆层(softwarestack,又名软件叠层)的架构,主要分为三部分.底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。开放性:在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使

3、其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。挣脱运营商的束缚:在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈.丰富的硬

4、件选择:这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品.功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。不受任何限制的开发商:Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一.无缝结合的Go

5、ogle应用:如今叱咤互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。1.2 可行性分析(1)技术可行性-本项目仅需要一台装有Eclipse及配置好Android 开发环境的计算机即可,对计算机本身有一定的要求,它可以使用windows xp及其以上版本,mac os,linux等操作系统。(2)经济可行性-由于本软件开发只有一个单个人,一台电脑就行,基本不需要太大的成本。在经济上完全可行。(3)操作可行性-界面设计时充分考虑用户的习惯以

6、及手机方面的局限性,程序必须要很简单;本程序只涉及到开发环境配置,安卓组件的熟悉,以及安卓平台上的数据存储.并没有太大的难度,所以,该项目完全有可操作性.2 开发环境的安装和配置2.1 开发包及其工具的介绍 Android以java作为开发语言,jdk是进行java开发时必需的开发包,Eclipse是一款非常优秀的开源IDE,在大量插件的配合下,完全可以满足从企业级java应用到手机终端java游戏的开发。Google官方也提供了基于Eclipse的Android开发插件ADT,所以本软件开发选择Eclipse作为开发IDE。2.2 Android开发平台搭建2。2。1 安装包下载(1)jav

7、aJDK下载进入http:/JDK只下载JDK,无需下载jre。(2)Eclipse下载进入http:/www。eclipse.org/downloads我们选择第一个,即Eclipse IDE for java EE Developers。(3)AndroidSDK下载说明:AndroidSDK两种下载版本,一种是包含具体版本的SDK的,一种是只有升级工具,而不包含具体的SDK版本。完全版下载(Androidsdk2.1r01).2.2.2 软件安装(1)安装JDK安装完成即可。(2)解压EclipseEclipse无需安装,解压后,直接打开就行.(3)解压AndroidSDK这个也无需安装

8、,解压后供后面使。(4)配置Eclipse 打开Eclipse,在菜单栏上选择help-InstallNewSoftWare点击Add按钮,出现如下界面,输入网址:https:/dlssl。(如果出错,请将https改成http),名称:Android(这里可以自定义),点击OK,点击Next按钮,点击Next按钮,出现如下界面:选择Iacceptthetermsofthelicenseagreements,点击Next,进入安装插件界面安装完成后,点击Yes按钮,重启Eclips。(5)配置AndroidSDK 点击菜单windowpreferences选择你的AndroidSDK解压后的目

9、录,选错了就会报错,这个是升级工具,目前还没有一个版本的SDK升级SDK版本,选择菜单window-Androidsdkandavdmanager选择updateall按钮,出现如下界面选择左边的某一项,点击accept表示安装,点击reject表示不安装,我这里只选了SDK2。1和samplesforapi7,自己可以任意自定义,确定后,选择install按钮,进入安装界面:安装完成。(6)新建AVD(Androidvituraldevice)和上面一样,进入Androidsdkandavdmanager,选中Vitural Devices在点击New按钮后,名称可以随便取,target选择

10、你需要的SDK版本,SD卡大小自定义,点击CreateAVD,显示创建AVD完毕.(7)新建Android项目选择菜单file-new-other进入如下界面:选择新建AndroidProject项目,点击Next按钮,进入如下界面名称自定义,应用程序名自定义,报名必须包含一个点以上,minSDKversion里面必须输入整数(8)配置运行右键项目RunasRunConfiguration该界面,点击Browse按钮,选择你要运行的项目选择Target 切换到以下界面该界面选择运行的AVD,将AVD前面的方框设置为选择状态.(9)测试项目运行右键项目名称-runasAndroidApplica

11、tion即可启动运行该Android程序。3 软件功能规划3。1 软件功能能够提示用户是否有已写记事本,能够进行记事本的标题填写和内容填写,确定后保存。3。2 界面设计进入程序提示“您还没有开始写日记呢!点击下边的Menu按钮开始写日记吧!”,点击menu菜单后进入标题和内容的填写界面。4 程序设计4。1 记事本组件的设计本项目涉及到以下组件:TextView:“记事本,“新建记事”,“编辑记事等标题。EditView:“记事本的标题,“内容等.Button:“确定”按钮。Menu:“添加新记事”,“编译内容”,“删除当前记事等。 4。2 记事本逻辑设计(1)添加新记事如果当前没有记事,点击“

12、menu”后只有一个菜单选项“添加新记事”,写完记事之后,点击“确定”进行保存.(2)编辑内容选中要编辑的那一个记事,然后点击“menu”菜单,会出现三个选项“新建记事”,“编辑内容”,“删除当前记事”,点击“编辑内容”对被选中的记事进行编辑,然后点击“确定加以保存.(3)删除记事点击上下键,选中要删除的记事,然后点击“menu”菜单,然后点击“删除当前记事”,对选中的记事加以删除。4.3 记事本存储实现 Android 中一共提供了5种数据存储方式,但是由于存储的这些数据都是其应用程序私有的,所以如果需要在其他应用程序中使用这些数据,就要使用Android提供的Content Provide

13、rs. Content Providers:Android提供的一个特殊的存储数据的类型,它提供了一套标准的接口来获取,操作数据. Shared Preference:用来存储“keyvalue paires”格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型。 Files:它通过File Input Stream 和 File Output Stream对文件进行操作,但是在Android中,文件是一个应用程序私有的,一个应用程序无法读写其他应用程序的文件。 SQL ite:Android提供的一个标准的数据库,支持SQL语句。 Network:通过网络来存储和获得数据.4。3

14、.1 数据存储之Shared Preferences 通过getpreferences()方法来获得Preference对象,通过SharePreferences。Editor editor=uiState。edit; 取得编辑对象,然后通过editor。put()方法添加数据,最后通过commit()方法来保存数据。4。3.2 数据存储之Files我们可以通过自定义的save()方法来保存数据,同时也可以通过load()方法来获取文件中的数据。 boolean save() Properties properties = new Properties(); /* 将数据打包成Properti

15、es / properties.put(”bmusic”, String。valueOf(mbMusic)); try FileOutputStream stream = this。openFileOutput(music.cfg”, Context.MODE_WORLD_WRITEABLE); / 将打包好的数据写入文件中 */ properties。store(stream, ); catch (FileNotFoundException e) return false; catch (IOException e) return false; return true; /* 装载、读取数据

16、 / void load() / 构建Properties对对象 */ Properties properties = new Properties(); try / 开发文件 / FileInputStream stream = this.openFileInput(”music。cfg”); /* 读取文件内容 / properties。load(stream); catch (FileNotFoundException e) return; catch (IOException e) return; /* 取得数据 / mbMusic = Boolean.valueOf(properti

17、es.get(bmusic).toString(); 4。3.3 数据存储之Network 通过网络来获取和保存数据资源,将数据存储到网络上的方法很多,比如将要保存的数据以文件的方式上传到服务器,发送邮件等。 下面我们看下如何实现读取网络文件 String myString = null; try /* 定义我们要访问的地址url */ URL uri = new URL(”http:/192.168.1。110:8080/Android.txt); /* 打开这个url连接 / URLConnection ucon = uri.openConnection(); /* 从上面的链接中取得In

18、putStream */ InputStream is = ucon.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); ByteArrayBuffer baf = new ByteArrayBuffer(100); int current = 0; / 一直读到文件结束 / while ((current = bis.read() != -1) baf.append((byte) current); myString = new String(baf。toByteArray(); catch (Ex

19、ception e) myString = e。getMessage(); 另外由于在程序中访问了外部网络,我们需要在AndroidManifest.xml文件中给予权限,代码如下: usespermissiion Android:name=”Android.permission.INTERNET/4.3。4 数据存储之SQLite 这个方法在数据保存中非常常用.只是它只会被一个程序读取数据,不能在不同程序间共享数据。 /*创建和打开数据库*/mSQLiteDatabase = this。openOrCreateDatabase(DATABASE_NAME, MODE_PRIVATE, nul

20、l); /*创建表*/mSQLiteDatabase。execSQL(CREATE_TABLE); /* 删除数据库 / public void DeleteDataBase() this.deleteDatabase(DATABASE_NAME); this。finish(); /* 删除一个表 / public void DeleteTable() mSQLiteDatabase.execSQL(DROP TABLE ” + TABLE_NAME); this。finish(); / 更新一条数据 / public void UpData() ContentValues cv = new

21、ContentValues(); cv。put(TABLE_NUM, miCount); cv.put(TABLE_DATA, ”修改后的数据” + miCount); / 更新数据 / mSQLiteDatabase.update(TABLE_NAME, cv, TABLE_NUM + = + Integer。toString(miCount - 1), null); UpdataAdapter(); / 向表中添加一条数据 */ public void AddData() ContentValues cv = new ContentValues(); cv.put(TABLE_NUM, m

22、iCount); cv.put(TABLE_DATA, 测试数据库数据” + miCount); /* 插入数据 */ mSQLiteDatabase。insert(TABLE_NAME, null, cv); miCount+; UpdataAdapter(); / 从表中删除指定的一条数据 / public void DeleteData() / 删除数据 / mSQLiteDatabase。execSQL(”DELETE FROM ” + TABLE_NAME + ” WHERE _id= + Integer。toString(miCount)); miCount; if (miCoun

23、t 0) miCount = 0; UpdataAdapter(); /* 更行试图显示 */ public void UpdataAdapter() / 获取数据库Phones的Cursor Cursor cur = mSQLiteDatabase。query(TABLE_NAME, new String TABLE_ID, TABLE_NUM, TABLE_DATA , null, null, null, null, null); miCount = cur.getCount(); if (cur != null cur。getCount() = 0) / ListAdapter是List

24、View和后台数据的桥梁 ListAdapter adapter = new SimpleCursorAdapter(this, / 定义List中每一行的显示模板 / 表示每一行包含两个数据项 Android.R。layout。simple_list_item_2, / 数据库的Cursor对象 cur, / 从数据库的TABLE_NUM和TABLE_DATA两列中取数据 new String TABLE_NUM, TABLE_DATA , / 与NAME和NUMBER对应的Views new int Android.R.id。text1, Android。R。id。text2 ); / 将

25、adapter添加到m_ListView中 */ m_ListView。setAdapter(adapter); 4。3。5 数据存储之ContentProviders ContentProviders: Android提供的一个特殊的存储数据的类型,它提供了一套标准的接口来获取,操作数据.查询数据:可以使用ContentProvider。query()或者Activity.managedQuery()方法。修改数据:通过ContentResolver.update()方法可以用来修改数据。添加数据:通过ContentResolver.insert()方法来增加一条数据.删除数据:通过Cont

26、entResolver.delete()方法来删除一条记录。5 程序开发5。1 主activity的设计当选择“新建记事本”,“编辑内容”,“删除当前记事”等菜单选项时对应的操作。public boolean onOptionsItemSelected(MenuItem item) switch (item.getItemId() / 插入一条数据 case MENU_ITEM_INSERT: Intent intent0 = new Intent(this, ActivityDiaryEditor。class); intent0。setAction(ActivityDiaryEditor。I

27、NSERT_DIARY_ACTION); intent0。setData(getIntent().getData()); startActivity(intent0); return true; / 编辑当前数据内容 case MENU_ITEM_EDIT: Intent intent = new Intent(this, ActivityDiaryEditor.class); intent.setData(item。getIntent().getData()); intent。setAction(ActivityDiaryEditor.EDIT_DIARY_ACTION); startAct

28、ivity(intent); return true; / 删除当前数据 case MENU_ITEM_DELETE: Uri uri = ContentUris。withAppendedId(getIntent()。getData(), getListView()。getSelectedItemId()); getContentResolver().delete(uri, null, null); renderListView(); return super。onOptionsItemSelected(item); 5。2 编辑内容protected void onCreate(Bundle

29、 savedInstanceState) super。onCreate(savedInstanceState);/setTheme(Android。R。style。Theme_Black);final Intent intent = getIntent();final String action = intent。getAction();setContentView(R。layout.diary_edit);mTitleText = (EditText) findViewById(R。id.title);mBodyText = (EditText) findViewById(R。id。body);/确定按钮confirmButton = (Button) findViewById(R.id。confirm);if (EDIT_DIARY_ACTION。equals(action)) / 编辑记事本mState = STATE_EDIT;mUri = intent。get

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1