## **翻译说明**
![{%}](https://box.kancloud.cn/2015-08-31_55e3d156a43a1.png)
本书原著为《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](http://www.appinventor.org/book2)网站,该作品采用[“署名-非商业性使用-相同方式共享3.0 未本地化版本”](http://creativecommons.org/licenses/by-nc-sa/3.0/)的版权许可协议,而译文遵从同样的[4.0版国际许可协议](http://creativecommons.org/licenses/by-nc-sa/4.0/)。中文版地址:http://www.17coding.net
![{%}](https://box.kancloud.cn/2015-08-31_55e3d15c29af2.png)
## **作者简介**
![{%}](https://box.kancloud.cn/2015-08-31_55e3d15c76584.png)
本书的主创作者David Wolber来自美国旧金山大学,是一位计算机科学专业的教授,他喜欢篮球、阅读、政治、哲学、心理学。他使用Python语言讲授计算机科学导论,最近又在一个特殊课程中,使用App Inventor for Android讲授计算机编程入门,旨在让那些非计算机专业的学生也能创造出自己的应用软件作品。
## **译者简介**
![{%}](https://box.kancloud.cn/2015-08-31_55e3d15cd3b48.png)
译者在新浪微博及博客上自称“老巫婆”,本科为物理学,做过大学教师、创业者、销售主管、程序员、开发项目经理、IT培训教师等,喜爱游戏及编程,最近发现喜欢翻译工作,因此才有了这本《App Inventor——Create Your Own Adroid 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](http://www.google.com/),点击右上角“登录”,进入登录页面后,选择“创建账户”,填写相关的注册信息之后,还需要进行电话短信验证,儿童最后由父母来代为申请。账户申请成功后,会自动转为登录状态。
### **首次进入App Inventor开发环境**
在浏览器中输入[http://ai2.appinventor.mit.edu](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伴侣](http://www.17coding.net/download/MITAI2Companion.apk)”软件,扫描下面图01的条码可实现软件的下载及安装:
![{%}](https://box.kancloud.cn/2015-08-31_55e3d15d43239.png)
**图 01 用条码扫描软件扫描下载AI伴侣**
测试设备具体连接方法如下:
1\. 在Android设备上运行AI伴侣,如图02;
![{%}](https://box.kancloud.cn/2015-08-31_55e3d15d84268.png)
**图 02 测试连接:手机上的操作**
2\. 在电脑上App Inventor开发环境中点击“connect--AI Companion>”,系统自动生成一个二维码,以及对应的六个字母的编码,如图03所示;
![{%}](https://box.kancloud.cn/2015-08-31_55e3d1630c063.png)
**图 03 测试连接:电脑上的二维码及编码**
3\. 在手机上可以直接输入编码,并点击“connect with code”,或扫描二维码,即可建立连接;
4\. 开发中的应用将在手机上运行。
### **开发测试之二:USB连接**
#### **电脑端的操作**
1\. 下载[aiStarter](http://vdisk.weibo.com/s/vCICwOO7Zj9H);
2\. 以administration身份登录windows;将aiStarter安装在默认的C:盘上;
3\. 运行aiStarter。
#### **手机端设置**
1\. 下载并安装[AI伴侣](http://www.17coding.net/download/MITAI2Companion.apk);
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](http://www.17coding.net/download/0/SwitchScreen.apk)
[SwitchScreen.aia](http://www.17coding.net/download/0/SwitchScreen.aia)
### **用AI2开发的俄罗斯方块**
[Tetris_singleListItem.apk](http://www.17coding.net/download/0/Tetris_singleListItem.apk)
- 简介
- 序言
- 前言
- 第 1 章 Hello 猫咪
- 第 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通信