## **翻译说明** ![{%}](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)