Android日程管理系统设计与开发_第1页
Android日程管理系统设计与开发_第2页
Android日程管理系统设计与开发_第3页
Android日程管理系统设计与开发_第4页
Android日程管理系统设计与开发_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、智能终端应用系统开发实训 android 日程管理系统设计与开发(2013/12/32014/01/3)项目名称android 日程管理系统设计与开发院系计算机与软件学院班级移设 1213 组别第五组学号1202613106、09、23、48、50、52 学生姓名顾飞黄锦烽张国浩张慧敏张燕云朱冰雪指导老师张以利南京工业职业技术学院项目技术报告2 目录第 1 章 绪论 . 5 1.1 日程管理的起源 . . 5 1.2 日程管理的特点 . . 5 1.3 任务分配 . 5 第 2 章 系统开发环境及技术. 6 2.1 系统开发环境 . . 6 2.1.1 硬件环境 . 6 2.1.2 软件支持

2、. 6 2.2 系统开发技术 . . 6 2.2.1 java 简介 . 6 2.2.2 eclipse简介. 7 2.2.3 sqlite简介. . 8第 3 章 日程管理的设计与分析. 9 3.1 用户需求 . 9 3.2 功能需求 . 9 3.3 日程管理设计难易点分析. 9 3.4 日程管理设计总体框架. 10 第 4 章 概要设计4.1 系统总体功能设计 . 11 南京工业职业技术学院项目技术报告3 4.1.1 系统设计原则. 11 4.1.2 系统结构功能图. 11 4.2 数据库设计 . 11 4.2.1 分类报表 . 11 4.2.2 数据库表 . 12 第 5 章 app界面

3、设计 . 13 5.1 app应用图标设计 . . 13 5.2 界面元素 . 13 第 6 章 详细设计与实现. 13 6.1 程序引导加载界面. 13 6.2 欢迎界面 . 15 6.3注册登录模块 . . 16 6.4程序主界面模块 . . 18 6.5 滑动菜单模块 . 19 6.6添加日程模块 . . 23 6.7 个人中心模块 . 26 6.8 反馈信息界面 . 29 6.9 应用分享模块 . 29 6.10 应用推荐模块 . 29 南京工业职业技术学院项目技术报告4 6.11 关于我们界面 . 30 6.12 设置模块 . 30 第 7 章 应用测试 . 33 小结 . 34 参

4、考文献 . 38 南京工业职业技术学院项目技术报告5 第 1 章绪论1.1 日程管理的起源在没有手机功能齐全的时代,我们的日程安排只能通过手写记录,经常会因为没有及时翻阅记录而错过了重要的日程,随着手机技术的飞速发展,手机应用的迅速推广,手机改变了人们的生活,工作的方式。日程管理就是将每天的工作和事务安排在日期中,并做一个有效的记录,方便管理日程的工作和事务,达到工作备份的目的。同时也具有对日常工作进行指导、监督的作用。 1.2 日程管理的特点 1: 绿色免费 , 程序轻便小巧 , 只占用几 m内存! 2: 非常灵活的日期提醒设置 3: 全年月日周的周期定时循环提醒 4: 绝不错过未开机情况下

5、的提醒 5: 完善的日程查询功能 6: 功能完善 , 简单易用 1.3 任务分配表 1.1 任务分配表能够清晰的看到每个人在项目开发过程中所承担的任务顾飞任务分配 已经做好的功能归类项目设置,编写文档黄锦烽设置通知栏常驻语音识别张国浩欢迎界面 图片资源准备张慧敏数据库表设计设置界面布局张燕云图标设计 主界面 引导界面图片设计朱冰雪时间日期选择器记事本功能,编写文档第2章 系统开发环境及技术2.1 系统开发环境南京工业职业技术学院项目技术报告6 2.1.1 硬件环境处理器 pentium以上;内存容量 1g以上;外存容量 50g以上;2.1.2 软件支持操作系统 : windows 7 编程语言

