正文内容
android项目报告
来源:盘古文库
作者:漫步者
2025-09-14
1

android项目报告(精选10篇)

android项目报告 第1篇

2014-第一学期

计算机科学与技术(软件外包方向)实践周项目总结

学 院: 专 业: 班 级: 学生姓名: 指导教师:

下发日期: 20 12月15日

目录

第一章 项目基本情况 ................................................................................................................ - 3 -

1.1 项目概况 ............................................................................................................................ 1 1.2项目进度计划 ..................................................................................................................... 1 第二章 项目任务与完成情况 ......................................................................................................... 3

2.1 本人承担的主要任务 ........................................................................................................ 3 2.2 项目中的问题及解决方法 ................................................................................................ 3 2.3 项目任务的完成情况 ........................................................................................................ 3 第三章 项目总结 ............................................................................................................................. 4

3.1项目的心得体会 ................................................................................................................. 4 3.2问题与探讨 ......................................................................................................................... 4

第一章 项目基本情况

1.1 项目概况

本次的项目是掌上作业系统,是基于Android的手机学习考试软件。主要要求实现的功能如下:

(1)用户登陆:能够在联网的前提下实现用户的登录,并且登陆成功后登陆图片显示亮色,反之是灰色。

(2)用户未登录,点击各功能模块是提示“请先登录”;登陆成功后,才能够正确使用软件功能。

(3)专门页面进行课程简介、考试形式、考试时间进行查询。 (4)实现无纸化测验,利用手机简洁地进行试题考试。 1.2项目进度计划

图1.2计划进度表

12月18日,实现开发环境搭建,需求分析、接口分析,并且开发环境搭建完成,初步任务分解方案。最后确定方案为:由来实现登录界面,并且登录成功

后主界面的功能;由来实现功能主界面、建设中提示界面的功能;由来实现作业列表功能;由来实现作业练习模块的功能。

12月19日至12月21日,根据任务分配为实现各自的功能而准备并且积极讨论、相互寻求帮助,基本上完成了各自的功能。

12月22日至12月25日,根据小组项目进度计划进行项目实践,实现明显Bug不超过3个的可运行系统,在各项工作完成后,有进一步实现了界面的美观并且添加了一些新的功能,使得项目更加的完善。

12月26日,项目答辩,真机运行系统演示,回答老师提出的问题。

第二章 项目任务与完成情况

2.1 本人承担的主要任务

主要实现登录界面,并且登录成功后主界面的布局。

实现登陆界面功能的过程中,对简单的登陆进行完善强化。登陆功能必须满足在手机接入校园网WLAN的前提下,联网登陆。在主界面中,未登陆成功时,用户没有使用各功能模块的权限,系统会提示用户登陆,并且此时圆形头像应该呈现灰色未登录。点击头像进行登陆,输入账号密码(学生的学号密码),若输入错误则提示相应信息,成功则跳转到主界面。

以上是我本次Android实践周的主要任务,在这个基础上,我会进行一些额外功能的添加,例如在点击登陆按钮时,页面进入类似QQ登陆一样的提示界面,并且提供隐身登陆、记住密码、自动登录功能的实现。 2.2 项目中的问题及解决方法

初步做完页面布局后发现,与自己的想象差距很大,首先是页面布局的不协调部不对称,这个时候要求自己安静仔细的重新修改。

在做好每个界面,并且每个界面都对应它的Java类,再添加,运行后出现错误,后来发现没有在AndroidManifest中注册信息,需要注册。

输入账号密码点击登陆按钮后,能够正常登陆,但是添加隐身登陆后无法正常登陆,系统进行报错,未解决错误。

添加自动功能登陆也出现错误,无法正常登陆,未解决问题。 2.3 项目任务的完成情况

经过两个周的项目实训,由于基础比较薄弱,遇到了很多问题,但是在小组内成员和同学的帮助下,基本上完成了小组内任务,实现了用户连接校内网时的登陆,但是添加的隐身登陆和自动登陆功能仍就是错误,无法实现功能。

android项目报告 第2篇

软件工程师

职责和业绩:

是网络有限公司自主研发的一代类似SNS的产品,跟传统的SNS有很大的不同,这个产品包括SNS,而重点内容是关于“人生旅行”,最大的特点是看好最近兴行的3G业务,手机与互联网会有空前深入的联系,故此认为手机和3G可以记录人生足迹。手机拍摄照片--上传--用电脑扩展上传的内容(可以是blog、更多的照片,RSS)----分享。创造,体验,分享,这个产品是充分体验了这一理念。

软件功能模块:

1.注册用户、登录。2.拍照(GPS定位拍照获取经纬度、海拔、照片上传至服务端)。

3.信息发布(旅程信息)。4.对本地驻留信息操作(足迹浏览及用户信息)。

5.系统设置(同步设置、WIFI、像素大小、质量、本地存储图片容量、地图图层、好友公开程度)。

责任描述:

1.service后台监听WIFI /GPS状态。

2.信息发布(用户拍照完将各类信息填写完整通过Http协议调用上传接口同步到服务端),可断点续传,手动同步。

3、用户登录,注册,发布旅程(POST/GET)JSON返回信息处理。

4.自定义拍照(根据手机厂商自适应相关接口)和自定义相关UI设计,便于通用。

5、系统设置模块(WIFI,动态获取手机支持像素设置,同步管理)。

适用机型: HTC、MOTO702。

产品已成功在google market上架,通过此产品的开发使我对android有了更深的掌握,如:系统服务监听,拍照,对服务器数据读写控制,WIFI/GPS/管理,SQLite优化处理,对android有了更深的见解。

20xx.5-20xx.9 外包项目经验:

工程师

职责和业绩:

一.管家预约客户端。

说明:健康预约体检项目是中国健康管家与各大专业体检中心共同推出的一项综合性健康服务项目,用户可了解医院、医生信息并提前预约专家号。同时具备导医导诊、诊前提醒、停诊通知等多项服务功能:

1、预约挂号;

2、预约体检;

3、名医咨询(排班列表/排班明细);

4、预约体检;

5、名医咨询 ;

6、就诊指导。

二.Android平板(epad)点餐客户端

说明:主要为10寸EPAD(Zenithnk)上做一套点餐系统,点菜主画面分为冷菜、热菜、点心等数个类别,菜名+价格 +口味选择(例如重辣)+菜介+数量选择+顾客要求。通过HTTP/POST方式同服务端交互,点击确认点菜后将点菜信息发送到服务器端,服务器给出确认信息。

三.我要团购客户端

