文件来源于 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 合著的教科书《计算机程序的