6、: java 数据库: sqlite 开发工具: eclipse 2.2 系统开发技术 2.2.1 java 简介背景:java 是一种应用分布式网络环境中的程序设计语言,由sun 公司开发, java语言广为人知,得益于internet的迅猛发展。人们开始了解并使用这种神奇的语言,一般的应用程序、 applet 、web服务器乃至手机的嵌入式系统,java 都足以胜任。 java 对网络提供了强有力的支持,这也是这种奇妙语言的魅力所在。特点:(1) 面对对象(2)可移植性 (universality) (3)安全性 (security) (4)多线程 (thread) (5)多态(6)解释执

7、行(7)分布性 2.2.2 eclipse简介eclipse中三个最吸引人的地方:一是它创新性的图形api,即 swt/jface ,在此之前,我曾经用过java 的awt/swing 来开发 windows应用程序, awt/swing其界面客观地讲不够美观,而且南京工业职业技术学院项目技术报告7 界面响应速度比较慢;而swt/jface则大大改善了 java 在这方面的能力。二是它的插件机制。三是利用它的插件机制开发的众多功能强大的插件。eclipse平台体系结构:eclipse 平台是一个具有一组强大服务的框架,这些服务支持插件, 比如 java开发环境插件( jdt ) 、插件开发环境

8、( pde )和其他的第三方插件(new tool ) 。它由几个主要的部分构成:平台运行库、工作区、工作台、团队支持和帮助。eclipse平台体系结构:平台运行库是内核,它在启动时检查已安装了哪些插件,并创建关于它们的注册表信息。为降低启动时间和资源使用,它在实际需要任何插件时才加载该插件。除了内核外,其他每样东西都是作为插件来实现的。工作区是负责管理用户资源的插件。这包括用户创建的项目、那些项目中的文件,以及文件变更和其他资源。工作区还负责通知其他插件关于资源变更的信息,比如文件创建、删除或更改。工作台为 eclipse 提供用户界面。它是使用标准窗口工具包(swt )和一个更高级的 ap

9、i(jface)来构建的; swt 是 java 的 swing/awt gui api 的非标准替代者, jface 则建立在 swt 基础上,提供用户界面组件。swt 已被证明是eclipse 最具争议的部分。 swt 比 swing 或 swt 更紧密地映射到底层操作系统的本机图形功能, 这不仅使得 swt 更快速,而且使得 java 程序具有更像本机应用程序的外观和感觉。使用这个新的 gui api 可能会限制 eclipse 工作台的可移植性,不过针对大多数流行操作系统的 swt 移植版本已经可用。eclipse 对swt 的使用只会影响 eclipse 自身的可移植性使用 ecli

10、pse 构建的任何java 应用程序都不会受到影响,除非它们使用 swt 而不是使用 swing/awt。团队支持组件负责提供版本控制和配置管理支持。它根据需要添加视图,以允许用户与所使用的任何版本控制系统(如果有的话)交互。大多数插件都不需要与团队支持组件交互,除非它们提供版本控制服务。 2.2.3 sqlite简介sqlite,是一款轻型的数据库,是遵守acid的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百k 的内存就够了。它能够支持南京工业职业技术学院项目技术报告8 windows/linux/u

11、nix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 tcl 、c#、php 、java 等,还有 odbc 接口,同样比起 mysql、postgresql这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。sqlite 第一个 alpha 版本诞生于 2000年 5 月。 至今已经有 13个年头,sqlite 也迎来了一个版本 sqlite 已经发布。sqlite 是遵守 acid的关系型数据库管理系统, 它包含在一个相对小的c库中。它是 d.richardhipp 建立的公有领域项目。不像常见的客户 -服务器范例, sqlite 引擎不是个程序与之通信的独立进程,而是