说明:本应用用于、…等大优惠大折扣的精品团购信息低至0.5到5折的精选各类商品,有餐馆套餐、精美食品、家具用品、家用电器、休闲娱乐…每天推出10款以上各类大折扣大优惠的商品,避免团购网站每天团购商品单一问题。本应用将直接与各类团购网站合作需要一一跟各个团购网站与商家商议合作才可能产生盈利。

20xx.7-20xx.4 信息技术有限公司

java软件工程师

职责和业绩:

在职期间担任JAVA组长,负责J2EE、android等项目开发。

该应用是信息技术有限公司与中国*Mobile Market合作发布的第二款手机游戏。对各具特色的地方菜系,代表了各地色、香、味、形俱佳的传统特色烹饪技艺。

软件功能包括: (1)菜系选择.(2)菜谱选择.(3)查看菜谱.(4)关于.(5)帮助.

责任描述:

在该应用中负责菜谱资料的导入(SQLite),查看菜谱模块的开发和优化处理。

感受:熟悉了android api,常用适配器的使用和掌握了SQLite数据处理和UI自定义布局。

20xx/12 -- 20xx/03 开心小测试

该应用是*科技与中国*MMarket平台合作的第一款应用,丰富个性的测试题,多元化的娱乐体验是本游戏的亮点。

软件功能包括: (1)题目选择.(2)游戏帮助.(3)关于.(4)帮助.

责任描述:

1.android环境搭建与模拟器测试.

2.开心小测试资料整理导入(SQLite).

3.答题结果模块开发。

感受:对Android开发领域有了一定的认知,熟悉了Android 开发模式为后续的开发打下了良好的基础。

20xx/5 -- 20xx/9 短信直联双软认证系统

基于互联技术与互联网技术,采用B/S结构,通过Web软件平台+SMS信息通道+手机支付收费通道,整合成为用户管理平台+内容服务及下发管理平台+数据同步接口+手机支付收费管理平台为一体的集成系统。重点解决了信息通道即时性开通及内容下发、目标群体批量管理问题和通道收费便捷性问题。

责任描述:

担任该项目组长,主要负责概要设计文档攒写和开发进度调整等相关事宜。编码期间负责短信群发管理、短信套餐管理等核心模块开发。该系统成功得到“软件产品认证”和“软件企业认证”。

20xx/10 -- 20xx/2 茂名数据业务营销活动资讯系统

该项目主要为茂名数据业务室而开发,其主要目的为:

1).方便客户查询,提升客户满意度 营销活动的客户热情度不断增加且不断增多,造成客户对营销活动的奖励不明确而引起 客户投诉。

2).方便与客服人员的沟通 为了能让数据业务室的产品经理与服务管理室的客服人员更有效、更方便的沟通。

3).加强内部营销活动管理 室内人员较少,经常一个人要负责几个甚至十多个营销方案,经常出现营销方案过多而造成跟进不到位、漏赠送返还等现象。为了能让数据业务室的产品经理能够更有效、更方便的对营销活动方案进行管理、查询,加强内部营销活动的管理。

责任描述:

android项目报告 第3篇

关键词:持续集成,自动化测试,安卓项目

随着Android手机的市场份额不断的扩大, Android应用程序大规模出现。由于Android应用程序变更性比较大且需求易变化, 这些变化可能会对整个Android程序带来风险, 为了保障产品的质量, 很多大公司已经开发出适合Android产品的持续集成系统, 但这些系统普遍存在开发周期长而且成本比较高。为了缩减开发周期、降低开发成本, 帮助中小企业也能实施持续集成, 利用开源的工具设计并实现一个持续集成系统。

1 持续集成

集成是软件开发过程中一个重要的环节, 如果不能早集成、常集成, 那么等到最后再集成会出现很多问题, 给项目带来不可预期的麻烦, 为了提升开发的效率、降低项目的不可预见性, Martin Fowler提出持续集成的观点 (Continous Intergration ,CI), 该观点指出在实践中项目成员频繁地进行集成 , 每次集成都通过自动化构建来验证, 从而尽快地发现集成错误。

持续集成里的构建不仅仅包含编译、链接、组成可执行程序, 还应包括对这个可执行程序进行的自动化测试。对于一次成功的构建, 开发人员都被要求在这个自动化过程中的每一步都不能出错, 而最重要的一步就是自动化测试, 可以这么认为: 自动化测试是持续集成的核心。

2 总体设计方案

持续集成的场景通常是这样的: 首先开发者向版本控制库提交代码, 同时持续集成服务器不断地检测版本库是否有变更, 若有变更, 则持续集成服务器执行构建脚本, 最后把构建的结果反馈给开发人员。分析整个持续集成的过程, 整个持续集成系统应该包含以下3个实践: 第一是统一的源码库; 第二构建自动化; 第三自动化测试。图1为持续集成的场景图。

基于以上分析, 结合Android Note Pad项目, 持续集成方案如下: 对于统一的源码库, 采用git工具来管理。之所以选择git, 是因为git是一个开源的分布式版本控制系统, 可以有效、高速的处理从很小到非常大的项目版本管理; 对于构建的自动化, 因为Ant基于Java与平台无关的构建工具, 脚本的格式是基于XML的, 比make脚本来说 还要好维 护一些 ,因此采用开源的工具Ant完成; 对于自动化测试, 由于本方案需要应用在Andorid项目中, 对于不同的需求测试, 采用不同的工具或框架。整个系统以开源的可以扩展插件的持续集成工具Jenkins来完成, 它是一个支持自动化构建的工具。Jenkins的工作流程图如图2所示。

3 自动化测试框架及相关技术

自动化测试是持续集成的核心部分, 一个持续集成系统应包含不同类型的自动化测试。在此只对单元测试、功能测试和压力测试进行展开。在Android SDK中已经给出了如何在系统上进行测试的方法, 测试框架图如图3所示。

由图3知Android的测试方法有:

(1) Android中的JUnit:Android上实现了Junit单元测试 ,利用JUnit等单元测试框架进行单元测试对于Java程序员并不陌生, 利用这些非常有效的工具, 使得代码的质量得到有效的监控和维护。

(2) Android中的Instrumentation类 :在图3的测试包中除了JUnit外, 还有Instrumentation类。使用Instrumentation, 可以在主程序启动之前, 创建模拟的系统对象, 如Context; 控制应用程序的多个生命周期; 发送UI事件给应用程序; 在执行期间检查程序状态。Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能。

此外, Android测试对Junit进行了扩展, 扩展如图4所示:

