logo资料库

App Inventor编程实例及指南.docx

第1页 / 共443页
第2页 / 共443页
第3页 / 共443页
第4页 / 共443页
第5页 / 共443页
第6页 / 共443页
第7页 / 共443页
第8页 / 共443页
资料共443页,剩余部分请下载后查看
教程
指南
翻译说明
译者简介
作者简介
背景知识
身世
历史
创建背景
开发准备
开发环境
账户申请
首次进入App Inventor开发环境
开发测试之一:WiFi连接
开发测试之二:USB连接
开发体验
屏幕切换案例
用AI2开发的俄罗斯方块
作者介绍
扩展阅读
MIT:
EECS:
IEEE:
ACM:
OER:
译者提示
资源下载
作者介绍(About the author)
Ellen Spertus
术语解释
背景知识
序言
前言
移动电话专用的块语言
用App Inventor做什么?
建立原型
构建个性化应用
开发完整的应用
教学
为什么要用App Inventor
无需记忆并输入指令
你有多种选择的可能性
限定块之间的匹配
直接处理事件
你可以创建怎样的应用?
游戏
教育软件
位置感知应用
高科技应用
短信息应用
控制机器人的应用
复杂应用
基于web的应用
什么人能够创建应用?
本书中使用的惯例
如何使用本书
致谢
教程
第1章 Hello Purr
学习要点
App Inventor的开发环境
设计组件
创建一个Label(标签)
添加Button(按钮)组件
添加猫叫声
添加组件行为
发出猫叫声
添加震动效果
摇晃手机
将应用打包以供下载
分享应用
改进
小结
第2章 油漆桶
画笔应用
开发及测试
骆驼命名法
中英文对照
学习内容
准备开始
设计组件
创建颜色按钮
使用Arrangement组件改善布局
添加Canvas(画布)
设置底部按钮及照相机组件
为组建添加行为
添加触摸事件,绘制一个圆点
添加画线的拖拽事件
添加按钮事件处理程序
让用户拍照片
改变画笔大小
使用变量
修改变量值
油漆桶的完整应用
改进
小结
第3章 打地鼠
中英文对照
资源下载
学习目标
学习内容
准备开始
设计组件
设置活动组件
布置Label组件
为组件添加行为
移动地鼠
创建MoveMole过程
在应用启动时调用MoveMole过程
每秒钟调用一次MoveMole过程
记录成绩
过程抽象
重置分数
添加触摸地鼠行为
完整的MoleMash应用
改进
小结
第4章 开车不发短信
英汉对照
资源下载
学习内容
准备开始
设计组件
为组件添加行为
编程实现自动回复
块是作用
输入一个定制的回复
块的作用
将定制回复保存到数据库中
块的作用
应用启动时读取定制信息
块的功能
大声读出收到的短信
块的功能
在回复中加入位置信息
块的功能
发送带有位置信息的回复
块的功能
完整的应用:开车不发短信
改进
小结
第5章 瓢虫快跑
资源下载
英汉对照
应用描述
学习要点
设计组件
准备开始
活动的瓢虫
添加组件
添加行为
显示能量水平
添加组件
创建变量:Energy
画出能量条
饥饿而死
添加蚜虫
添加一个ImageSprite
控制蚜虫
块的作用
瓢虫吃掉蚜虫
块的作用
瓢虫与蚜虫之间的碰撞检测
块的作用
蚜虫的回归
块的功能
添加重新启动按钮
添加青蛙
让青蛙追捕瓢虫
块的功能
让青蛙吃掉瓢虫
块的功能
瓢虫回归
块的功能
添加音效
改进
小结
第6章 巴黎地图旅游
背景知识
Activity
HTTP
HyperText
Transfer
Protocol
URL
URI
DataURI
英汉对照
学习要点
设计组件
设置ActivityStarter组件的属性
为组件添加行为
创建目的地列表
让用户选择一个目的地
块的作用
使用搜索打开地图
块的作用
设立虚拟旅游
为特定地图寻找DataUri
定义DataURIs列表
修改ListPicker.AfterPicking行为
块的功能
改进
小结
第7章 安卓,我的车在哪?
资源下载
学习要点
准备开始
设计组件
为组件添加行为
显示当前位置
块的作用
记录当前位置
块的作用
显示“已记录”位置的方向
块的作用
永久保存已记录的位置信息
块的作用
启动应用时读取“记住”的位置信息
块的作用
完整的应用:Android,我的车在哪儿?
改进
小结
第8章 总统测验
学习要点
准备开始
设计组件
为组件添加行为
定义索引变量
显示第一个问题
块的作用
遍历所有问题
块的作用
让测验易于修改
块的作用
为每道题切换图片
块的作用
检查用户答案
块的作用
块的作用
完整的应用:总统知识测验
改进
小结
第9章 木琴
作品描述
资源下载
学习要点
准备开始
设计组件
创建键盘
创建第一个音符按钮
添加Sound组件
声音与按钮的连接
实现其余的音符
记录并回放音符
添加组件
记录音符及时间
块的功能
音符的回放
块的功能
播放适当延迟的音符
块的功能
改进
小结
第10章 出题及答题
学习要点
准备开始
设计组件
为组件添加行为
记录用户的输入
块的作用
清空问题及答案
块的作用
用多行文本显示问题-回答
块的作用
调用新建的过程
将数据永久保存到Web数据库
块的功能
从数据库加载数据
块的功能
块的功能
答题:从数据库中读取试题的应用
在组件设计器中调整组件
在快编辑器中编程:从数据库加载测验
块的作用
完整的答题应用
改进
小结
第11章 广播中心
学习要点
准备开始
设计组件
为组件添加行为
块的作用
将某人加入广播列表
块的作用
广播消息
块的作用
整理列表的显示
块的作用
录广播过的短信
块的作用
将BroadcastList保存在数据库中
块的功能
从数据库加载广播列表(BroadcastList)
块的作用
完整的广播中心应用
改进
小结
第12章 遥控机器人
学习要点
准备开始
设计组件
不可见组件
可视组件
为组件添加行为
连接到NXT机器人
显示机器人列表
块的作用
建立蓝牙连接
块的作用
与NXT断开连接
块的作用
操控机器人
块的作用
用超声波传感器探测障碍物
块的功能
改进
小结
第13章 亚马逊掌上书店
学习要点
什么是API?
设计组件
设计行为
按关键字或ISBN搜索
块的作用
消除用户的困惑
扫描一本书
块的作用
改进信息的显示
块的作用
定制化API
改进
小结
指南
第14章 理解应用的结构
组件
行为
应用如菜谱
应用就是一系列的事件处理程序
事件类型
用户引发的事件
初始化事件
计时器事件
动画事件
外部事件
事件处理程序可以提问
事件处理程序可以重复执行某些块
事件处理程序可以实现存储功能
事件处理程序可以与Web对话
小结
第15章 软件工程与应用调试
软件工程原则
设计要面对真实的人、现实的问题
快速地创建软件原型,并展示给未来的使用者看
迭代式开发
先设计,后编码
对代码进行注释
切割、分层、各个击破
理解编程语言:用纸和笔跟踪记录
应用的调试
监视变量
单独测试块
使用“Do It”渐进式开发
启用与禁用块
小结
第16章 应用中的存储
有名称的存储槽
属性
定义变量
设置及读取变量
用表达式为变量赋值
变量的递增
构造复杂的表达式
显示变量
小结
第17章 创建动画应用
在应用中添加Canvas组件
Canvas的坐标系统
用计时事件制造动画
产生运动
控制速度
高级动画功能
抵达边界
CollidingWith事件与NoLongerCollidingWith事件
交互动画
关于没有计时器的sprite动画
小结
第18章 程序中的决策:条件块
用if及ifelse进行条件测试
编写一段二选一的决策程序
多重条件判断
复杂条件判断
小结
第19章 数据列表编程
创建列表变量
选择列表项
使用Index遍历列表
举例:遍历画笔颜色列表
创建输入表单及动态数据
定义动态列表
添加数据项
显示列表
删除列表项
列表中的列表
小结
第20章 循环
控制程序的执行:分支及循环
使用foreach对列表实施迭代
循环过程详细分析
书写可维护的代码
foreach的第二个例子:显示列表
用while实现迭代
使用while同步处理两个列表
使用while做公式计算
小结
第21章 定义过程
消除冗余
定义过程
调用过程
程序计数器
为过程添加参数
过程的返回值
在应用中重用块
第二个例子:求两点间距离
小结
第22章 数据库
在TinyDB中永久保存数据
从TinyDB中提取数据
用TinyWebDB保存并共享数据
用TinyWebDB保存数据
用TinyWebDB来请求并处理数据
GetValue-GotValue连动
更为复杂的GetValue/GotValue举例
用不同的标签请求数据
在TinyWebDB.GotValue中处理多标签
设置Web数据库
小结
第23章 传感器
创建位置感知应用
GPS
用App Inventor感知位置
检查边界
位置信息的来源:GPS, WiFi以及基站编码
使用方向传感器
使用滚动参数Roll
控制运动的方向及速度
手机用作指南针
加速度传感器
响应设备的摇晃
使用加速度传感器的读数
检测自由落体
用校准值测定加速度
小结
第24章 与Web API通信
访问生成图像的网络API
为图表API设置Image.Picture属性
动态生成图表API的URL地址
与网络数据API通信
探索API的网络接口
通过TinyWebDB访问API
创建自己的App Inventor兼容的API
定制的模板代码
封装雅虎金融API
小结
文件来源于 http://www.17coding.net/ 简介、序言及前言 教程 hello 猫咪 1. 2. 油漆桶 3. 打地鼠 4. 开车不发短信 5. 瓢虫快跑 6. 巴黎地图旅游 7. 安卓,我的车在哪? 8. 总统测验 9. 木琴 10. 出题及答题 11. 广播中心 12. 遥控机器人 13. 掌上亚马逊 指南 14. 理解应用的结构 15. 软件工程与应用调试 16. 应用中的存储 17. 创建动画应用 18. 程序中的决策 19. 数据列表编程 20. 循环 21. 定义过程 22. 数据库 23. 传感器 24. 与 Web API 通信
翻译说明 本书原著为《App Inventor—Create Your Own Android Apps》, 2011 年由 O'Reilly 出版社出版,作者是来自旧金山大学的 David Wolber 教授、App Inventor 发明人、MIT 的 Hal Abelson 教授、谷歌 工程师 Ellen Spertus 以及 Liz Looney。 本书针对零基础的编程学习者,前 13 章为案例教学,通过对 13 个简 单应用的逐步讲解,学习者可以对编程的过程及基本概念有所了解, 并掌握使用 App Inventor 编程的方法。后面的 11 章是指南或手册,从 专业角度对编程的概念加以梳理,并针对 Android 应用特有的传感器 及 Web 访问做了系统的介绍,使学习者对编程的认识上升到理论的高 度。 本书的英文版来自 BOOK2 网站,该作品采用“署名-非商业性使用-相 同方式共享 3.0 未本地化版本”的版权许可协议,而译文遵从同样的 4.0 版国际许可协议。 译者简介
译者在新浪微博及博客上自称“老巫婆”,本科为物理学,做过大学教师、 创业者、销售主管、程序员、开发项目经理、IT 培训教师等,喜爱游 戏及编程,最近发现喜欢翻译工作,因此才有了这本《App Inventor— —Create Your Own Adroid Apps》的中文译本。 作者简介 本书的主创作者 David Wolber 来自美国旧金山大学,是一位计算机科 学专业的教授,他喜欢篮球、阅读、政治、哲学、心理学。他使用 Python 语言讲授计算机科学导论,最近又在一个特殊课程中,使用 App Inventor for Android 讲授计算机编程入门,旨在让那些非计算机 专业的学生也能创造出自己的应用软件作品。 David Wolber, the lead author of this book, is a professor of Computer Science at the University of San Francisco. He enjoys basketball, reading, politics, philosophy and psychology. He teaches Introduction to Computer Science using Python, and recently he's been teaching beginning programming in particular courses using App Inventor for Android, in order to make the non-computer major students can also create their own apps. 背景知识 身世 App Inventor for Android 简称 App Inventor,最初是谷歌公司提供的 一个开源的 web 应用,现在由麻省理工学院(MIT)负责维护及运营。
历史 该应用由谷歌公司的 Hal Abelson 创建,于 2010 年 7 月 12 日上线运 行,2010 年 12 月 15 日公开发布。2011 年下半年,谷歌公司公布了 应用的源码,关闭了服务器,投资创建了 MIT 移动学习中心。该中心 负责 App Inventor 的后续开发及运营维护,并于 2012 年 3 月发布了 App Inventor 的 MIT 版本,此后,又于 2013 年 12 月 6 日发布了 App Inventor 2,并将此前的版本命名为“经典 App Inventor”。 创建背景 App Inventor 的创建依据是结构主义的学习理论,该理论强调主动学 习,认为编写程序将成为激发强大思想的有效工具。在此理论的影响 下,从 20 世纪 60 年代开始,在 MIT 的 Logo 小组以及 Logo 语言发明 人 Seymour Papert 的积极努力下,一系列与计算机及教育有关的活动 在整个美国相继发展起来,并一直持续至今。包括乐高头脑风暴机器 人(Lego Mindstorms)、StarLogo 语言以及 App Inventor 在内的一些列 与学习有关的发明,都是这些活动的组成部分。 开发准备 开发环境 任何一台可以通过浏览器访问互联网的计算机,都可以作为开发的硬 件环境,App Inventor 的运行环境为浏览器,请使用非 IE 浏览器。 账户申请 使用 App Inventor 需要用谷歌账户进行登录,以便进行个人作品的保 存。因此首先访问 http://www.google.com,点击右上角“登录”,进入 登录页面后,选择“创建账户”,填写相关的注册信息之后,还需要进行 电话短信验证,儿童最后由父母来代为申请。账户申请成功后,会自 动转为登录状态。 首次进入 App Inventor 开发环境
在浏览器中输入 http://ai2.appinventor.mit.edu,进入登录页面,要求 再次输入密码。输入密码后点击“登录”,出现提示页面,告知你登录 App Inventor 需要使用你的谷歌账户,但不会将你的个人信息和密码 开放给 App Inventor。 选择“Allow(允许)”,之后进入 App Inventor 的欢迎页面,要求你填 写一份简短的自愿调查,以便了解用户并改进产品。可以选择“立即参 与(Take Survey Now)”、“稍后参与(Take Survey Later)”或“不参与 (Never Take Sruvey)”。无论是否参与调查,最终将进入另一个欢迎页 面(每次进入开发环境之前,都会看到这个欢迎页面)。该页面的两个链 接会分别打开一个窗口,说明如何设置开发的测试设备(Android 设备 或模拟器),这个页面有两个信息值得注意:①模拟器和 USB 连接的 测试设备目前只支持苹果和 windows 操作系统,不支持 Linux;②开 发环境不久将实现对 IE 的支持,言外之意现在不支持 IE。 点击“continue”按钮,进入最后一个欢迎页面,提示你尚未建立任何项 目,并提示你如何建立新项目;另一个提示是,如果你曾经建立过项 目,但在这里看不到,推测你可能之前使用的是版本 1.0,并提供了 1.0 版本的链接。鼠标点击任意位置,正式进入开发环境。 开发测试之一:WiFi 连接 开发过程中可以用 Android 设备对应用进行实时测试,但前提是在 Android 设备上安装“AI 伴侣”软件,扫描下面图 01 的条码可实现软件 的下载及安装:
图 01 用条码扫描软件扫描下载 AI 伴侣 测试设备具体连接方法如下: 1. 在 Android 设备上运行 AI 伴侣,如图 02; 2. 在电脑上 App Inventor 开发环境中点击“connect--AI Companion>”,系 统自动生成一个二维码,以及对应的六个字母的编码,如图 03 所示; 3. 在手机上可以直接输入编码,并点击“connect with code”,或扫描二维 码,即可建立连接; 4. 开发中的应用将在手机上运行。 图 02 测试连接:手机上的操作
图 03 测试连接:电脑上的二维码及编码 开发测试之二:USB 连接 电脑端的操作 1. 下载 aiStarter; 2. 以 administration 身份登录 windows;将 aiStarter 安装在默认的 C:盘 上; 3. 运行 aiStarter。 手机端设置 1. 下载并安装 AI 伴侣; 2. 设置手机的 USB 调试模式:设置->开发者选项->选中 USB 调试; 3. 运行 AI 伴侣; 连接手机与电脑  在 App Inventor 开发环境里选择“连接->USB”,稍等片刻即可。经测试 Nexus S 可以成功连接。 提示 使用 USB 连接进行实时测试,整个安装连接过程是否顺利,取决于很 多因素,列举如下: 1. 安卓设备的型号(MIT 网站提供):  Nexus One  Nexus S 2. 安装 aiStarter 时必须以 administration 身份登录 windows; 3. 手机上打开 USB 调试模式。
开发体验 为了解决国内用户连接 App Inventor 可能出现的限制,我们正在尝试 将 App Inventor 的开发环境移植到非谷歌的服务器上,并对环境进行 了汉化。目前这项工作正在进行中,为了让用户尽早体验到使用 App Inventor 开发 Android 应用的快乐,我们将测试版本向用户开放。测试 版本暂时没有做用户登录设定,您所创建的应用对全体用户可见。点 击本页面右上角的“开发体验”按钮即可进入开发环境。 屏幕切换案例 SwitchScreen.apk SwitchScreen.aia 用 AI2 开发的俄罗斯方块 Tetris_singleListItem.apk 作者介绍 Hal Abelson 关于 Abelson 教授的故事很难用一段简短的文字来说明。他是 MIT 电 子工程与计算机科学系的一名教授,获得过 MIT、IEEE 以及 ACM 颁 发的多种奖项,如果必须用一个词来概括他的贡献,那就是"教育"!正 如他在获奖时所说,“无论有多少获奖的理由,对我来说只有‘教育’是 最有意义的,这也是我在 MIT 给自己的定位:一名教师。” Abelson 教授作为 MIT 计算机教育的领导者,执教已超过 30 年,至今 仍担当重要角色。他与 Gerry Sussman 合著的教科书《计算机程序的
分享到:
收藏