《2022年appinventor软件开发文档 .pdf》由会员分享,可在线阅读,更多相关《2022年appinventor软件开发文档 .pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、浙江师范大学本科生课程论文封面课程名称:Android 手机程序开发论文名称:软件开发文档学院数理与信息工程学院专业通信工程学号14900110 姓名王晓洁任 课 教 师熊继平成绩评 阅 教 师签名浙江师范大学数理信息学院名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 15 页 - - - - - - - - - 1 基于加速度传感器的计步器实验目的:利用加速度传感器实现计步器的功能。实验过程一、组件设计图 1 界面设计二、相关代码【1】全局变量“step”用来记录行走步
2、数。【2】定义过程将标签 1 的文本设置为步数值。【3】核心算法当加速度传感器被晃动时,step 加 1.并且调用过程。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 15 页 - - - - - - - - - 2 最后有一个清除步数的功能。实验感想第一次接触这样拼图类的代码编写方法,感觉很有趣, 适合青少年起步学习, 不枯燥。这个APP 虽然功能简单,但是要做到精确计步却不容易。在算法上有很大需要改进。名师资料总结 - - -精品资料欢迎下载 - - - - - -
3、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 15 页 - - - - - - - - - 3 基于蓝牙的手机通信软件实验目的:根据 App Inventor 2 提供的两个蓝牙通信组件:蓝牙客户端、蓝牙服务器,将这两个组件配合使用,实现简单的即时通信功能。实验过程 :一、组件设置图 1 界面设计二、与蓝牙服务器相关的代码【1】全局变量“角色”用来表明当前设备在通信中的角色:服务器或客户端。【2】 “在线”设置如图 2 所示,当选中“在线”复选框时,表明本设备现在充当服务器的角色,可以接受来自其他设备的连接请求。一旦该设备成为服务器,
4、 “选择列表” 及“断开连接” 组件将不可用。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 15 页 - - - - - - - - - 4 图 2 修改蓝牙设备的角色【3】接收连接事件当蓝牙服务器收到连接请求时,将触发该事件。如果连接成功,即连接状态值为真,则向所连接的设备发送“已连接到服务器,可以开始聊天了.” ,并开始启用计时器,随时监听客户端发来的消息;如果连接不成功,则不启用计时器。如图3 所示。图 3 蓝牙服务器“接收连接”事件处理程序三、与蓝牙客户端相关的
5、代码【1】当“选择列表”准备选择时名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 15 页 - - - - - - - - - 5 当用户点击“选择列表”时,将打开一个列表,里面列出了所有已配对的蓝牙设备,用户可以选择其一进行连接。图 4 准备连接【2】当“选择列表”完成选择时当用户选择了一个蓝牙设备,意味着用户向所选设备发出了连接请求,“让蓝牙客户端连接设备” 的结果可能是真 (连接成功) ,也可能是假 (连接失败)。如果成功, 则设全局变量 “角色”值为“客户端” ,
6、并启动计时器;如果失败,则不启动计时器。图 5 进行连接【3】断开连接图 6 断开连接四、发送消息【1】全局变量 “聊天内容” 与自定义过程 “拼字符串”:以适当的方式来呈现聊天记录,即,为聊天内容添加换行符,并表明发言者身份。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 15 页 - - - - - - - - - 6 图 7 对聊天内容的记录与组织【2】发送一条消息图 8 角色不同使用不同蓝牙组件来发送消息名师资料总结 - - -精品资料欢迎下载 - - - - -
7、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 15 页 - - - - - - - - - 7 五、接收消息图 9 不同角色使用不同蓝牙组件来接收消息六、清空聊天记录图 10 清空聊天记录名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 15 页 - - - - - - - - - 8 实验结果:实验感想:我们的 APP仍然需要改进, 比如接收消息可以加上语音提示,添加聊天记录保存功能,添加共享音频图片文件功
8、能,这个小APP距离微信这些聊天工具还有很大的上升空间。通过此次实验, 我们了解了蓝牙客户端服务器计时器等非可视组件的相关功能,对两个角色的切换有了更深刻的认识,虽然程序是参照网上的例程,但是收获良多, 希望以后有更多这样的机会。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 15 页 - - - - - - - - - 9 木琴实验目的使用单一的声音组件来播放不同的音频文件,使用Clock组件来计算并实现两个音符之间的延迟, 在创建一个过程时做判断,创建能够自我调节的过
9、程;学习列表的高级应用,包括添加、删除及读取项。如图,这个应用可以做到:1.通过触摸屏幕上的彩色按钮播放八个不同的音符;2.按“播放”按钮,回放之前弹奏的音符;3.按“重置”按钮清除之前弹过的音符,以便输入新曲。图 1 木琴的用户界面实验过程一、设计组件创建键盘用户界面中包含了低音C 到高音 C 的打掉五声(七音符)音阶的八个音符键盘,本节将创建这样的音乐键盘。首先创建前八个木琴键,用按扭来实现,设置Text 属性, Width属性, Hight 属性,BackgroundColor 属性,使其效果如图2,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
10、 - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 15 页 - - - - - - - - - 10 图 2 组件设计添加 Sound组件我们要弹奏美妙的音符,就需要创建一个声音组件,设置最小间隔属性为0,这个不要忘记咯,是为了弹奏要多快有多快,我已开始没有设,默认值是半秒钟,就会有很大延迟。下载 1.wav 到 8.wav,并加载到项目。声音与按钮的连接Button1 被点击时,播放1.wav,切换到编辑块,这时候如果能有一个调用的过程会更加方便,然后当每一个按钮被点击是,就调用过程,播放对应的音频。则进行如下设置图 3 创建过程来演奏仅仅这样在测试时会失
11、望,第一次按键时会出现错误。因为系统是在程序运行后才加载声音,这个过程需要时间。所以我们需要在程序启动时立刻加载声音。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 15 页 - - - - - - - - - 11 图 4 应用启动时加载声音经过这些步骤我们就可以弹奏出一些简单的曲子了!记录并回放音符为了实现回放功能, 需要记录弹奏的音符并加以保存。除了要记录弹奏的音高(声音文件) ,还要记录两个音符之间的时间长度。我们需要维护两个列表,每弹奏一个音符,两个列表中都会
12、各自添加一条记录:notes:包含与演奏的音符相对应的声音文件名,按照演奏顺序排列;times:记录音符演奏时的时间点。我们可以从Clock 组件中得到计时信息,因此也可以用来正确地设定音符的回放速度。添加组件在设计器中添加一个Clock 组件及 “播放” 和“重置” 按钮,按钮放在HorizontalArrangement中。记录音符及时间回到块编辑器中,为组件添加正确的行为。我们需要维护两个列表:notes 与 times,每次用户按下一个按钮,就向列表中添加一项:1. 从 Variables 抽屉中拖出一个initialize global name to 块来定义一个新的变量;2. 单
13、击“ name”将变量命名为“notes” ;3. 打开 Lists 抽屉,拖动一个make a list 块,将其放置在变量notes 的插槽中;这样就定义了一个名为“notes” 的空列表。 重复上述步骤定义另一个变量,命名为“times” 。块的样子图 5 创建列表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 15 页 - - - - - - - - - 12 块的功能每演奏一个音符,需要保存两项数据:声音文件名(保存到notes 列表),以及演奏瞬间的时刻(保
14、存到times 列表) 。用 Clock1.Now 块来记录时刻,它返回当前时刻的时间值(例如,2011 年 3 月12 日上午 8 时33 分 14 秒) ,精确到毫秒。这些数据可以通过Sound1.Source 和 Clock1.Now 块获得,将分别被添加到notes 及 times 列表中,如图5 所示。图 6 将演奏声音添加到列表中当用户按下 “重置” 按钮时,我们希望清空这两个列表。由于用户看不到清空带来的任何变化,因此添加一个 Sound1.Vibrate 块,通过振动来告知用户按键生效了,这种设置对用户来说是非常友好的。图 9-12 显示了这一功能用到的块。图 9-12为用户的
15、“重置”操作提供反馈名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 15 页 - - - - - - - - - 13 音符的回放作为一个思想实验,先来考虑如何实现音符的回放,而暂时忽略回放速度。我们可以(但不会)通过创建图 9-13 中的那块来实现这个暂时的目标:块的功能这是计算机科学中一个非常重要的概念:强大的递归。为了更好地了解递归的工作原理,我们来一步一步地探究,当用户演奏了三个音符 ( 1.wav、3.wav 和 6.wav) ,然后按下“播放”按钮时,都发生
16、了什么。PlayButton.Click 首先判断列表中是否保存了音符:由于 notes 列表长度 30,列表不空,因此设定count 等于 1,并调用PlayBackNote:1. 在第一次调用PlayBackNote 时, count= 1:Sound1.Source 被设置为在notes 中的第 1 项,即 1.wav;调用 Sound1.Play,播放 1.wav;由于 count 值(1)小于 notes 的长度(3) ,因此 count 递增为 2,并再次调用PlayBackNote;2. 第二次调用PlayBackNote 时, count=2:Sound1.Source 被设置
17、为notes 中的第 2 项,即 3.wav;调用 Sound1.Play,播放 3.wav;由于 count (2)小于 notes 的长度( 3) ,因此 count 递增为 3,并再次调用PlayBackNote;3. 第三次调用PlayBackNote 时, count=3:App Inventor 编程实例及指南本文档使用看云构建- 154 - Sound1.Source 被设置为notes 中的第 3 项,即 6.wav;调用 Sound1.Play,播放 6.wav;由于 count (3)不小于notes 的长度( 3) ,因此跳出if 块,回放结束。名师资料总结 - - -精
18、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 15 页 - - - - - - - - - 14 实验结果实现木琴弹奏,回放,重置的功能。改进下面是一些可供探讨的备选方案:目前,在回放过程中,没有对用户点击ResetButton 做任何限制,这将导致程序的崩溃(错误提示: select list item: Attempt to get item number 4 of a list of lengh 0。 )修改PlayButton.Click,让 ResetButton 在回放期间禁用,回
19、放完成后再重新启用。将PlayBackNote中的 if 块改为 ifelse 块,并在“ else”中重新启用ResetButton。类似问题也发生在PlayButton 上,用户可以在回放过程中再次点击该按钮。(想象一下会发生什么。 )在 PlayButton.Click 中禁用 PlayButton,并将其 Text属性改为“播放中. ” ,并像 ResetButton 一样,在PlayBackNote的 ifelse 块中重新启用该按钮,并重置Text属性。实验感想编写一个能自我调用的过程不仅是可能的,有时也是必要的。 这种强大的技术称为递归。在编写递归过程时,一定要确保为程序的退出设
20、定一个基本条件,它的重要性远大于为自我调用设定条件,否则程序将陷入无限循环。本实验加深了我对列表的认识,列表(Lists)可以为程序提供存储功能,可以在列表中保存用户的操作记录,并在以后对存储内容进行提取和再处理。经过老师建议, 我将按键调整到适合弹奏的排列方式,还将按键播放声音的延迟取消,从而可以加快弹奏速度。这三个实验让我们对MIT APP Inventor 这个平台有了基本的认识,并领略到程序的魅力,对经后的学习更加感兴趣。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 15 页 - - - - - - - - -