图4中所示的是比较重要的几个扩展。比如Note Pad的客户端首页的Activity是Notes List, 想测试它上面的一些功能,就可以实现Activity Instruemtation Test Case2的子类,而当这个子类运行的时候, Notes List就会自动启动, 而不需要调用Intent的方法。然后用Instrumentation来模拟用户的点击、拖拉等行为, 这样就实现了自动化测试。从所建的工程来看,将setup() 方法重写, 然后在setup() 方法里面调用自己封装的方法, 为了使测试代码简洁, 在代码中封装了box方法, 来调用一些用户的基本行为, 如点击、拖拉等。代码片段如下:

可以使用JUnit进行单元测试, 用Activitity InstruemtationTest Case2类进行功能测试 , 其他的方法进行补充。上述提供的方法中并没有提到压力测试, 压力测试使用自动化测试工具Monkey来完成。图5是自动化测试的流程图。

4 持续集成方案的实现

基于以上对持续集成方案的分析, 下文详细地介绍了持续集成方案的实施步骤、集成构建系统的配置和自动化构建的结果。

4.1 实施步骤

(1) 环境的搭建。根据实施的目的 , 准备2台机器来搭建持续集成环境: 1台用作Jenkins服务器, 1台用作源代码仓库

(2) 编写并调试ant脚本build.xml。该脚本是持续集成各个环节中最关键的部分, 主要包含5部分的配置代码: 清理、编译源代码、安装apk、执行自动化测试以及测试用例覆盖率的检查。

(3) 编写自动化测试脚本。测试脚本包含单元测试脚本 、功能测试脚本以及压力测试脚本。测试用例用Test Link来管理

(4) 验证系统的可行性 , 图6为整个系统的实施图。

4.2 基于 Jenkins 持续集成系统配置

4.2.1 创建 Job

进入Jenkins首页后, 新建两个Job:Note Pad和Note Pad Test,点击Note Pad进入配置 界面 , 在源码管 理处选择git并填写Note Pad项目的源 代码的路 径 ( 源代码包 含Note Pad代码和Note Pad的测试代码 ), 构建项选择Invoke Ant, 在targets处填上clean debug install, Job Note Pad主要完成Note Pad的编译并将生成的apk安装到手机中。

4.2.2 Test Link 的配置

进入Jenkins首页后, 点击Note Pad Test进入配置界面, 构建项选择Invoke Test Link, 按照Test Link新建的测试项目, 填写Test Link Configuration; Test Execution选择Invoke Ant, 在targets处填上clean emma debug install test; Result SeekingStrategy选择JUnit case name, 在Include Pattern处填写测试报告文件的路径, 这样Jenkins就能显示测试结果。

4.2.3 Emma 的配置

进入Jenkins首页后, 首先要安装Emma插件, 在构建后的操作中选择Record Emma coverage report, 在Folders or filescontaining Emma XML reports中填入测试用例覆盖率检查报告文件coverage.xml的路径, 这样Jenkins就能显示测试用例覆盖检查的结果。

4.3自动化构建的结果及分析

Jenkins中的Build History会记录当前构建的状态和历史构建的结果, 绿灯表示构建成功, 红灯表示构建失败。根据上述的配置, 提交变更代码触发Jenkins运行, Jenkins会通过html页面显示测试报告和Emma测试用例覆盖率的检查报告 ,如图7所示。通过CI测试报告, 可以看到3个测试用例全部成功, 但代码的覆盖率只达到80%左右, 故需要继续完善测试用例, 尽可能地提高代码覆盖率。如果编译未通过或者有失败的测试用例, 则开发人员应当第一时间修改代码, 再自动化构建一次, 直到构建成功为止。

通过该持续集成方案, 有利于提前发现项目中存在的问题, 可以按预期发布版本, 保证软件开发的质量。而且采用的都是开源的框架, 该方案具有开发周期短、花费小等优点,对于正在开发Android项目的公司具有很大帮助。

5 结语

提出了Android项目持续集成方案, 该方案主要以自动化测试为核心, 以较少的成本实施了该持续集成方案, 解决了Android项目的集成问题 , 可以帮助中小企业快速地实施持续集成。

android项目报告 第4篇

关键词:民办高校 Android 项目 优势

1.引言

Android是一种开源的操作系统平台[1]。目前越来越多的手机制造商、软件开发商、电信运营商以及芯片制造商支持Android平台,Android手机已占据了全球智能手机市场50%左右的份额。Android应用市场的需求越来越大,在这样的背景之下,在民办高校实施Android应用开发项目符合当前的行业背景和市场需求。

2.民办高校环境下项目实施的特点、优势

民办高校环境下实施Android软件开发项目具有以下的特点及优势:

(1)决策效率高、管理成本低:民办高校既具有事业单位高校的管理模式,又具企业的决策机构。在这样一个背景下实施项目可以决定其既具有较高的决策效率,又具有较低的管理成本,在校教师既可以服务于学校,又可以服务于项目,在管理成本方面具有先天的优势。

(2)项目的实施成本低:项目的实施包括了很多环节,其中比较具有优势的环节有:获取创意的低成本,高校本来就是一个各种思想活跃的地方,通过一些学生活动就可以获取一些奇特、新颖的想法,对这些想法进行加工、融合,可以挖掘出一些潜在市场需求;其次是获取技术资源和人力资源的成本低,高校的科研人员多,对智能终端技术感兴趣并且熟悉的师生多,具有丰富的技术储备和人力资源储备,在这方面的成本肯定会低于软件公司的成本。

[JP3](3)可以融合附加产业,产生效益:利用研究所,可以实施智能终端Android培训项目。在研究所发展壮大之后,在业务旺节可以集中人力和物力在产品的研发上面;在业务淡季,可以调配一些人力和物力实施一些与智能终端相关的培训项目,这种业务的目标受众,既可以是校内外感兴趣的学生团体,也可以是校外相关企业、机关的从业人员,配合与之相适应的招生模式和就业模式,相信会是一个比较有潜力的市场。

(4)销售渠道优势。民办高校的投资方通常具有多行业的投资背景,并且具有较好的社会关系。这对销售渠道的铺设提供了很多有利资源。

3.项目实施所要面对的困难和挑战

民办高校创建这样的一个项目通常会面临很多的困难和挑战,我从整个项目的实施流程来分析各个阶段所以面临的问题:

(1)在投入早期短时间内不会获得收益,公司或者研究所的建立初期,投入人力、财力过后不会马上出成果,每一个软件产品的研发过程都具有相对较长的周期,有几个月甚至一年以上的。在技术与人力配备充足的前提下,还需要一个好的创意(Idea),每一个软件产品的最困难之处就是Idea的获取,虽然高校有丰富的学生资源,有丰富的想法,但很多想法与创意是无法实施的,或者说是不现实的,并不能满足大众的需求,在目标人群的选择上面,我们会面对诸多问题。这样一个困惑期,目前我们无法去估算长短,只能通过脚踏实地的去摸索,多搞一些集思广益的活动,多做一些社会调查研究才能确定一个项目的Idea。

