Android大作业报告
- 格式:doc
- 大小:1.30 MB
- 文档页数:16
移动设备软件应用与开发大作业报告姓名:学号:班级:院系:日期:任课教师:一、程序的运行环境、安装步骤1、运行环境游戏运行环境:Android1.5以上版本2、程序的组成部份:2.1、JDK安装1.我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:2.JAVA_HOME值为:D:\Program Files\Java\jdk1.6.0_18(你安装JDK的目录)3.CLASSPATH值为:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.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:\AndroidDevelop\android-sdk-windows\tools)。
android大作业总结Android大作业总结是一个广泛的话题,因此我将从多个角度来回答你的问题。
首先,Android大作业是一个重要的学习项目,通过完成这个项目,学生可以深入了解Android开发的各个方面,包括UI设计、数据存储、网络通信等。
在完成Android大作业的过程中,我学到了许多知识和技能,包括如何使用Android Studio进行开发、如何设计和实现用户界面、如何处理数据和与后端进行交互等。
其次,Android大作业是一个综合性的项目,要求学生综合运用所学的知识和技能来完成一个完整的应用程序。
在我的Android 大作业中,我选择了一个实用的应用场景,并设计了相应的功能和界面。
在开发过程中,我遇到了许多挑战,例如如何处理不同屏幕尺寸的适配、如何优化应用的性能等。
通过解决这些问题,我提高了自己的解决问题的能力和技巧。
此外,Android大作业也是一个团队合作的机会。
在我的Android大作业中,我和我的团队成员密切合作,共同完成了项目的开发。
我们通过分工合作,每个人负责不同的模块,然后将它们整合到一起。
通过这个过程,我学会了如何与他人合作、如何有效地沟通和协调工作。
最后,Android大作业也是一个展示自己能力的机会。
通过将自己的作品展示给他人,我能够展示自己的技术能力和创造力。
同时,通过他人的反馈和评价,我可以了解到自己的不足之处,并不断改进和提升自己。
综上所述,Android大作业对于学生来说是一个重要的学习和实践机会。
通过完成这个项目,学生可以学到许多知识和技能,提高自己的解决问题的能力和团队合作能力,同时也能展示自己的能力和创造力。
我相信通过参与Android大作业,我已经取得了很大的进步,并为将来的学习和工作打下了坚实的基础。
<<Web开发技术>>大作业设计题目:Web开发技术实验学院:专业:班级:1班2班姓名:学号:2姓名:学号:2姓名:学号:2姓名:学号:22015年月日山东科技大学实验一页面跳转一、实验目的通过使用Java语言,在Android环境下实现页面跳转,加深对Android开发的理解。
二、实验环境:Windows8.1 64位系统+ Android Developer Tools三、实验步骤:1.新建项目工程android,框线部分为整个项目要完成的代码和配置部分:2.拖拽button和textfield到activity_index.xml画布上,位置如图:3.编写代码Index.java划线部分的代码:4.Scancode.java接收片段代码,拖拽一个text field接收:5.查看修改android Manifest.xml文件,如下图:四、实验结果实验二URI跳转一、实验目的实现URI跳转即百度链接跳转,加深对Android开发的理解,为后面的学习奠定基础。
二、实验环境:Windows8.1 64位系统+ Android Developer Tools三、实验步骤:1.新建activity: Summary.java:2.添加页面及代码:四、实验结果1.完成页面如图:2.跳转至百度页面所示如图:实验三TextView超链接一、实验目的添加TextView超链接,加深对Android开发所使用控件的理解,全面掌握Android开发所使用的各种控件。
二、实验环境:Windows8.1 64位系统+ Android Developer Tools三、实验步骤:1.打开Form Widgets,将TextView拖到画布上:四、实验结果所添加的TextView超链接如图所示:实验四TextView改变样式一、实验目的改变TextView样式,对控件进行更进一步的修改,全面掌握Android开发过程中的页面布局。
android实训报告在过去的几个月里,我参加了一项关于Android开发的实训项目。
本报告将详细介绍这个实训项目的背景、目标和我的学习成果。
一、背景介绍本实训项目是由我们学校与一家知名科技公司合作举办的。
旨在培养学生在移动应用开发领域的技能和实践能力。
我们参与项目的学生被分成小组,每个小组负责开发一个Android应用。
二、项目目标1. 学习并应用Android开发的基本原理和技术2. 培养团队合作、沟通和项目管理能力3. 完成一个具有实用价值的Android应用,并发布到应用商店三、实训过程1. 阶段一:准备在这一阶段,我们小组进行了一些前期准备工作,包括确定项目的主题、功能和设计方案。
我们还进行了一些市场调研,以确保我们的应用有一定的竞争力和市场前景。
2. 阶段二:开发在这个阶段,我们小组开始着手开发我们的Android应用。
我们使用了Android Studio这一常用的开发工具,并应用了Java语言进行编码。
我们按照预定的计划和分工,逐步实现应用的各项功能,并对代码进行了持续的测试和调试。
在开发过程中,我们遇到了一些技术难题和挑战。
比如,如何与后台服务器进行数据交互、如何优化应用的性能等。
但通过查找资料、请教老师和同学,我们最终克服了这些问题,进一步提高了我们的开发能力。
3. 阶段三:测试和优化应用开发完成后,我们小组进行了全面的测试,包括功能测试、性能测试和用户体验测试。
通过测试,我们发现了一些潜在的问题和改进空间,并对应用进行了优化和调整,以提高其稳定性和用户满意度。
四、学习成果通过参与这个Android实训项目,我收获了很多宝贵的学习经验和技能。
以下是我在这个项目中所获得的具体学习成果:1. 掌握了Android开发的基本原理和技术,包括UI设计、数据存储、网络通信等方面。
2. 提高了编码能力和解决问题的能力,学会了快速查找和应用开发资源。
3. 锻炼了团队合作和沟通能力,学会了协调分工和处理冲突。
android实验报告心得体会《Android 实验报告心得体会》在大学的学习生涯中,我有幸参与了 Android 实验课程。
这可不是一般的课程,它就像一场刺激的冒险,让我在代码的世界里摸爬滚打,有欢笑,有泪水,更多的是满满的收获。
还记得第一次走进实验室,看到那一排排电脑整齐地摆放着,我心里既兴奋又紧张。
兴奋的是终于能亲手实践 Android 开发,紧张的是担心自己搞不定那些复杂的代码和操作。
老师简单介绍了实验的目的和要求后,就把我们“丢”进了代码的海洋,让我们自己去探索。
我选择的第一个实验项目是开发一个简单的记账 APP。
听起来好像不难,但真正做起来,那可真是状况百出。
首先是界面设计,我原本想象着能做出一个简洁美观的界面,结果弄出来的东西简直惨不忍睹。
按钮大小不一,颜色搭配怪异,布局更是乱七八糟。
我这才明白,原来设计一个让人看着舒服的界面也不是一件容易的事儿。
我一边对照着教材,一边在网上搜索相关的教程,一点点地修改调整。
经过无数次的尝试,终于让界面看起来像那么回事儿了。
接下来就是功能实现部分,这才是真正的挑战。
我要让这个 APP 能够记录收入和支出,还要能进行分类统计和数据存储。
写代码的时候,总是会出现各种各样的错误。
有时候少了一个括号,有时候变量名写错了,最崩溃的是有时候找了半天也不知道错在哪儿。
每当这个时候,我就会抓耳挠腮,恨不得把电脑砸了。
但冷静下来后,还是得耐着性子一行一行地检查代码。
在实现数据存储功能的时候,我遇到了一个大难题。
怎么才能把用户输入的数据安全地保存起来呢?我尝试了几种不同的方法,都不太理想。
最后,在同学的帮助下,我才找到了合适的解决方案。
那一刻,我真的是感激涕零啊,深深地体会到了团队合作的重要性。
经过几天的努力,我的记账 APP 终于初见雏形。
当我第一次成功地在手机上运行它,并且能够顺利地进行记账操作时,那种成就感简直无法用言语来形容。
我兴奋地向周围的同学展示我的成果,心里充满了自豪。
Android实训实习报告总结《Android 实训实习报告总结》在当今数字化的时代,移动应用的开发成为了技术领域的热门方向之一。
作为一名对移动开发充满热情的学习者,我有幸参与了 Android 实训实习,这段经历不仅让我深入了解了 Android 开发的技术和流程,更让我在实践中提升了自己的能力,也让我对未来的职业发展有了更清晰的规划。
在实训实习的开始阶段,我对 Android 开发的概念还比较模糊。
通过老师的耐心讲解和指导,我逐渐了解到 Android 是一个基于 Linux 内核的开源移动操作系统,其应用开发主要使用Java 或Kotlin 编程语言。
对于从未接触过这两种语言的我来说,这无疑是一个巨大的挑战。
但我深知,只有克服这些困难,才能真正掌握 Android 开发的精髓。
为了尽快上手,我开始系统地学习 Java 和 Kotlin 的基础知识。
从变量、数据类型、控制结构到面向对象编程的概念,每一个知识点我都认真钻研,通过大量的代码练习来加深理解。
同时,我还利用在线课程和技术论坛,与其他开发者交流经验,解决在学习过程中遇到的问题。
在掌握了基本的编程语言知识后,我开始着手进行实际的项目开发。
我们的第一个项目是开发一个简单的记事本应用。
这个应用虽然功能相对简单,但却涵盖了 Android 开发的许多基本概念,如界面布局、数据存储、菜单操作等。
在开发过程中,我遇到了不少问题。
例如,如何设计一个简洁美观的用户界面,如何实现数据的持久化存储,以及如何处理不同屏幕尺寸的适配问题。
通过查阅文档、参考开源项目和向老师同学请教,我逐渐解决了这些问题,最终成功完成了记事本应用的开发。
随着项目经验的积累,我开始参与更复杂的应用开发。
其中,让我印象最深刻的是一个基于地图的导航应用。
这个项目不仅要求具备扎实的Android 开发技术,还需要了解地图API 的使用和地理定位技术。
在开发过程中,我遇到了诸如地图加载缓慢、定位不准确等问题。
android实训报告Android实训报告1. 简介Android实训报告旨在总结本次实训的学习和实践成果。
本次实训围绕Android应用开发展开,通过理论学习和实际操作,提升了我们对Android开发的理解和技能。
本报告将依次介绍实训的目标、内容、过程和成果。
2. 实训目标本次实训的主要目标是使学员能够掌握Android应用开发的基础知识和技能,并能够利用所学知识独立设计、开发和调试简单的Android 应用。
通过实践操作,提升学员在开发过程中的问题解决和团队协作能力。
3. 实训内容实训内容主要包括以下几个方面:3.1 Android开发环境的搭建:学员需要了解Android开发环境的基本概念和组成部分,完成开发环境的安装和配置。
3.2 Android应用的基本架构:学员需要了解Android应用的基本结构和组成,包括活动、布局、资源等概念,并能够编写简单的Android 应用。
3.3 常用控件和布局:学员需要学习Android中常用的控件和布局,掌握它们的使用方法和属性设置。
3.4 数据存储与管理:学员需要了解Android中数据存储和管理的方式,包括文件存储、数据库等,并能够实现数据的读取和更新。
3.5 与网络交互:学员需要学习如何在Android应用中与网络进行交互,包括发送HTTP请求、解析服务器响应等。
3.6 完整应用的开发:学员需要根据实际需求,独立设计并开发一个完整的Android应用,包括界面设计、功能实现等。
4. 实训过程本次实训总计持续了六周时间,分为理论学习和实践操作两个阶段。
在理论学习阶段,我们通过课堂教学、讲座和自主学习,掌握了Android应用开发的基本概念和技能。
在实践操作阶段,我们按照实训要求,完成了一系列的实践任务,提升了我们的实际操作能力。
同时,我们还组成了小组,在团队合作中解决问题、优化应用的性能和用户体验。
5. 实训成果通过本次实训,我们取得了丰硕的成果:5.1 理论知识的掌握:我们通过理论学习,对Android应用开发的基础知识有了深入的了解,掌握了应用开发的基本流程和技巧。
第1篇一、前言随着移动互联网的快速发展,安卓系统凭借其开放、自由的特点,已经成为全球最受欢迎的操作系统之一。
为了更好地适应这一趋势,提升自身的技术能力,我参加了安卓开发实践课程。
通过近一个月的学习和实践,我对安卓开发有了更深入的了解,以下是我对本次实践的心得体会。
二、实践过程1. 理论学习在实践开始之前,我首先对安卓开发的相关理论知识进行了学习。
主要包括Android系统架构、开发环境搭建、Java编程基础、Android UI设计、事件处理等。
通过学习,我对安卓开发的基本流程有了初步的认识。
2. 实践项目在理论学习的基础上,我选择了一个简单的安卓应用项目进行实践。
项目要求实现一个具备基本功能的记事本应用,包括添加、删除、编辑、查询等功能。
在实践过程中,我遇到了以下问题:(1)布局文件编写:在编写布局文件时,我学会了使用相对布局、线性布局等布局方式,实现了应用界面美观、功能布局合理。
(2)数据存储:为了实现记事本数据的持久化存储,我学习了SQLite数据库的使用,实现了数据的增删改查。
(3)事件处理:在实现应用功能时,我学习了事件监听、接口回调等机制,使应用能够响应用户操作。
(4)优化性能:在开发过程中,我注意到了性能优化的重要性,通过减少内存占用、优化布局结构等手段,提高了应用性能。
3. 项目总结通过本次实践,我对安卓开发有了更深入的了解,以下是我在项目总结中总结的几点体会:(1)实践出真知:只有通过实际操作,才能真正掌握一门技术。
在实践过程中,我遇到了很多问题,通过查阅资料、请教同学、老师,逐步解决了这些问题,提高了自己的技术水平。
(2)团队协作:在项目开发过程中,我与团队成员保持良好的沟通,分工合作,共同完成了项目。
这使我认识到团队协作的重要性。
(3)持续学习:安卓技术更新迅速,作为一名开发者,要时刻保持学习的态度,关注新技术、新趋势,不断提升自己的技能。
三、心得体会1. 提高编程能力通过本次实践,我的编程能力得到了很大提升。
在这次Android开发大作业中,我主要负责了应用界面的设计和实现。
通过这次实践,我对Android开发有了更深入的了解,也更加熟悉了Android Studio的使用。
在开发过程中,我遇到了很多问题,比如如何实现动态布局、如何处理不同屏幕尺寸和分辨率的问题等。
但是通过不断地尝试和查阅资料,我逐渐找到了解决的方法。
在实现应用界面时,我主要使用了XML布局文件和Java/Kotlin 代码。
通过合理地使用LinearLayout、RelativeLayout等布局组件,我成功地实现了应用界面的基本框架。
同时,我也使用了ImageView、TextView等组件来展示图片和文字信息。
在实现动态布局时,我使用了RecyclerView和Adapter来实现列表展示。
通过动态添加数据,我成功地实现了数据的展示和交互。
同时,我也使用了第三方库Glide来加载和显示图片,提高了界面的美观度。
在处理不同屏幕尺寸和分辨率的问题时,我使用了dp单位来代替px单位,避免了不同设备之间的适配问题。
同时,我也使用了Fragment和Activity来实现不同界面的切换和跳转,提高了用户体验。
在这次实践中,我学到了很多Android开发的知识和技能,也更加熟悉了Android Studio的使用。
同时,我也意识到了团队协作的重要性,只有相互配合、共同协作才能完成一个好的项目。
在未来的学习和工作中,我会继续努力学习和实践,不断提高自己的技能和能力。
Android实习报告在大学期间,为了更好地将理论知识与实践相结合,我有幸在一家知名的科技公司进行了为期X个月的 Android 开发实习。
这段实习经历不仅让我对 Android 开发有了更深入的了解,也让我在技术和团队协作方面取得了显著的进步。
一、实习公司与项目介绍我实习的公司是一家专注于移动应用开发的创新型企业,在行业内拥有良好的声誉和广泛的用户基础。
我参与的项目是一款名为项目名称的 Android 应用,主要功能是为用户提供简要描述应用的主要功能和目标用户群体。
二、实习目的通过这次实习,我希望能够达到以下几个目标:1、深入了解 Android 开发的技术栈和开发流程,掌握实际项目开发中的技能和方法。
2、提高自己的编程能力和问题解决能力,能够独立完成一些模块的开发和优化工作。
3、培养团队协作精神,学会与不同角色的人员进行有效的沟通和合作。
4、了解移动应用市场的需求和趋势,为未来的职业发展打下坚实的基础。
三、实习内容在实习期间,我的工作主要包括以下几个方面:(一)需求分析与设计在项目开始阶段,我参与了需求分析会议,与产品经理、设计师和其他开发人员一起讨论应用的功能需求和用户体验。
通过对需求文档的仔细研究和与团队成员的交流,我对应用的整体架构和功能模块有了清晰的认识。
在设计阶段,我协助设计师完成了部分界面的原型设计,并提出了一些关于用户交互和界面布局的建议。
(二)技术选型与环境搭建根据项目的需求和技术特点,我们选择了 Android Studio 作为开发工具,使用 Java 作为主要的编程语言,并引入了一些常用的开源框架和库,如 Retrofit、Glide 等。
在环境搭建过程中,我遇到了一些问题,如 Android SDK 版本不兼容、依赖库冲突等,但通过查阅文档和向同事请教,最终成功解决了这些问题。
(三)功能模块开发在项目开发过程中,我负责了多个功能模块的开发工作,其中包括用户登录注册模块、个人中心模块和消息推送模块等。
移动设备软件应用与开发大作业报告姓名:学号:班级:院系:日期:任课教师:一、程序的运行环境、安装步骤1、运行环境游戏运行环境:Android1.5以上版本2、程序的组成部份:2.1、JDK安装1.我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:2.JAVA_HOME值为:D:\Program Files\Java\jdk1.6.0_18(你安装JDK的目录)3.CLASSPATH值为:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.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:\AndroidDevelop\android-sdk-windows\tools)。
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输入/android/eclipse。
如下图所示:确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。
如下图所示:然后就是按提示一步一步next。
完成之后:选择Window > Preferences...在左边的面板选择Android,然后在右侧点击Browse...并选中SDK路径,本机为:D:\AndroidDevelop\android-sdk-windows点击Apply、OK。
配置完成。
2.5、创建AVD为使Android应用程序可以在模拟器上运行,必须创建AVD。
1、在Eclipse中。
选择Windows > Android SDK and AVD Manager2、点击左侧面板的Virtual Devices,再右侧点击New3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware 目前保持默认值4、点击Create AVD即可完成创建AVD注意:如果你点击左侧面板的Virtual Devices,再右侧点击New ,而target下拉列表没有可选项时,这时候你:点击左侧面板的Available Packages,在右侧勾选https:///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-1085508apache-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 intprivate 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 GLSurfaceViewmRenderer = new MFtestRenderer();setRenderer(mRenderer);setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);}@Overridepublic 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 = x - mPreviousX;float dy = y - mPreviousY;//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 - (1.5*mRenderer.width)/6){//上//System.out.println(x+" 上"+y);mRenderer.action = 3;DrawAnimation();}else if(y > mRenderer.height/2.0 + (1.5*mRenderer.width)/6){//下//System.out.println(x+" 下"+y);mRenderer.action = 4;DrawAnimation();}else{mRenderer.action = 0;}}break;}mPreviousX = x;mPreviousY = y;//保存这次点return true;}private void DrawAnimation(){ChangeMoveByAction();//确定是哪个面旋转mRenderer.angle=0;while(mRenderer.angle<85){//绘制旋转效果mRenderer.angle=mRenderer.angle+5;try{Thread.sleep(40);}catch(InterruptedException e){}requestRender();}//绘制旋转效果mRenderer.angle=0;mRenderer.action = 0;DrawColorChange();//改变颜色requestRender();}private void DrawColorChange(){switch (mRenderer.move){case 70:LeftShift( 0*27+0*3, 0*27+6*3, 0*27+8*3, 0*27+2*3);LeftShift( 0*27+1*3, 0*27+3*3, 0*27+7*3, 0*27+5*3);LeftShift( 1*27+6*3, 5*27+8*3, 4*27+2*3, 2*27+0*3);LeftShift( 1*27+7*3, 5*27+5*3, 4*27+1*3, 2*27+3*3);LeftShift( 1*27+8*3, 5*27+2*3, 4*27+0*3, 2*27+6*3);break;case 66:LeftShift( 3*27+0*3, 3*27+6*3, 3*27+8*3, 3*27+2*3);LeftShift( 3*27+1*3, 3*27+3*3, 3*27+7*3, 3*27+5*3);LeftShift( 1*27+0*3, 2*27+2*3, 4*27+8*3, 5*27+6*3);LeftShift( 1*27+1*3, 2*27+5*3, 4*27+7*3, 5*27+3*3);LeftShift( 1*27+2*3, 2*27+8*3, 4*27+6*3, 5*27+0*3);break;case 85:LeftShift( 1*27+0*3, 1*27+6*3, 1*27+8*3, 1*27+2*3);////////// LeftShift( 1*27+1*3, 1*27+3*3, 1*27+7*3, 1*27+5*3);LeftShift( 0*27+0*3, 2*27+0*3, 3*27+0*3, 5*27+0*3);LeftShift( 0*27+1*3, 2*27+1*3, 3*27+1*3, 5*27+1*3);LeftShift( 0*27+2*3, 2*27+2*3, 3*27+2*3, 5*27+2*3);break;case 68:LeftShift( 4*27+0*3, 4*27+2*3, 4*27+8*3, 4*27+6*3);LeftShift( 4*27+1*3, 4*27+5*3, 4*27+7*3, 4*27+3*3);LeftShift( 0*27+6*3, 2*27+6*3, 3*27+6*3, 5*27+6*3);LeftShift( 0*27+7*3, 2*27+7*3, 3*27+7*3, 5*27+7*3);LeftShift( 0*27+8*3, 2*27+8*3, 3*27+8*3, 5*27+8*3);break;case 82:LeftShift( 2*27+0*3, 2*27+6*3, 2*27+8*3, 2*27+2*3);LeftShift( 2*27+1*3, 2*27+3*3, 2*27+7*3, 2*27+5*3);LeftShift( 1*27+2*3, 0*27+2*3, 4*27+2*3, 3*27+6*3);LeftShift( 1*27+5*3, 0*27+5*3, 4*27+5*3, 3*27+3*3);LeftShift( 1*27+8*3, 0*27+8*3, 4*27+8*3, 3*27+0*3);break;case 76:LeftShift( 5*27+0*3, 5*27+6*3, 5*27+8*3, 5*27+2*3);LeftShift( 5*27+1*3, 5*27+3*3, 5*27+7*3, 5*27+5*3);LeftShift( 1*27+0*3, 3*27+8*3, 4*27+0*3, 0*27+0*3);LeftShift( 1*27+3*3, 3*27+5*3, 4*27+3*3, 0*27+3*3);LeftShift( 1*27+6*3, 3*27+2*3, 4*27+6*3, 0*27+6*3);break;default:break;}}private void ChangeMoveByAction(){//F 70 B 66 U 85 D 68 R 82 L76(这个注释恐怕只有我能看懂- -!)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<b<c<d 左移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); DrawCube7(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); 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日程序开发完成,编写文档八、总结因为之前自己学习过Android游戏开发的相关知识,也自己做过一个小游戏,所以对这方面比较了解,不过之前开发的小游戏是用Cocos2d引擎完成,和Android原生的不太一样,通过这次大作业的完成,对Android的基本开发有了一定的了解。