第1章 Android与App Inventor 1
1.1 Android平台简介 2
1.2 App Inventor简介 3
1.3 用App Inventor开发App的过程 4
1.4 访问App Inventor 2开发平台 6
1.5 熟悉开发环境 8
1.5.1 组件设计 10
1.5.2 逻辑设计 19
练习与思考题 22
实验 23
第2章 安安诞生记 25
2.1 “安安诞生记”案例演示 26
2.2 “安安诞生记”组件设计 27
2.2.1 素材准备 27
2.2.2 设计界面 28
2.3 “安安诞生记”行为编辑 34
2.4 项目调试及运行 39
2.4.1 连接模拟器 39
2.4.2 无线Wi-Fi连接到手机 41
2.4.3 使用USB接口连接手机 43
2.4.4 打包apk文件 44
2.5 程序设计 45
2.5.1 程序设计 45
2.5.2 App Inventor应用开发体系结构 46
练习与思考题 49
实验 50
第3章 安安猜价格 51
3.1 “安安猜价格”案例演示 52
3.2 “安安猜价格”组件设计 53
3.2.1 素材准备 53
3.2.2 设计界面 53
3.3 “安安猜价格”行为编辑 55
3.4 数据与运算 59
3.5 机器猜价格 67
3.5.1 笨笨机器模式 68
3.5.2 聪明机器模式 69
练习与思考题 71
实验 71
第4章 安安爱画画 73
4.1 “安安爱画画”案例演示 74
4.2 “安安爱画画”组件设计 76
4.2.1 素材准备 76
4.2.2 设计界面 76
4.3 “安安爱画画”行为编辑 79
4.3.1 实现小球随机运动 79
4.3.2 实现画线功能 82
4.3.3 实现画圆功能 82
4.3.4 实现画文字功能 83
4.3.5 实现画布清屏功能 84
4.3.6 实现画作保存功能 84
4.3.7 实现画布被触碰功能 87
4.3.8 实现在画布上直接拖屏作画功能 88
4.4 自定义画笔颜色 89
4.4.1 设计调色板屏幕界面 89
4.4.2 合成自定义颜色 91
4.4.3 实现屏幕调用和返回 92
4.4.4 完善屏幕初始化代码 93
练习与思考题 94
实验 94
第5章 安安抓蝴蝶 95
5.1 “安安抓蝴蝶”案例演示 96
5.2 “安安抓蝴蝶”组件设计 97
5.2.1 素材准备 97
5.2.2 设计界面 97
5.3 “安安抓蝴蝶”行为编辑 100
5.3.1 让蝴蝶动起来 100
5.3.2 让蝴蝶连续飞 101
5.3.3 判断是否抓住蝴蝶 102
5.3.4 失败处理 103
5.3.5 成功处理 104
5.3.6 计算游戏得分 105
5.3.7 设计游戏成功屏幕 105
5.3.8 调用Screen 107
5.3.9 增加蝴蝶品种 108
5.3.10 运行出错,调试改错 109
5.3.11 重新开始 110
5.4 列表 111
5.4.1 列表与数据结构 111
5.4.2 列表的操作 111
5.4.3 列表的嵌套——多级列表 114
5.4.4 列表项的数据类型 115
5.5 软件开发中的最佳实践 115
5.5.1 有意义的命名 115
5.5.2 为代码写注释 116
5.5.3 增量式开发与测试 117
5.5.4 调试 117
5.5.5 经常备份 118
练习与思考题 119
实验 119
第6章 安安历险记 121
6.1 “安安历险记”案例演示 122
6.2 “安安历险记”组件设计 123
6.2.1 素材准备 123
6.2.2 设计界面 123
6.3 “安安历险记”行为编辑 125
6.3.1 通过倾斜手机指挥安安逃跑 125
6.3.2 让老虎自动去追安安 127
6.3.3 检测老虎是否抓到安安 129
6.3.4 让老虎跑起来更生动 130
6.3.5 划出小球 132
6.3.6 处理小球反弹 133
6.3.7 判断小球是否打中安安 133
6.3.8 引入过程进行重构 134
6.3.9 判断小球是否打中老虎 136
6.3.10 重新开始 136
6.4 过程 138
6.4.1 过程的定义 138
6.4.2 过程的类型 138
6.4.3 为什么要使用过程 139
6.4.4 参数 139
练习与思考题 140
实验 140
第7章 安安的通讯小助手 141
7.1 “安安的通讯小助手”案例演示 142
7.2 “安安的通讯小助手”组件设计 143
7.2.1 素材准备 143
7.2.2 设计界面 143
7.3 “安安的通讯小助手”行为编辑 146
7.3.1 自动回复短信 146
7.3.2 记录已收到短信电话列表 147
7.3.3 动态加载列表选择框元素 147
7.3.4 拨打电话 148
7.3.5 显示收到的短信信息 149
7.3.6 设置是否启用自动回复 150
7.3.7 清空收到的短信以及电话号码列表 150
7.3.8 通过微数据库组件存储自动回复的内容 151
7.3.9 完善初始化工作 152
7.4 数据的持久化存储 153
7.4.1 “文件管理器”组件 154
7.4.2 将信息存储为文件 154
7.4.3 读取存储在文件中的信息 155
练习与思考题 156
实验 156
第8章 安安爱弹琴 157
8.1 “安安爱弹琴”案例演示 158
8.2 “安安爱弹琴”组件设计 158
8.2.1 素材准备 158
8.2.2 设计界面 159
8.3 “安安爱弹琴”行为编辑 162
8.3.1 实现弹琴的发音 162
8.3.2 增加弹琴视觉交互效果 163
8.3.3 利用过程改进代码 163
8.3.4 避免资源文件找不到的问题 164
8.3.5 增加自动录音功能 164
8.3.6 实现播放录音功能 165
8.3.7 实现重置功能 168
8.4 递归 168
8.4.1 递归过程 169
8.4.2 递归过程的执行 170
8.4.3 递归程序设计 171
练习与思考题 172
实验 172
第9章 安安爱成语 173
9.1 “安安爱成语单机版”案例演示 174
9.2 “安安爱成语单机版”组件设计 175
9.2.1 素材准备 175
9.2.2 首页屏幕Screen1组件设计 175
9.2.3 单人游戏屏幕组件设计 177
9.3 “安安爱成语单机版”行为编辑 179
9.3.1 装载成语词典文件 179
9.3.2 读入成语词典 180
9.3.3 检查某个词语是不是成语 181
9.3.4 显示成语列表 181
9.3.5 检查两个成语是否符合接龙规则 181
9.3.6 重玩 183
9.3.7 返回 183
9.3.8 增加成语接龙提示功能 184
9.3.9 增加成语解释 185
9.4 “安安爱成语蓝牙联机版”案例演示 187
9.5 “安安爱成语蓝牙联机版”服务器端组件设计 189
9.6 “安安爱成语蓝牙联机版”服务器端行为编辑 191
9.6.1 主界面打开屏幕 191
9.6.2 服务器端开启服务 191
9.6.3 断开服务 192
9.6.4 发送成语 192
9.6.5 跨屏幕复制相同的代码模块 193
9.6.6 接收来自客户端的信息 194
9.6.7 其他模块 194
9.7 “安安爱成语蓝牙联机版”客户端组件设计 194
9.8 “安安爱成语蓝牙联机版”客户端行为编辑 197
9.8.1 连接服务器 197
9.8.2 发送词语 197
9.8.3 接收来自服务器的信息 197
练习与思考题 198
实验 199
第10章 安安爱旅游 201
10.1 “安安爱旅游”案例演示 202
10.2 “安安爱旅游”组件设计 203
10.2.1 素材准备 203
10.2.2 设计界面 204
10.3 “安安爱旅游”行为编辑 206
10.3.1 实现指南针 206
10.3.2 旅游地图 208
10.3.3 日记用户注册和登录功能 213
10.3.4 日记本功能 217
10.3.5 拍照功能 222
练习与思考题 224
实验 225
第11章 安安的股市 227
11.1 “安安的股市”案例演示 228
11.2 “安安的股市”组件设计 229
11.2.1 素材准备 229
11.2.2 设计界面 229
11.3 了解Web服务 231
11.3.1 股票查询API简介 231
11.3.2 API接口调试 232
11.4 “安安的股市”行为编辑 233
11.4.1 选择证券交易所代码 233
11.4.2 合成Web服务请求 234
11.4.3 加上服务请求头 234
11.4.4 分析接收到的数据 235
11.4.5 JSON数据格式简析 237
11.4.6 找到需要显示的内容 238
11.5 一次查询多只股票 241
11.5.1 修改服务请求 241
11.5.2 修改界面 243
11.5.3 一次查询多只股票信息的服务请求 243
11.5.4 处理多只股票信息的返回数据 244
11.5.5 实现股票信息切换 246
11.5.6 控制按钮状态 246
练习与思考题 248
实验 249
附录A 通过新浪SAE搭建网络微数据库服务 251
A.1 新浪云应用简介 251
A.2 建立Python应用 252
A.2.1 新建Python应用 252
A.2.2 编辑Python代码 253
A.3 建立MySQL数据库 257
A.3.1 新建MySQL数据库 257
A.3.2 建立数据表 258
A.4 测试服务 259
A.5 开发测试应用案例 260
A.5.1 组件设计 260
A.5.2 逻辑设计 260
A.5.3 案例运行和测试 261
附录B 安装和使用扩展组件 263
B.1 App Inventor扩展组件 263
B.2 安装和使用扩展组件案例:ScaleDetector 264
B.2.1 下载和安装ScaleDetector扩展组件 264
B.2.2 ScaleDetector扩展组件使用案例 265
B.2.3 使用了扩展组件的项目文件发布 267
B.3 删除扩展组件 268
参考文献 269