(2)有了一个好的Idea,接下来就是软件开发项目的实施,项目的实施会面很多风险。如资金短缺、项目进度延误、人员变更以及预算和进度等方面的问题。一方面,软件开发过程及软件产品都要面临各种决策的选择。另一方面,风险将涉及思想、观念、行为、地点等因素的改变。要对软件项目中的风险进行分析并采取相应的措施加以管理,尽可能减少风险造成的损失。软件项目开始之前要对风险进行充足的分析,软件项目的实施过程中一旦出现风险要及时采取应对措施,这些都可以避免软件开发项目的失败。

(3)行业竞争与盗版,以及知识产权问题。

由于Android系统是开源的,因此为应用商店市场带来了很多机会。目前,我国较大的Android应用商店有几十家,而Android论坛有上百家。中国互联网盗版现象非常严重,不仅盗版,还有扣费、改代码等,这些对整个项目来说都是具有较大的风险。

一个具有好的创意的应用软件,随着关注和感兴趣的用户越来越多,其被盗版或者仿制的可能性就会越来越大,当市面上有相同功能和性能的产品出现时,竞争压力就会越来越明显。一方面,我们希望软件的下载用户越来越多,被关注得越来越多,另一方面,我们防盗版的工作就会越来越复杂,这方面的投入也会越来越多,相应的知识产权问题就会越来越突现。这个时候我们就会面临取舍问题,是任由其他人进行复制,还是投入更多在防盗版上面,这都是一个很难的选择。中国互联网盗版现象,不是靠一个公司或者个人就可以解决的,所以这对一个应用软件产品来说也是一个棘手的问题。

4.结束语

民办高校环境下实施这样一个项目主要的优势还是在于税收成本、人力资源成本、研发成本以及最重要的渠道成本。这样一种创业模式类似于高校的科技孵化园,用最低的成本,最直接的方式把技术转化成生产力,产生经济效益的同时,提升学校形象,可以说既对学生有利,对教师有利也对投资者有利。即使这个项目不能马上产生明显的经济效益,长远来看也是民办高校发展模式的一种创新,民办高校大力投入科研经费,并且配套建科技孵化园的例子是不多见的,对我们来说,既是机遇,也是挑战。

参考文献:

[1]韩超, 梁泉.Android 系统原理及开发要点详解 [M]. 北京:电子工业出版社,2010(1).

android项目报告 第5篇

项目名称:APP文字创作与阅读平台.

开发人数:2人

负责内容: 首页模块,发现模块搭建

工具:android studio eclipse

主要技术点:1、使用ViewPager+Fragment来搭建整个应用的结构框架,去除了ViewPager的滑动切换功能,点击底部Tab标签时才进行模块切换。

2、首页使用顶部带轮播图的ListView展现推荐内容列表,并添加下拉刷新上拉加载功能。

可以拍照或选择本地相册中的图片作为帖子内容上传到服务器。

android项目报告 第6篇

总结android项目的基本开发步骤

做了几个android企业应用项目后,总结了项目的基本开发步骤,希望能够交流。一 应用规划:

-确定功能。

-必须的界面及界面跳转的流程。

-需要的数据及数据的来源及格式。

-是否需要服务端支持。

-是否需要本地数据库支持。

-是否需要特殊权限。

-是否需要后台服务。二 架构设计:

-分层。

-网络连接。

-数据处理-xml、domain。

-封装Activity。三 界面设计:

-主界面确定。

-模块界面、列表、查看、编辑界面。

-菜单、按钮、对话框、提示信息。

-界面总体颜色。四 数据操作和存储:

-数据来源。

-数据类型。

-存储方式。五 业务实现:

-客户端业务解析。六 页面跳转:

-每个页面间的跳转。

-菜单、按钮、事件等。

#开发之前还需要做一些准备工作

1.技术储备

a.Java

重要程度:❤❤❤❤❤-框架,编程思想,编码规范,设计模式等 b.Xml

重要程度:❤❤❤❤-布局,选择器,配置文件等

c.数据库

重要程度:❤❤❤-关系型数据库,SQLite

http:/// 2.开发工具

a.Eclipse或者AndroidStudio

b.Android SDK

c.其他:svn / git,JDK,资源,数据库,模拟器,真机等

#开发过程中还有以下的一些流程 1.多种开源框架和优秀源码的引用

-xUtils,Volley,Vitamio,SlidingMenu等 2.数据访问-访问框架-传递方式

3.多种API的接入-短信服务-即时通信

-消息推送-第三方登录等 4.后台开发

-后台的开发,为app提供接口-后台的云服务器

5.内存优化

-垃圾回收-

一、二级缓存-适配器的优化

-图片框架及资源的优化

6.多线程异步

-Handler-Asynctask

7.屏幕适配

#开发基本结束之后还有很多需要流程 1.多型号真机实测 2.云服务器优化 3.APK加密 4.数字签名 5.用户协议 6.应用平台 7.项目上线

8.应用推广和广告插入 9.版本更新和维护

android实验报告 第7篇

实验名称

音乐播放器

指导教师

实验成绩

2016 年04月

一、实验目的

本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点。

二、实验内容及要求

在其中写清楚这个实验具体要你做什么,怎么做,要达到什么样的效果等。本设计实现的主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,下一首,上一首播放列等基本播放控制功能,界面简明,操作简单。

三、实验方案设计

在其中写清楚你的程序的详细设计,用流程图配文字的形式描述。如果其中涉及到算法,一定要把算法阐述清楚。

3.1.1假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作,启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下

图2.1 播放器基本用例图

3.1.2用例分析 用例名称:启动软件 参与者:用户

目标:使得用户启动软件并加载手机和sd卡上的音频文件到播放列表 前置条件:无

基本事件流:1.用户启动软件

2.播放器将播放列表中的当前的歌曲

用例名称:播放 参与者:用户

目标:使得用户可以播放在播放列表中选中的歌曲 前置条件:播放器正在运行

基本事件流:1.用户单击“播放”按钮

2.播放器将播放列表中的当前的歌曲

用例名称:暂停 参与者:用户

目标:使得用户可以暂停正在播放的歌曲 前置条件:歌曲正在播放且未停止和暂停 基本事件流:1.用户单击“暂停”按钮

2.播放器将暂停当前的歌曲

④用例名称:停止 参与者:用户

目标:使得用户可以停止正在播放的歌曲 前置条件:歌曲正在播放或暂停 基本事件流:1.用户单击“停止”按钮

