基本信息

内容简介
计算机书籍
---------------------------Android开发与应用---------------------------
本书介绍了Android的常用技术,包括基本概念、架构、常用控件、编程方法,并通过大量的案例讲解具体的开发过程,使学生在工程实践过程中掌握Android的开发技术与方法。第一部分介绍Android编程基础与技巧。第二部分基于作者开发的软件项目整理出的实用案例,进行讲解和分析,涉及Android各个功能的应用。第三部分通过一个真实的综合实例讲解Android的项目开发过程。本书可以作为高校理工科相关专业学生的Android程序设计教材和相关实践课程的参考书。
---------------------------以用户为中心的系统设计---------------------------
本书由四个部分组成。第一部分有两章:第1章介绍了用于理解人(也就是通常所说的用户)、他们的任务以及任务背景的方法。该章阐述什么时候应该去了解用户,并给出了一些例子和不了解用户带来的一些风险,该章还指出了一些用于组织和用户相关的知识的方法,包括风险驱动设计和认知模型的使用等。
第2章概览了那些与以用户为中心的系统设计这一方法相关的领域,有助于读者理解不同研究领域之间的关系,并提供了相关的文献以及何处可以进一步获取相关信息。
本书第二部分描述了那些我们认为核心的、与设计相关用户特性。这部分的章节依据我们的ABCS框架建立了描述用户的基础,在这个框架中A代表人体测量学(anthropometrics)、B代表行为(behavior)、C代表认知(cognition)、S代表构成人类活动的社会方面(social aspect)。第3章介绍了人体测量学,描述了用户身体的重要方面,包括他们是如何坐在电脑前工作的,如何打字的,以及如何使用触控的。第4章涉及人类行为的基础,描述了视觉和听觉等用于交互的基本感官,以及为什么用户以某种特定的方式来行事。第5~7章阐述了认知:第5章描述了记忆、注意力和学习等方面的认知基础,特别是那些可以应用到系统设计的方面;第6章描述了与系统设计相关的高层次认知能力,包括会影响心智模型的心理表征、问题求解和决策;第7章讨论了用户和技术系统之间的沟通,包括一些语言方面和用户界面相关的基本因素、用户阅读的方式,以及典型的信息搜索行为。第8章和第9章阐述了用户的社会方面的因素:第8章讨论了影响决策和团队合作的社会因素;第9章介绍了更高层面、更大尺度的社会因素、网络效应,并提供了在这些领域可以总结用户行为的一些模型。
第10章介绍了差错(error)。差错是可以揭示用户在与技术交互时的行为信息一个很好的信息源。面对用户差错,我们可以提出一些问题:错哪了?为什么会出错?如何防止同样的差错再次发生?该章提供了一些关于差错的背景知识,包括差错率以及技术和人为因素是如何交织在一起从而导致系统错误的,还给出了一些学习和改善差错的工具。
本书第三部分给出了研究系统中用户的方法。第11章介绍了任务分析方法,指出了一些任务分析方法的用途以及让该方法有效的方式,并为每种方法提供了实例。
第12章讨论了用来提高系统设计的另外两种方法,这两种方法也有助于总结和应用我们关于用户的知识。认知维度是一种总结用户和系统之间交互方式的方法,也提供了一个对潜在的差错进行预测的框架。这类预测可以为直接的可用性测试、正式或非正式的定性测试奠定基础。该章还描述了诺曼的评估和执行鸿沟(Gulfs of Evaluation and Execution),鸿沟的概念为我们提供了一个框架,有助于我们了解用户在哪里需要帮助来理解系统和与系统交互。
第13章侧重于用户研究的实证评估方法。该章描述了如何启动一个可用性研究,并对做什么、测什么提供了一些建议。
第14章总结与用户相关的知识和设计以用户为中心的系统的方式。我们首先总结ABCS框架,然后介绍用户模型。用户模型是一种可以总结封装我们关于用户的详细知识的方法,也是一种预测用户行为的快速方法。该章的结尾是对风险驱动增量承诺模型的描述,这个模型可以作为一种把关于用户的知识运用到系统设计中的方法。
作译者
---------------------------以用户为中心的系统设计---------------------------
弗兰克E.里特(Frank E. Ritter),美国宾夕法尼亚州立大学信息科学技术学院、心理学系、计算机科学与工程系教授,在认知建模、认知架构、人机交互、学习理论等方面发表了100多篇期刊和会议论文。
戈登D.巴克斯特(Gordon D. Baxter),英国圣安德鲁斯大学计算机科学研究学院的研究员,其研究领域是人机交互和软件工程。
伊丽莎白F.丘吉尔(Elizabeth F. Churchill),美国谷歌公司用户体验的一名主管,具有多年的学术界和工业界经验,其研究和实践涉及人机交互、社会计算等多个领域。
目录
---------------------------Android开发与应用---------------------------
前言
第1章 开发环境搭建与应用入门1
1.1 搭建开发环境1
1.2 创建虚拟设备2
1.3 第一个应用程序3
1.4 工作空间与相关文件4
1.5 程序的调试方法8
1.6 本章小结10
第一部分 编程基础与技巧
第2章 常用开发组件12
2.1 常见属性12
2.2 EditText组件与菜单13
2.3 Button组件17
2.4 ToggleButton组件20
译者序
---------------------------以用户为中心的系统设计---------------------------
我们的生活和工作越来越依赖于计算机。基于计算机技术的互联网对我们的影响有目共睹,很多日用工具和产品,如汽车、手机、电动玩具、电子厨具等,也多多少少融合了计算机技术。可以毫不夸张地说,我们已经离不开计算机。无处不在的计算机技术改善了我们的生活和工作,但也带来了很多问题。其中的一个问题是怎样才能让这类基于计算机的、与用户交互的系统、产品和工具真正成为我们生活工作中的好帮手,而不是负担,更不是麻烦制造者呢?
对于这个问题有个听起来似乎很简单的答案,那就是把它们设计好。但设计一个好的与用户交互的系统、工具或产品涉及很多学科领域,包括传统的人因、逐渐成熟的人机交互,以及新兴的社会计算等领域。设计人员在学习这些理论和方法时,通常需要去查找、搜集和参考不同领域的书籍和文献,但把来自不同领域的内容融合为一个体系化的知识结构对很多人来说还是一个严峻的挑战。同样,目前开设了以用户为中心的设计的教学和科研方向的很多高校,在教材和研究资料的选择上也面临着类似的问题。
本书的目的就是把相关学科的知识综合在一起,并提供一个被称为ABCS的框架来帮助读者把相关的知识整合起来。本书的多位作者都是在各自领域颇有建树的研究人员,书中的很多内容都是结合他们自己的研究成果,并融入了他们对相关领域的深入了解。本书阐述理论,也简述方法,主要内容涉及人体测量学、认知心理学、社会心理学等多方面。本书的另一个特点是旁征博引,通过很多正反面的实例来深入浅出地对理论的原理和应用进行阐述。
我们选择翻译本书的主要目的是希望它能帮助我国对以用户为中心的系统、产品和工具感兴趣的人员,帮助他们学习和掌握诸多和交互系统设计有关的理论和方法,帮助他们更进一步地认识到设计需要考虑的诸多方面,从而设计出具有更高竞争力和附加值的系统、产品和工具,促进我国从中国制造向中国创造的转型。
本书针对的读者是人机交互、人因、产品设计、软件工程等领域的在校学生、研究人员和从业人员。本书可以作为一本参考读物,帮助读者了解和查找感兴趣的内容。虽然读者可以跳跃性地阅读,而不必遵循本书设定的章节顺序,但我们还是建议读者能在阅读其他章节之前,先阅读第1章,以了解本书的体系和主要思想。从业人员可以先从每章对系统和设计的启示相关章节入手,首先了解理论是如何指导应用的,然后再深入学习相关的理论。
作为教科书,章节的选择和顺序可以根据课程的学科方向和程度来灵活安排。这里我们根据学科和课时给出一些需要阅读的章节和顺序的建议,以供参考:
计算机学科的一学期本科课程(18周):第1章,第2章,第4章(不包括4.2和4.6节),第5章(不包括5.2.2和5.2.3节),第6章,第7章,第8章,第13章的13.1和13.3节,第14章的14.1和14.2节。
计算机学科的两学期的人机交互本科课程(每个学期18周):第一学期第1~9章,第二学期第11~14章。
人因学科的一学期本科课程(18周):第1章,第2章,第3章,第4章(不包括4.6节),第5章(不包括5.2.2和5.2.3节),第6章,第8章(不包括8.3和8.4节),第10章,第13章的13.1和13.3节,第14章(除去14.4节)。
软件工程的一学期本科课程(16周):第1章,第14章的14.4节,第2章2.1和2.2节,第4章(不包括4.2和4.6节),第5章(不包括5.2.2和5.2.3节),第6章,第7章,第8章,第13章13.1节,第14章的14.1和14.2节。
工业设计的一学期本科课程(16周):第1章,第2章,第4章(不包括4.2和4.6节),第5章(不包括5.2.2和5.2.3节),第6章(不包括6.4节),第7章(不包括7.5节),第8章,第13章的13.1和13.3节,第14章的14.1和14.2节。
研究生一学期课程(16周):前8周可以根据具体专业方向选择第1~10章中的相关章节(比如计算机学科和工业设计学科可以跳过第3、10章,人因学科可以跳过第9章),后8周涵盖第11~14章的全部章节。
本书涉及领域广阔,如何能准确地翻译各学科的名词是我们面临的一个挑战。我们在翻译过程中尽可能地使用相关领域已有的译法,但对于比较新的名词和有不同翻译的名词,我们选择了我们认为在本书中比较合适的译法,并同时给出了英文原文以供参考。书末的词汇表保留了英文原词,便于读者对照参考。同样,在书中提及的人名的翻译方面,对于国内已经熟知的人名,我们采用了现有的中文译法,其他的名字我们则使用英文原文。所有文献中的名字,我们使用英文,便于读者追溯原始文献。
英文版中的一些例子和练习题涉及一些国内读者可能不太熟悉的英美生活常识,我们在不影响作者本意的前提下,对一些内容做了相应的改动,以方便国内读者阅读理解。对于不便于改动的某些内容,我们加了译者注,以帮助读者更好地了解作者的本意。我们对书末的词汇表也做了一些改动,以方便我们国内的读者。
前言
---------------------------Android开发与应用---------------------------
Android是以Google为首的Open Handset Alliance(OHA,开放手机联盟)推出的一款开放的嵌入式操作系统平台,2007年11月推出Android SDK 1.0版,现已推出9.0版。Android应用越来越广泛,已经席卷整个智能手机产业和移动互联网行业,至2017年年底,其市场占有率已经达到85.9%。面对这种形势,软件从业者纷纷转向Android应用的开发。目前市场上有很多关于Android基础及技术的书籍,但是其中大部分主要讲解Android系统中各组件的使用及零散的应用技术,读完这些书读者难以掌握研发Android应用的关键和主流技术。
本书的主要内容
本书作者长期从事软件工程的科研与教学工作,获得国家软件著作权11项。本书是作者多年来从事Android应用研究和教学实践的结晶,并融入作者20年计算机监控系统的研发经验。本书首先从Android开发环境入手,介绍了常用组件与技术及Intent的综合应用,然后在此基础之上完成了6个实用案例,并详细分析了代码实现,最后介绍了一个远程温度监测实例,涉及数据处理技术、TCP客户机与服务器编程及温度监测的最终实现。各章内容具体安排如下所示。
第1章“开发环境搭建与应用入门”主要介绍了开发环境的搭建方法、工作空间与相关文件,并结合第一个应用程序详细介绍了程序的调试方法、项目的导入方法、调试设备的选择等。
第一部分(第2~4章)介绍编程基础与技巧,包括常用组件与技术及Intent的综合应用。第2章“常用开发组件”首先介绍了各组件通用的常见属性,然后分别介绍各组件的重要属性,通过实例从多角度展示组件事件的处理方法,并将框架布局知识融入其中。
第3章“常用技术”开始引入Library类库的概念,将常用技术和具有共性的代码放入类库中进行维护,以Sound类为例,所有进行情景模式操作的软件只需引用Library类库即可调用相关功能,对Sound类的改进只需在Library类库项目中进行,其他导入Sound类的项目无须更改代码,只需重新编译。该章依次介绍了Activity的生命周期、绘图方法、情景模式与音频播放、消息机制、多线程处理、定时功能、SQLite数据库、查询联系人、用户偏好和内部文件存取方法以及手机地图的开发方法,所有这些技术都通过详细实例进行讲解,并将通用技术融入Library类库中。
第4章“Intent的综合应用”首先介绍了Intent的基础知识,然后介绍了利用Intent打开Activity并传递数据、状态栏通知的实现及通过状态栏打开Activity,接着采用配置文件注册或软件注册的方法,从开机自动启动、来电、短信发送与接收等方面讲解广播接收器的应用,最后介绍了服务的基础知识、启动服务和绑定服务的实现,并介绍了使服务长期运行而不被系统杀死的方法。第3章与第4章的内容是本书的技术基础,也是Android应用研发的技术基础。
第二部分(第5~10章)为实用案例分析。第5章“课堂随机点名软件”结合3.8节的SQLite数据库技术,实现了多门课程多班级不重复点名;第6章“简易英语学习软件”利用Library类库中的文件存取类FileProcess和多线程文本读取类ThreadReadText,实现自行设置学习内容,既可以用来学习英语对话,也可以用来背单词;第7章“通讯录备份与恢复软件”在Library类库中创建了PhoneBook类,集成了通讯录的查找与更新功能,可以一键完成所有通讯录的备份,以及一键将备份全部恢复(合并)到通讯录。
第8章“服务账号登记软件”主要利用SQLite数据库技术与文本文件存取技术分类保存、检索各种账号,并将敏感数据加密保存到外部文件,以及从外部文件解密恢复到数据库中。第8章的列表选项采用了多种适配器并实现了拖曳技术。本章内容是前面基本技术的具体应用,并利用第11章的数据编码与处理技术对文本数据进行加密和解密。
第9章“地址定位及辅助服务软件”实现的是一个启动服务,结合3.12节的百度地图实现了手机定位功能,并利用第11章的编码技术将定位信息加密后发送到目标手机;利用4.5节的显示来电和接收短信技术,以及3.9节的查询联系人技术确保白名单来电响铃,还可实现开启“WiFi关闭”提醒,向目标手机发送余额不足信息。第10章的“地址查询与地图打点软件”向第9章的“地址定位及辅助服务软件”发送地址查询命令,利用第11章的编码技术将收到的地址信息解密后在百度地图上标注出来。
第三部分(第11~15章)为基于互联网的远程温度监测案例,包括数据处理、网络编程与具体实现三个主题。第11章“数据编码与处理技术”实现了字节(数组)、字符(串)和汉字等的相互转换及简单的编码功能,并实现了随机字节的生成与字节的位操作技术。第12章“数据包的校验技术”实现了多种校验码的计算和结尾码的处理,可通过一个函数为原始数据包添加校验码和结尾码,也可通过一个函数检验综合数据包是否正确并删除尾部的结尾码与校验码,留下有效数据。这两章内容广泛应用于数据传输与处理,也是计算机监控的核心技术。
第13章“通用TCP客户机与服务器测试软件”在Library类库中创建了通用网络处理类NetworkProcess及TCP客户机与服务器类TcpClientServer,密切结合第11章的数据编码技术及第12章的数据包校验技术,实现了通用TCP客户机和服务器测试软件,可以以字节或普通字符串收发和显示数据,根据要求添加校验码或结尾码并进行相关检验,还可测试客户机与服务器之间的时间间隔。
第14章“I-7013D模块仿真软件”(简称仿真模块)是第13章的通用TCP服务器测试软件的一个特例,它以手动、自动和锁定三种方式提供正弦波形式的温度数据,按照I-7013D协议的要求响应客户机的温度查询。
第15章“I-7013D模块监测软件”(简称监测软件)则是第13章的通用TCP客户机测试软件的一个特例,它根据测试出的时间间隔对仿真模块进行查询,并对所收到的温度数据以趋势线的形式实时显示。仿真模块与监测软件构成一个简单的以物联网为基础的计算机监控系统。
序言
---------------------------以用户为中心的系统设计---------------------------
中文版推荐序
人机交互经历了图形用户界面半个多世纪的辉煌,现在正面临着自然用户界面的迷茫。以用户为中心的系统是对自然用户界面在设计方面的描述。我们现在有太多支持自然交互的设备,同时有渴望自然用户界面的强烈需求,但是很少有真正支持自然交互的系统和应用,期望和实际应用存在着巨大的鸿沟,其原因是缺少设计以用户为中心的理论和技术基础。两年前看到《Foundations for Designing User-Centered Systems》这本书,我就很激动,初读本书以后,更为本书的目标、动机而赞同。
HCS(Human Cyber System)是美国自然科学基金会提出的新概念,是对基于人、计算机和环境三维空间的信息系统的描述。HCS的核心是以用户为中心系统(User-Centered System UCS),UCS中人是核心,开发UCS系统本质上是一个跨学科的实践工程,本书最大的贡献是提出了ABCS框架(Anthropometrics,Behavior,Cognition,Social Factor),ABCS框架为多学科共同开发UCS系统提供了一个协同平台,ABCS框架描述了UCS中与用户相关的特性,是设计UCS的基础。
开发UCS的第一步是如何组织用户相关的知识,ABCS框架给出了一个统一的知识本体。在如何应用ABCS方面,本书描述了三个重要方法:任务分析方法、人机交互和任务执行的方法,以及实验评估方法,为ABCS框架的实际应用提供了具体的操作方法。
以用户为中心的设计是实现自然交互的可行方法,期望本书能为自然用户界面开发提供一个指南,促进人机交互的发展。人机交互系统是软件应用系统中的重要部分,期望在软件工程发展中能如同英文版推荐序所述一样,使设计交互系统成为软件工程中重要内容。ABCS框架中的“C”给出了统一认知理论,人机交互和人工智能是具有共同目标(人和智能)的两个学科,借助于ABCS框架提出的统一认知理论使得人机交互和人工智能两个姐妹学科能协同发展,让人工智能落地,让人机交互进一步提升。
学科的发展需要有一本好的教科书,本书既有新技术背景,包含完整的理论框架,又有应用的方法,还包含大量习题和丰富的参考资料,希望本书能成为理想的教科书。
戴国忠
2017年10月于北京
英文版推荐序
我们南加州大学软件工程硕士研究生学位项目的核心课程横跨两个学期,要求学生们以6人为一组组成大约15~20个团队,为南洛杉矶当地社区的客户进行软件系统的定义、设计、开发和部署。这些客户包括IT初创企业、周围的小企业、当地政府和社区服务组织,以及南加州大学内的医生、教职员工、图书管理员、行政管理人员和学生社团。课堂上的学生开发者来自不同的国家,有着不同的文化背景:主要来自美国、印度和中国;也有来自欧洲、拉丁美洲和亚洲其他地区的。
在这些不同的文化背景中,有一个概念似乎是共有的黄金法则:像你希望别人对待你那样来对待别人。但在教学中,我们首先向学生强调的一件事是这条法则暗含着一个危险的假设。这样一个被普遍接受的法则怎么会是危险的呢?我们发现,这个法则包含这么一个假设:每个人都像我一样。许多学生会遵循这个法则来创建对程序员友好的用户界面,并且狡辩说:“难用?你什么意思?这个界面的简明句法格式减少了按键次数,你还有权利直接访问操作系统。也没必要具体说明命令的错误在哪里,因为简单扫一眼这些命令就能看到这些错误。”
现在,我们教给他们一条白金法则:像别人应该被对待那样来对待别人。我们强调用户原型的发展和实践,并提供给学生文献、用户专业领域模型、实践以及共赢的谈判能力,从而帮助他们了解客户喜欢如何被对待。
在过去16年不断改进该课程的过程中,我们通过尝试和重新审视那些不能行之有效的方法,费尽周折地了解着开发者和用户。
如果当时有读者手上这本书,我们可能会极大地避免这种苦苦探寻的过程。作为一个编排精良的宝库,本书提供了关于用户特点,以及如何设计能扬用户所长避用户所短的系统的有益见解和案例。
媒体评论
---------------------------Android开发与应用---------------------------
Android是一款开放式的嵌入式操作系统平台,目前已广泛应用于智能手机产业和移动互联网行业,从事Android应用开发的人员也越来越多。面对行业的人才需求,高校也相应地开设了Android的相关课程。本书结合作者多年来Android应用研究和教学实践编写而成,既对Android的技术框架进行了系统介绍,又涵盖丰富的实例,帮助读者掌握Android应用研发的关键技术和常用方法。
主要特点
内容上,首先介绍Android开发环境,包括常用组件与技术及Intent的综合应用,在此基础之上剖析了6个实用案例,并详细分析了代码实现。最后通过一个完整的远程温度监测案例,帮助读者综合应用相关知识。
书中有大量作者自己创建的共享类库、自定义数据库类和TCP类等,既方便读者使用,又能帮助理解相关的知识点。
注重工程性和实用性,将知识点融入实例的讲述方式便于读者理解和实践,并且书中一些案例可直接用于工程中,使读者体验真实的开发过程和结果。
为方便教学,本书提供丰富的教辅资源,需要的教师可登录华章网站下载。
---------------------------以用户为中心的系统设计---------------------------
对于我们这些曾经被“搁置”、出于质量的考虑被记录在案、被迫跟没有思维无识别能力的冰冷系统打交道,或者带着挫败感整天敲击计算机键盘的人,希望和帮助已经到来。Ritter和他的合著者提倡将合理的、以用户为中心的设计植入系统开发之中。此项贡献十分及时,并且广受期待。他们的书是他们所倡导原则的一个鲜活实例。该书可读性高、教育意义强、易于使用,极具创新性,并将书中阐述的理论付之于写作的实践中。不管所开发的系统有多么“硬”或有多么“软”,每个渴望构造、设计、开发现代技术性系统的人都应该有此书。即使只有一部分设计人员和用户读了此书,我们的开发设计也会比以前好很多。如果此书能够流传开来,它就能改变我们的世界,让世界变得更加美好。如果不能,“电子愤怒派”(technorage)将只会更多,卢德派(Luddites)也将再次发展成一个不可忽视的社会力量。
中佛罗里达大学珀加索斯讲席教授、校董事会讲席教授、教务长杰出研究教授
Peter Hancock