12、连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接 api 调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库 ( 定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。第 3 章日程管理的设计与分析3.1 用户需求(1)功能需求:本系统完成对自己的日程进行记录,每天日程安排以及查看修改工作。(2)权限需求:用户管理员拥有最高的权限,可以对系统中所有的数据进行查看、添加、修改和删除等操作;普通用户只可以对自己的进程进行查看、添加、修改和删除等操作。3.2 功能需求(1)用户登录、用

13、户注册:用户通过登录的方式进行口令校验安全进入在线日程管理系统:用户注册是用户为进入该系统时将个人信息提交到数据库中。(2)日程管理:其中使用listview控件,对某一天或某段时间的日程进程查看,和对某个日程的地点、开始时间、重要性及联系电话进行修改,更新等操作。南京工业职业技术学院项目技术报告9 3.3 日程管理设计难易点分析数据库操作(增删改查)界面的整体设计:找不到适合的框架,自己又不会写调试程序的时候经常性的遇到异常3.4 日程管理总体框架日程管理 app开发流程包含应用定位、项目规划、 ui 设计数据库设计,功能类的实现以及工具类的附加图3.1 总体框架图南京工业职业技术学院项目技

14、术报告10 第 4 章概要设计4.1 系统总体功能设计4.1.1 系统设计原则日程管理 app主要分为两大块功能:日程记录功能:日程添加闹钟提醒个人中心:能够进行注册登录 并且能够对自己的信息进行修改系统设置:设置主题通知栏的开启清除缓存等功能应用分享:根据第三方提供的share 分享服务 能够将 app分享到别的平台4.1.2 系统机构功能图日程管理概要设计包含四大模块:日程管理,个人中心,系统设置,应用分享图 4.1 系统功能图4.2 数据库设计4.2.1 分类报表本次实训采用了一张数据库两张表(分别是日程表和用户表)南京工业职业技术学院项目技术报告11 4.2.2 数据库表数据库采用了两

15、张数据库表分别是日程管理表(remind表)和用户信息表(usertab 表)remind 表字段数据类型备注title varchar 标题reminddate varchar 设置闹钟日期remindtime varchar 设置闹钟的时间serviceflag integer 闹钟服务的开关_id integer 日程的 id remindcounts integer 闹钟计数note varchar 正文图表4.2 remind表数据表内容usertab 表字段数据类型备注id int 用户 id username varchar 用户名password varchar 密码nickn

16、ame varchar 昵称regist_time varchar 注册的时间图表4.3 usertab表数据表内容南京工业职业技术学院项目技术报告12 第 5 章 app界面设计5.1 app应用图标设计图标设计含义:一周有 7天,我们要计划着做好每一天的事情,所以app 的名字为 7daytodo 绘制工具: ps 绘制方法:钢笔工具切片图层,填充色块而成图5.1 应用图标5.2 界面元素图标设计伪扁平蓝色+灰色 朴素大方设计比较简洁,易于查看第 6 章详细设计与实现6.1 程序引导加载页面每次进入应用时会显示一个程序的加载页面南京工业职业技术学院项目技术报告13 图6.1 程序引导加载图

17、主要代码(设置线程休眠后进行跳转)final intent intent = new intent(this, guideactivity.class); / 如果之前启动过这个activity,并还没有被 destroy的话,而是无论是否存在,都重新启动新的activityintent.setflags(intent.flag_activity_new_task ); / 创建一个新的线程来显示欢迎动画,指定时间后结束,跳转至指定界面new thread(new runnable() overridepublicvoid run() try thread. sleep (3000);/ 用线

18、程暂停3秒来模拟做了一个耗时3秒的检测操作sharedpreferences preferences = getsharedpreferences(isfirstuse,mode_world_readable); isfirstuse= preferences.getboolean(isfirstuse, true ); if ( isfirstuse) startactivity(newintent(welcome.this, guideactivity.class ); else startactivity(newintent(welcome.this, mainactivity.clas

19、s ); / 获取应用的上下文,生命周期是整个应用,应用结束才会结束/ getapplicationcontext().startactivity(intent);/ 跳转finish();/ 结束本欢迎画面 activity南京工业职业技术学院项目技术报告14 editor editor = preferences.edit(); editor.putboolean(isfirstuse, false); mit(); catch (interruptedexception e) e.printstacktrace(); ).start(); 6.2 第一次进入时的欢迎界面第一次使用应用所看

20、到的欢迎漫画南京工业职业技术学院项目技术报告15 图6.2 欢迎界面图主要代码(创建一个引导图片切换适配器来管理几个view)privatevoid initview() layoutinflater mli = layoutinflater.from ( this); view1 = mli.inflate(r.layout.gudie_view01, null); view2 = mli.inflate(r.layout.gudie_view02, null); view3 = mli.inflate(r.layout.guide_view03, null); view4 = mli.in

21、flate(r.layout.guide_view04, null); viewpager = (viewpager) findviewbyid(r.id.viewpager); views = new arraylist(); vpadapter = new viewpageradapter(views ); regist = (button) view4 .findviewbyid(r.id.regist); login = (button) view4 .findviewbyid(r.id.login); startbt = (button) view4 .findviewbyid(r.

22、id.startbtn); privatevoid initdate() viewpager.setonpagechangelistener(this); viewpager.setadapter(vpadapter); views .add( view1 ); views .add( view2 ); views .add( view3 ); views .add(view4 ); 6.3 注册登录模块注册登录所展示的ui 界面以及数据库写入的实现方法图6.3 注册登录图南京工业职业技术学院项目技术报告16 主要代码(用 db_help 来管理数据库的增删改查只需给它传一个sql 语句便可执

23、行)sql =select * from usertab where username=+ namestring + ; cursor = db.select(sql ); if ( cursor.getcount() = 0) toast.maketext (getbasecontext(), 该用户名不存在 , toast.length_long ).show(); else cursor.movetofirst(); string password = cursor.getstring(2); if (password.equals(passstring) sharedpreferenc

24、es userkey;/ 用户名存放userkey=getsharedpreferences(userkey,0);/打 开preferences,名称为 userkey,如果存在则打开它,否则创建新的preferencessharedpreferences.editor editor = userkey.edit();/ 让userkey 处于编辑状态editor.putstring(name , namestring); / 存放数据mit();/ 完成提交toast.maketext (getbasecontext(), 成功 , toast.length_long ).show();

25、intent intent = new intent(loginactivity.this, mainactivity.class ); startactivity(intent); finish(); else toast.maketext (getbasecontext(), 密码错误 , toast.length_long ).show(); sql =select * from usertab where username=+ usernamestring + ; cursor = db.select(sql ); if ( cursor.getcount() 0) toast.mak

26、etext (getbasecontext(), 该用户名已存在 , toast.length_long ).show(); else sql =insert into usertab(username,password,nickname,regist_time) values(+ usernamestring+ ,+ passwordstring+ ,+ nicknamestring + , + time + ); 南京工业职业技术学院项目技术报告17 db.insert(sql ); cursor.close(); 6.4 程序主界面模块利用 slidingmenu+viewpager+f

27、ragment开源框架所组成的应用主界面框架图6.4 程序主界面模块图主要代码( slidingmenu+viewpager+fragment开源框架)fragmenttransaction fragmenttransaction = getfragmentmanager() .begintransaction(); menufragment menufragment = new menufragment(); fragmenttransaction.replace(r.id.menu, menufragment);/ 加载滑动设置布局schedulefragment sf = new sch

28、edulefragment();/ 新建一个日程管理fragment,并在里面创建一个viewtitle.settext( 近期日程 ); fragmenttransaction.replace(r.id.contnet, sf);/ 所 创 建 新 的frgment 布局替换容器的布局fragmenttmit(); slidingmenu sm = getslidingmenu(); sm.setshadowwidth(50); sm.setshadowdrawable(r.drawable.shadow); sm.setbehindoffset(60); sm.setbehindwidth

29、(300);/ 设置slidingmenu菜单的宽度南京工业职业技术学院项目技术报告18 sm.setfadedegree(0.35f); sm.settouchmodeabove(slidingmenu.touchmode_fullscreen);6.5 滑动菜单利用 preferences 自定义布局,来设计滑动菜单里的显示内容图6.5 滑动菜单图主要代码addpreferencesfromresource(r.xml.menu); / add listenerfindpreference(a ).setonpreferenceclicklistener(this); findprefer

30、ence(b ).setonpreferenceclicklistener(this); findpreference(c ).setonpreferenceclicklistener(this); findpreference(d ).setonpreferenceclicklistener(this); findpreference(e ).setonpreferenceclicklistener(this); findpreference(f).setonpreferenceclicklistener(this); findpreference(g ).setonpreferencecl

31、icklistener(this); publicboolean onpreferenceclick(preference preference) 6.6 添加日程界面模块几个控件组成的组成的布局,设置线程完成闹钟响应的功能南京工业职业技术学院项目技术报告19 图6.6 添加日程图主要代码(定时线程启动)new thread(new runnable() overridepublicvoid run() sql= insert into remind (title,note,remindtime,remindtimesecond,remindcounts,serviceflag) values

32、(+ workremind.this. ettitle.gettext() .tostring() + ,+ workremind.this. etnote .gettext() .tostring() + ,+ workremind.this. ettime .gettext() .tostring() + ,+ workremind.this. etremindtimesecond.gettext().tostring() + ,+ counts + , + flags + ) ; 南京工业职业技术学院项目技术报告20 helper.insert(sql ); / 通过 id 分辨不同的

33、pendingintentif (!updateflag.equals(1 ) string sql = select * from remind; mydbhelper myhelper = new mydbhelper( workremind.this); cursor cursor = myhelper.select(sql); if (cursor.getcount() 0) cursor.movetolast(); log. i ( *lastid, cursor.getint(cursor .getcolumnindex(_id) + ); pendingid = cursor.g

34、etint(cursor .getcolumnindex(_id); 6.7 个人中心模块每个布局都有一个设置的界面,点击进去该acttivity 图6.7 个人中心图主要代码(截取头像图片)privatevoid showdialog() 南京工业职业技术学院项目技术报告21 new alertdialog.builder(mactivity) .settitle( 设置头像 ) .setitems(items , new dialoginterface.onclicklistener() overridepublicvoidonclick(dialoginterface dialog, i

35、ntwhich) switch (which) case 0: intent intentfromgallery = new intent(); intentfromgallery.settype(image/*); / 设置文件类型intentfromgallery .setaction(intent.action_get_content); startactivityforresult(intentfromgallery, image_request_code); break ; case 1: intent intentfromcapture = new intent( mediasto

36、re.action_image_capture ); / 判断存储卡是否可以用,可用进行存储if (tools.hassdcard () intentfromcapture.putextra( mediastore.extra_output , uri.fromfile( new file(environment . getexternalstoragedirectory(), image_file_name); startactivityforresult(intentfromcapture, camera_request_code); break ; ) .setnegativebutto

37、n(取消 , newdialoginterface.onclicklistener() overridepublicvoidonclick(dialoginterface dialog, intwhich) dialog.dismiss(); ).show(); 6.8 反馈信息界面摆放布局实现界面显示南京工业职业技术学院项目技术报告22 图6.8 反馈信息图主要代码6.9 应用分享模块暂未开发6.10 应用推荐模块暂未开发6.11 关于我们界面摆放布局实现界面显示图6.9 关于我们界面图主要代码南京工业职业技术学院项目技术报告24 6.12 设置模块设置界面包含两大功能(通知栏常驻,清除缓存

38、)南京工业职业技术学院项目技术报告25 图6.10 设置界面图主要代码(通知栏开关清除缓存)manager= (notificationmanager) getsystemservice(notification_service); / 创建一个通知的管理类pendingintent contentintent = pendingintent.getactivity( setactivity.this, 0, intent, 0); builder.setcontentintent(contentintent); builder.setcontenttitle(7daytodo ); buil

39、der.setcontenttext( 点击进入应用 ); builder.setticker( 有通知来了 ); / 第一次出现在状态栏的内容builder.setsmallicon(r.drawable.ic_launcher); notification notification = builder.build();/ 仅仅限于在高版本 4.1 中使用manager .notify(1000, notification); else manager .cancel(1000); publicclass datacleanmanager /* * 清除本应用内部 缓存 (/data/dat

40、a/com.xxx.xxx/cache) * * paramcontext */publicstaticvoid cleaninternalcache(context context) deletefilesbydirectory(context.getcachedir(); /* * 清 除 本 应 用 所 有 数 据 库 (/data/data/com.xxx.xxx/databases) * * 南京工业职业技术学院项目技术报告26 param context */publicstaticvoid cleandatabases(context context) deletefilesby

41、directory( new file(/data/data/+ context.getpackagename() + /databases); 应用测试需要完成页面数量 28 个实际完成页数 16个发现 bug 4个 清除缓存不够彻底线程没有结束掉设置头像相机无法截图通知栏开启容易被清掉警告框未完成失去焦点事件小结顾飞:其实刚开始接手这个实训的时候,觉得难度挺大的,因为之前我们根本就没做过什么有关联的一些东西,一开始就遇到了个瓶颈,也许这是一个必然的过程,但到后面发现这是一个渐进学习的过程,安卓编程到后面有很多有趣的东西,比如 xml 的编写 传感器 几种轻量级的存储方式,整个项目都能够看懂

42、什么意思,写起代码时也比较轻松,由于是用的第三方开源框架,一开始设计的时候是毫无头绪,不知道怎么改,没有了解过fragment (碎片)的使用,到后来,渐渐的了解了它的生命周期,感觉上比activity更好用,实训快完成了,这是一个积累经验的过程,第一次做手机上的软件,虽然还没用到网络编程,但也挺有成就感的,好好学习吧,无论是在美工,还是在代码编写上都必须更上一层楼!朱冰雪:感谢组长的辛勤指点 , 老师的严谨细致、一丝不苟的作风将会是我以后工作、学习中的榜样 ; 他们循循善诱的教导和不拘一格的思路给予我无尽的启迪。我由衷的感谢他们给予我的帮助。在这五周的学习中 , 我们学会了充分的了解了自己的

43、学习能力,针对拟完成项目的设计功能要求与工艺规范,查阅资料,了解相关知识或技术情况,主动参与南京工业职业技术学院项目技术报告27 团队各阶段的讨论,表达自己的观点以及意见,在程序设计阶段出现了程序错误,最终在小组的讨论下解决了问题,充分的加强了小组的团队合作能力,在学习过程中,刻苦认真,在关键问题时小组组员激烈讨论,在问题上下功夫,充分发挥自己的主动性,创造性的解决问题,并培养自己在整个过程中的团队合作能力,与团队协作意识 . 在这次实训中,我主要负责的是作为组长的助手,帮组长做页面的功能和实训报告。一开始的学习中,总是出现很多错误,不够顺利,对很多知识点也不了解,但是找来很多书籍,上面都有资

44、料,认真的看书,看看别人的代码,试着学习,慢慢的就开始经手了,实在不行的,就上网查资料,网上的资料真是无穷无尽的,让我大饱眼福,也学习了很多,最后,加上组长和组员的努力,实训项目7daytodo落实了。我十分感谢学校在这一学期给我们安排了这样一个十分有意义的实训,让我们在新学期能有一个新的起点,好的开始。相信在新的一学期里,只要我们更加努力,不放松,一定会取得一个令人满意的好成绩!张慧敏:不知不觉,五周的实训已接近尾声,这学期也就在不知不觉中悄悄过去了。通过五周的 android实训,基本掌握了android 应用程序开发的一般流程。对常用控件基本掌握其用法,对其事件的监听方法也基本掌握。学习

45、android 不仅是对前沿开发技术的了解,也是对编程知识的一次提升。通过学习 android 的控件、布局、 activity、service 等一系列基础知识,对整个android 的开发有了大致的了解。例如 : 要的布局 ( 或者控件 ) , 在学习界面中,我发现android 为我们提供了很好的类似反射机制,通过layout 文件夹下的配置文件,可以快速的形成界面,在配置文件可以设置属性或者样式都是很快捷方便。对比较特殊的界面也可以通过处理嵌入到指定的界面,同样你可以通过java 代码直接创建 view 进行添加,不过这种方式比较复杂。对一些点击、选中、按键等处理的事件,界面之间的 跳

46、转 intent管理,通过 bundle 对数据在界面之间进行传输。在做实习最后的项目时,遇到了很多平时没有遇到或者没有特别关注的问题,如常见的 activity忘记注册,对 sd卡存取需要权限,在写sql语句时细微的错南京工业职业技术学院项目技术报告28 误就可能导致程序运行错误。这些问题只有自己在实际开发中才能体会到并且解决,并且在解决后可以长时间的记住。由于这是一个由我们自己做的项目,不可能再像以前一样跟在老师后面敲,很多需要用到的代码我们都不知道,所有这就需要我们自己去网上去找资源,然后再对找到的代码进行修改,并且尽可能把它们消化掉,变成自己的。我在为期五周的实训中学到了很多在课堂上根本就学不到的知识,收益非浅。最后,通过实训,我收获了很多东西,特别是编程方面的。总之,在这次实习中,我获得了很多东西,提高了自己的编程技巧和编程方法,并且认识了android 应用程序的开发,以及加深了对java 的认识。张燕云:不知不觉中为期五周的实训已经接近尾声。虽然时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论