2.播放器将停止当前播放的歌曲

⑤用例名称:推出 参与者:用户

目标:使得用户退出或者后台播放音乐 前置条件:程序在运行

基本事件流:1.用户按返回键

2.播放器退出或者进入后台播放

四、实验测试

Step1.启动软件后,软件自动检索手机和sd卡的音频文件,并组织显示成列表.Step2.点击列表的歌曲名字。

Step3.播放音乐。

Step4.点击暂停,音乐暂停

Step5.点击播放 转到step3 Step6.点击停止 停止播放音乐

Step7.点击退出,若音乐处于播放状态,则音乐转向后台播放,界面退出。

Step8.点击退户,若音乐处于暂停或者停止状态,直接退出。

音乐播放器流程图

4.1MusicInfoController类

这个类继承于service,是播放音乐的服务类。播放音乐,暂停音乐,停止播放等操作都封装在这个类中。

主要的执行动作有:

4.1.1.类启动 onCreate(){

mMediaPlayer = new MediaPlayer();//分配一个播放对象

mMediaPlayer.setOnPreparedListener(mPrepareListener);//绑定之前

mMediaPlayer.setOnCompletionListener(mCompleteListener);//绑定之 后

}

4.1.2.服务绑定activity

MediaPlayer.OnCompletionListener mCompleteListener = new

MediaPlayer.OnCompletionListener()//实例化一个绑定监听器的匿名类

{

public void onCompletion(MediaPlayer mp)//完成绑定后

{

broadcastEvent(PLAY_COMPLETED);//广播消息

}

};

4.2MusicInfoController类

这个类主要用于获取android系统中的音频文件,并提供访问接口,它是一个单例类。

4.2.1获得播放文件列表

private Cursor query(Uri uri, String[] prjs, String selections, String[] selectArgs, String order){ ContentResolver resolver = pApp.getContentResolver();//取得一个连接对象if(resolver == null){

return null;

}

return resolver.query(uri, prjs, selections, selectArgs, order);} public Cursor getAllSongs(){

return query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);//查询ContentResolver 的所有音频文件

} 4.3MusicList类

改类继承于ListActivity,主要用于显示歌曲列表,并且封装部分操作,以及与父级目标通信。

4.3.1播放

protected void onListItemClick(ListView l, View v, int position, long id){ //歌曲列表的某项被点击

super.onListItemClick(l, v, position, id);

if(mCursor == null ||mCursor.getCount()== 0){

return;

}

mCursor.moveToPosition(position);//游标移动到当前路径

String url = mCursor.getString(mCursor

.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));//取得绝对路径

mMusicPlayerService.setDataSource(url);//传递绝对路径

mMusicPlayerService.start();//播放音乐

}

4.3.2暂停/播放

mPlayPauseButton.setOnClickListener(new Button.OnClickListener(){

public void onClick(View v){

if(mMusicPlayerService!= null &&

mMusicPlayerService.isPlaying()){

mMusicPlayerService.pause();//音乐播放的服务暂停

mPlayPauseButton.setText(R.string.play);//改变按钮文字

} else if(mMusicPlayerService!= null){

mMusicPlayerService.start();//如果已经是暂停,则播放音乐

mPlayPauseButton.setText(R.string.pause);//改变文字

}

}

});

4.3.3停止

mStopButton.setOnClickListener(new Button.OnClickListener(){

public void onClick(View v){

// Perform action on click

if(mMusicPlayerService!= null){

mTextView.setVisibility(View.VISIBLE);//改变文字状态

mPlayPauseButton.setVisibility(View.INVISIBLE);//隐藏按钮

mStopButton.setVisibility(View.INVISIBLE);//隐藏停止按钮

mMusicPlayerService.stop();//后台音乐停止播放

}

}

});4.4MusicPlayerApp类

该类继承与Application,是程序的生存类。可以标识音乐播放器的生命周期,包括音乐在后台播放等。

4.4.1单例模式

public void onCreate(){

super.onCreate();

mMusicInfoController = MusicInfoController.getInstance(this);//返回该类的一个唯一实例

}

public MusicInfoController getMusicInfoController(){

return mMusicInfoController;}

五、程序的使用手册

系统编译生成apk文件,将apk文件拷到手机或者sd卡中,直接打开即可安装,或者安装360手机助手通过usb调试的方式进行安装。

启动软件后,加载歌曲列表现在这个界面上,如01表示歌曲名,unknown表示歌曲的演唱者

软件启动界面

从加载的歌曲列表中点击要播放的歌曲,开始播放

音乐播放界面

六、心得体会

android项目报告 第8篇

1 Java相关信息

Java[2]是由sun公司创造和开发的一门完全面向对象的开发语言,于1995年5月Java语言正式发布。由于Java语言高效的网络编程、可移植性和支持多线程等优点,使得Java语言迅速得到发展。自1999年Sun公司将Java划分成三个平台:J2ME[3]、J2SE[4]和J2EE[5],分别对应移动设备开发、桌面级程序开发和企业级应用开发。

随着Symbian联盟的解体,J2ME平台的开发也随之走到了尽头,但是Android[6]平台的出现,让Java在移动平台开发上重新焕发出了新的生命力。

与C/C++相比,Java舍去了goto这种不合理的关键字;抛弃了容易造成安全漏洞的指针,提供了内存的自动管理机制,从而提高了Java程序的可靠性。而且Java语言语法简单,使得学生进行Java程序开发十分容易。

2 传统教学模式的缺点

随着计算机和多媒体技术的普及,传统的黑板教学方式演变成了多媒体教学。生动形象的多媒体教学给教学方式带了极大的改变,但是面对Java这种实践性极强的课程,多媒体教学显得有气无力。对Java课程的讲述内容可以进行分析。

从表1可以看出对实践性特别强的课程,仅仅是通过多媒体教学是无法改善“教”与“学”之间存在的差异,也无法让学生真正体会到Java语言的魅力。

3 现有的一些改进教学模式

“想知道梨子的滋味,只有亲口尝一尝”。为了提高课堂教学效果和学生的动手能力,很多学校都开设了实验课和课外兴趣小组[7],但是效果仍旧不明显,学生的动手能力并没有得到显著提高,究其原因有以下几点:

1)实验课时少,学生的动手能力没有充分发挥;

2)试验课程内容分配不合理,实验课枯燥无味;

3)每次实验课老师和学生都是一对多,不能照顾到每个同学,学生的兴趣不高;

4)由于在学习知识过程中遇到挫折,由于学习的惰性,使得学生在困难面前失去动力,不愿意付出努力,最终以背课本应付考试了事。

4 Android的优势

Android是Google开发的基于Linux平台的开源手机操作系统,主要使用于移动设备,具有很好的开放性,更重要的是Android支持Java语言,同时Android平台提供给第三方开发商一个十分自由的环境。

1)使开发人员不会受到各种条条框框的限制,提高了开发人员的积极性。

2)很多公司提供了商用化的平台,可以为开发者提供一个交易的平台,使得开发人员能够从中获得经济利益。

Android开发环境安装十分方便,在Windows操作系统中安装好开发环境一般分成两个部分;第一部分是Eclipse和JDK的安装,对Eclipse安装十分简单,通过解压缩即可,选择好workspace则完成了Eclipse的安装;第二部分则是Android SDK的安装和配置。

在现有市场情况下中国移动的移动应用商城、安卓商城等应用商城为开发人员提供了交易的平台,个人也可以和商城签订协议,上传自己开发的软件。

Android项目开发难度简单,周期较短,对于在校学生而言,既可以通过Android项目来提高自身的动手能力,又可以通过完成的项目来增加自己的经济收入,最重要的是能够将理论和实际相结合,真正做到学以致用。

基于上述情况提出一种基于Android项目驱动的教学方法,在完成教学大纲的教学任务下,加强学生的课外训练,通过项目来训练学生的动手能力,以市场来引导学生的兴趣和创业意识[8,9]。

5 总结

以上是对Java程序课程教学方法的一点建议,通过一段时间的引导,克服了学生在学习程序设计课程中畏难情绪和兴趣不高等问题,增加了学生的知识面和对市场的了解,培养了学生的创业意识和成才的愿望。

摘要:Java课程是一门实践性较强的课程,要求大学生在学习时要有较强的动手能力。传统的教学模式无法提高学生的学习积极性,流程化的实验课程也无法提高学生的动手能力。针对传统教学方法和实验课程的一些缺点和弊端,提出了一种基于Android的教学方法,提高了学生的兴趣和动手能力,培养了大学生的创业意识,有效的改善了Java教学的弊端。

关键词:Java,动手能力,学习兴趣,传统教学,创业意识,Android

参考文献

[1]教育部.国家中长期教育改革和发展规划纲要(2010-2020年)[EB/OL].http://www.gov.cn/jrzg/2010-06/06/content_1621777.htm.

[2]刘宝林.Java程序设计与案例[M].北京:高等教育出版社,2004.

[3]张晓蕾.J2ME手机游戏设计案例教程[M].北京:电子工业出版社,2009.

[4]何广军,杨昱昺.J2SE项目开发教程[M].北京:北京大学出版社,2012.

[5]余浩东.J2EE应用框架设计与项目开发[M].北京:清华大学出版社,2008.

[6]刘浦迎.Android移动编程实用教程[M].北京:电子工业出版社,2012.

[7]王彦本,杨武军.程序设计系列课程教学改革实践[J].西安邮电学院学报,2009,14(5):161-163.

[8]李元元.开放环境下的研究型大学拔尖创新人才培养模式构建[J].现代教育管理,2011(5):98-101.

android项目报告 第9篇

【关键词】Android应用开发 项目化教学 改革

一、项目化课程的背景

Android应用软件开发人才不仅需要具有较强的理论知识,还必须具备较强的动手能力。为了配合Android移动互联方向课程体系的教学实施,学校与企业合作,共同进行《Android应用软件开发》课程建设,以真实的项目案例辅助相关课程进行课程教学,使学生能够接触真实的企业开发环境,按照移动互联企业的开发规范要求进行相关项目的开发,在提升动手能力的同时提升学生的就业能力,实现从学习者到工作者的角色转变。

二、项目的选择与优化

项目的主要来源是岗位工作任务,通过工作任务分析,了解学生的主要工作岗位及工作范圍、应该具备的能力等,从而确定项目的目标。项目的选择,知识的分配都围绕职业能力的实现。《Android应用软件开发》课程项目设置见表。

三、项目课程的教学实施

《Android应用软件开发》课程项目教学案例之一, 通过开发Android手机天气预报项目让学生掌握利用Android的网络编程技术获取数据。

(一)明确项目任务

本任务就是要通过手机调用外部API来获得天气信息。

(二)项目开发小组组建

项目确定以后,将全班分成若干项目开发小组。小组人数根据项目的情况以5至8人为宜。项目开发小组设立 “项目经理”一人,负责本组项目任务的落实和完成。

(三)项目分析

根据项目的总体目标,各开发小组在项目经理的主持下,把总项目分解为一个个工作任务,并填写项目分析表。

(四)项目方案实施

在项目经理的主持下,依据实施方案,对小组成员进行合理分工。

(五)项目的评估反馈

项目的评估采用公开答辩的方法。主要介绍的是小组设计APP运用的工具、知识与技能和锻炼的能力效果,并针对评委提出的问题进行解答。

四、 结束语

实施项目化教学,采用了课堂学习、小组学习、个人学习等多位一体的教学组织形式,为学生创造了多元化的学习途径。且在此过程中巧妙地渗入了协作精神、竞争意识与创新能力的培养。每人有自己的工作任务,学生参与率高,效果好。学习兴趣得到激发,学习热情空前提高,自信心增强,极大地提高了学习效率和学习效果。

【参考文献】

[1]赵志群.职业教育与培训学习新概念[M].北京:科学技术出版社,2003.

Android大作业报告 第10篇

发 大作业报告

姓 名: 学 号: 班 级: 院 系: 日 期:

任课教师:

一、程序的运行环境、安装步骤

1、运行环境 游戏运行环境:Android1.5以上版本

2、程序的组成部份:

2.1、JDK安装

1.我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量: 2.JAVA_HOME值为: D:Program FilesJavajdk1.6.0_18(你安装JDK的目录)3.CLASSPATH值为:.;%JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;%JAVA_HOME%bin;4.Path: 在开始追加 %JAVA_HOME%bin;5.NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。

安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入java –version 查看JDK的版本信息。出现类似下面的画面表示安装成功了:

2.2、Eclipse安装 2.3、Android SDK安装

在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的“Force https://...”这项,再点击Available Packages。

选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包

在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:AndroidDevelopandroid-sdk-windowstools)。image图

2、设置Android SDK的环境变量

“确定”后,重新启动计算机。重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。

运行 android –h 如果有类似以下的输出,表明安装成功:

3、验证Android SDK是否安装成功

2.4、ADT安装

打开 Eclipse IDE,进入菜单中的 “Help”-> “Install New Software” 点击Add...按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入http://dl-ssl.google.com/android/eclipse。如下图所示:

确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。如下图所示:

然后就是按提示一步一步next。完成之后:

选择Window > Preferences...在左边的面板选择Android,然后在右侧点击Browse...并选中SDK路径,本机为:

D:AndroidDevelopandroid-sdk-windows点击Apply、OK。配置完成。2.5、创建AVD 为使Android应用程序可以在模拟器上运行,必须创建AVD。

1、在Eclipse中。选择Windows > Android SDK and AVD Manager

2、点击左侧面板的Virtual Devices,再右侧点击New

3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值

4、点击Create AVD即可完成创建AVD 注意:如果你点击左侧面板的Virtual Devices,再右侧点击New,而target下拉列表没有可选项时,这时候你:

点击左侧面板的Available Packages,在右侧勾选https://dl-ssl.google.com/android/repository/repository.xml,如下图所示:

然后点击Install Selected按钮,接下来就是按提示做就行了

要做这两步,原因是在1.3、Android SDK安装中没有安装一些必要的可用包(Available Packages)。2.5、创建Android工程

三、程序开发平台

(1)代码行数:1000

(2)开发环境:Android Developer Tools Build: v22.6.2-1085508

apache-ant-1.9.3

四、程序功能说明:

单机屏幕按住不放可以拖动魔方转动,魔方上下左右空白处可以转动魔方相对那一面。

五、应用核心源码

class MFtestSurfaceView extends GLSurfaceView {

private MFtestRenderer mRenderer;

private float mPreviousX;

private float mPreviousY;//上一次的点

private float mDownPreviousX;

private float mDownPreviousY;//上一次的Down点

// private int oldDownX;

// private int

private float theta;

private float fai;//球坐标

public MFtestSurfaceView(Context context){

super(context);

theta=(float)3.14159/4;

fai=(float)3.14159/4;

// Set the Renderer for drawing on the GLSurfaceView

mRenderer = new MFtestRenderer();

setRenderer(mRenderer);

setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);

}

@Override

public boolean onTouchEvent(MotionEvent e){

// MotionEvent reports input details from the touch screen

// and other input controls.In this case, you are only

// interested in events where the touch position changed.float x = e.getX();

float y = e.getY();

switch(e.getAction()){

case MotionEvent.ACTION_MOVE://如果是 移动的话

float dx = xmPreviousY;//x,y的变换值(不是0,就是1)

float te=theta;

theta=theta+dy/100;//角度是弧度值

if(!(theta>0&&theta<3.14159))

{

theta=te;//法线始终向上

}

fai=fai+ dx/100;

//x=rsinθcosφ

mRenderer.eyez=(float)(3*Math.sin(theta)*Math.cos(fai));

//y=rsinθsinφ

mRenderer.eyex=(float)(3*Math.sin(theta)*Math.sin(fai));

////z=rcosθ

利用球坐标使观察点始终维持在半径为3的球上

mRenderer.eyey=(float)(3*Math.cos(theta));

requestRender();

//System.out.println(x+“

”+y);

break;

case MotionEvent.ACTION_DOWN:

mDownPreviousX=x;

mDownPreviousY=y;

break;

case MotionEvent.ACTION_UP:

if((((x-mDownPreviousX)>-5)&&((x-mDownPreviousX)<5))&&(((y-mDownPreviousY)>-5)&&((y-mDownPreviousY)<5)))//(((x-mDownPreviousX)>-3)||((x-mDownPreviousX)>-3))&&(((y-mDownPreviousY)>-3)||((y-mDownPreviousY)>-3))

{

//System.out.println(x-mDownPreviousX);

if(x

<(mRenderer.width*(1-Math.sqrt(18)/6)/2))

{

//左

//System.out.println(x+“

”+y);

mRenderer.action = 1;

DrawAnimation();

}

else if(x

>

mRenderer.width-(mRenderer.width*(1-Math.sqrt(18)/6)/2))

{

//右

//System.out.println(x+“

”+y);

mRenderer.action = 2;

DrawAnimation();

}

else if(y

<

mRenderer.height/2.0-!)

switch(mRenderer.action){

case 1:

if((mRenderer.eyex > 0)&&(mRenderer.eyez > 0)){

mRenderer.move=76;

}

else if((mRenderer.eyex > 0)&&(mRenderer.eyez < 0)){

mRenderer.move=70;

}

else if((mRenderer.eyex < 0)&&(mRenderer.eyez < 0)){

mRenderer.move=82;

}

else if((mRenderer.eyex < 0)&&(mRenderer.eyez > 0)){

mRenderer.move=66;

}

break;

case 2:

if((mRenderer.eyex > 0)&&(mRenderer.eyez > 0)){

mRenderer.move=66;

}

else if((mRenderer.eyex > 0)&&(mRenderer.eyez < 0)){

mRenderer.move=76;

}

else if((mRenderer.eyex < 0)&&(mRenderer.eyez < 0)){

mRenderer.move=70;

}

else if((mRenderer.eyex < 0)&&(mRenderer.eyez > 0)){

mRenderer.move=82;

}

break;

case 3:

mRenderer.move=85;

break;

case 4:

mRenderer.move=68;

break;

}

}

private void memcpy(int one,int two){

mRenderer.face_color[one]=mRenderer.face_color[two];

mRenderer.face_color[one+1]=mRenderer.face_color[two+1];

mRenderer.face_color[one+2]=mRenderer.face_color[two+2];

}

private void LeftShift(int a,int b,int c,int d){

// a

float temp1=mRenderer.face_color[a];

float temp2=mRenderer.face_color[a+1];

float temp3=mRenderer.face_color[a+2];

memcpy(a,b);

memcpy(b,c);

memcpy(c,d);

mRenderer.face_color[d]= temp1;

mRenderer.face_color[d+1]=temp2;

mRenderer.face_color[d+2]=temp3;

} }

private void DrawRotation(GL10 gl){

// 绘制小立方体

switch(move){ case 70: DrawCube19(gl);DrawCube11(gl);DrawCube2(gl);DrawCube22(gl);DrawCube13(gl);DrawCube5(gl);DrawCube25(gl);DrawCube16(gl);DrawCube8(gl);DrawCube18(gl);DrawCube10(gl);DrawCube1(gl);DrawCube21(gl);DrawCube4(gl);DrawCube24(gl);DrawCube15(gl);

gl.glPushMatrix();gl.glRotatef(-angle,0.0f,0.0f,1.0f);DrawCube0(gl);DrawCube9(gl);DrawCube17(gl);DrawCube3(gl);DrawCube12(gl);DrawCube20(gl);DrawCube6(gl);DrawCube14(gl);

DrawCube7(gl);

DrawCube23(gl);

gl.glPopMatrix();break;case 66: DrawCube0(gl);DrawCube9(gl);DrawCube17(gl);DrawCube3(gl);DrawCube12(gl);DrawCube20(gl);DrawCube6(gl);DrawCube14(gl);

DrawCube23(gl);DrawCube18(gl);DrawCube10(gl);DrawCube1(gl);

DrawCube21(gl);DrawCube4(gl);DrawCube24(gl);DrawCube15(gl);DrawCube7(gl);

gl.glPushMatrix();

gl.glRotatef(angle,0.0f,0.0f,1.0f);

DrawCube19(gl);DrawCube11(gl);DrawCube2(gl);DrawCube22(gl);

DrawCube13(gl);DrawCube5(gl);DrawCube25(gl);DrawCube16(gl);DrawCube8(gl);

gl.glPopMatrix();

break;

case 85:

DrawCube3(gl);DrawCube23(gl);DrawCube24(gl);DrawCube25(gl);

DrawCube4(gl);DrawCube5(gl);DrawCube6(gl);DrawCube7(gl);

DrawCube8(gl);DrawCube12(gl);DrawCube13(gl);DrawCube14(gl);

DrawCube15(gl);DrawCube16(gl);DrawCube20(gl);DrawCube21(gl);DrawCube22(gl);

gl.glPushMatrix();

gl.glRotatef(-angle,0.0f,1.0f,0.0f);

DrawCube0(gl);DrawCube1(gl);DrawCube2(gl);DrawCube9(gl);

DrawCube10(gl);DrawCube11(gl);DrawCube17(gl);DrawCube18(gl);DrawCube19(gl);

gl.glPopMatrix();

break;

case 68:

DrawCube0(gl);DrawCube1(gl);DrawCube2(gl);DrawCube3(gl);

DrawCube4(gl);DrawCube5(gl);DrawCube9(gl);DrawCube10(gl);

DrawCube11(gl);DrawCube12(gl);DrawCube13(gl);DrawCube17(gl);

DrawCube18(gl);DrawCube19(gl);DrawCube20(gl);DrawCube21(gl);DrawCube22(gl);

gl.glPushMatrix();

gl.glRotatef(angle,0.0f,-1.0f,0.0f);

DrawCube6(gl);DrawCube7(gl);DrawCube8(gl);DrawCube14(gl);

DrawCube15(gl);DrawCube16(gl);DrawCube23(gl);DrawCube24(gl);DrawCube25(gl);

gl.glPopMatrix();

break;

case 82:

DrawCube9(gl);DrawCube10(gl);DrawCube11(gl);DrawCube25(gl);

DrawCube12(gl);DrawCube13(gl);DrawCube14(gl);DrawCube15(gl);

DrawCube16(gl);DrawCube17(gl);DrawCube18(gl);DrawCube19(gl);

DrawCube20(gl);DrawCube21(gl);DrawCube22(gl);DrawCube23(gl);DrawCube24(gl);

gl.glPushMatrix();

gl.glRotatef(-angle,1.0f,0.0f,0.0f);

DrawCube0(gl);DrawCube1(gl);DrawCube2(gl);DrawCube3(gl);

DrawCube4(gl);DrawCube5(gl);DrawCube6(gl);DrawCube7(gl);DrawCube8(gl);

gl.glPopMatrix();

break;

case 76:

DrawCube0(gl);DrawCube1(gl);DrawCube2(gl);DrawCube3(gl);

DrawCube4(gl);DrawCube5(gl);DrawCube6(gl);DrawCube7(gl);

DrawCube8(gl);DrawCube9(gl);DrawCube10(gl);DrawCube11(gl);

DrawCube12(gl);DrawCube13(gl);DrawCube14(gl);DrawCube15(gl);DrawCube16(gl);

gl.glPushMatrix();

gl.glRotatef(-angle,-1.0f,0.0f,0.0f);

DrawCube17(gl);DrawCube18(gl);DrawCube19(gl);DrawCube20(gl);

DrawCube21(gl);DrawCube22(gl);DrawCube23(gl);DrawCube24(gl);DrawCube25(gl);

gl.glPopMatrix();

break;

default:

break;

}

六、工程运行效果截图

10月20日 查找Android开发的配置及流程 10月22日 查找资料确定要使用的算法与数据结构 10月23日 系统设计 10月24日 开始编码

10月28日 游戏基本功能完成,进入测试阶段 11月2日 程序开发完成,编写文档

八、总结

相关文章
备自投装置范文

备自投装置范文

备自投装置范文(精选11篇)备自投装置 第1篇备用自投装置是当工作电源因故障或其他原因断开后, 能迅速自动启动备用电源或其他正常工作电...

1
2025-09-14
巴西的世界杯之旅

巴西的世界杯之旅

巴西的世界杯之旅(精选10篇)巴西的世界杯之旅 第1篇作为当代世界公认的第一大运动——足球的最高水平赛事, 每届国际足联世界杯的举办都...

2
2025-09-14
部门趣味运动会总结

部门趣味运动会总结

部门趣味运动会总结(精选14篇)部门趣味运动会总结 第1篇一、活动主题社团联合会部门联谊趣味运动会二、活动背景及目的在社联旗下有五部...

1
2025-09-14
病理生理学病名词解释

病理生理学病名词解释

病理生理学病名词解释(精选4篇)病理生理学病名词解释 第1篇兽医病理生理学名词解释重点掌握1.疾病:在一定病因的作用下,因机体自稳调节...

1
2025-09-14
保卫处个人工 作 总 结

保卫处个人工 作 总 结

保卫处个人工 作 总 结(精选10篇)保卫处个人工 作 总 结 第1篇2009年个人总结本人张XX,参加工作来一直都在学校保卫部门工作,多...

1
2025-09-14
毕业寄语初中给同桌

毕业寄语初中给同桌

毕业寄语初中给同桌(精选12篇)毕业寄语初中给同桌 第1篇初中毕业寄语精选10条(给同学)1、高尚的理想是人生的指路明灯。有了志向,生活就...

1
2025-09-14
变压器故障分析与预防

变压器故障分析与预防

变压器故障分析与预防(精选10篇)变压器故障分析与预防 第1篇在过去的10年中, 在造成故障的起因中, 绝缘老化列在第一位。由于绝缘老化...

1
2025-09-14
保护孩子的议论文

保护孩子的议论文

保护孩子的议论文(精选14篇)保护孩子的议论文 第1篇关于孩子——保护的躯壳文/浩涛身为父母者保护自己的孩子既是本能,也是责任。让自己...

1
2025-09-14
付费阅读
确认删除?
回到顶部