【翻译】(0)开发者的指引
see
http://developer.android.com/guide/index.html
原文见
http://developer.android.com/guide/index.html
-----------------------------------
The Developer's Guide
开发者的指引
Welcome to the Android Dev Guide! The Dev Guide provides a practical introduction to developing applications for Android and documentation about major platform features. It explores the concepts behind Android, the framework for constructing an application, and the tools for developing, testing, and publishing software for the platform.
欢迎光临Android开发指引!开发指引提供对开发Android应用程序的实践介绍和关于主要平台特性的文档。它探讨Android背后的概念,用于构建应用程序的框架,以及用于为这个平台开发、测试,和发布软件的工具。
The Dev Guide holds most of the documentation for the Android platform, except for reference material on the framework API. For API specifications, go to the Reference.
开发指引持有Android平台的大多数文档,除了关于框架API的参考资料。想获取API规范,请转向参考文档。
As you can see in the panel on the left, the Dev Guide is divided into several sections:
正如你可以在左侧面板中看到的,开发指引被划分为几个章节:
Android Basics
Android基础
An initial orientation to Android — what it is, what it offers, and how your application fits in.
对Android的最初定位——它是什么,它提供什么,以及你的应用程序如何融入。
Framework Topics
框架主题
Discussions of particular parts of the Android framework and API. For an introduction to the framework, begin with Application Fundamentals. Then explore other topics — from designing a user interface and setting up resources to storing data and using permissions — as needed.
Android框架和API的特殊部分的讨论。想获取对框架的介绍,请从应用程序基本要素开始。然后探索其它主题——从设计用户界面和配置资源到存储数据和使用权限——当需要它们时。
Android Market Topics
Android市场主题
Documentation for topics that concern publishing and monetizing applications on Android Market, such as how to enforce licensing policies and implement in-app billing.
对于涉及在Android市场上发布和赚钱的应用程序的主题的文档,诸如如何实施许可证政策和实现应用内广告(注:计费,账单)。
Developing
开发
Directions for using Android's development and debugging tools, and for testing the results.
对于使用Android开发和调试工具,以及对于测试其结果的指导。
Publishing
发布
Instructions on how to prepare your application for deployment and how to publish it when it's ready.
关于如何为部署而准备你的应用程序以及在它准备好时如何发布它的步骤。
Best Practices
最佳实践
Recommendations on preferred techniques for writing applications that perform efficiently and work well for the user.
关于用于编写有效执行和对用户工作良好的应用程序的首选技术的建议。
Web Applications
网页应用程序
Documentation about how to create web applications that work seamlessly on Android-powered devices and create Android applications that embed web-based content.
关于如何创建无缝地工作在基于Android设备上的网页应用程序以及创建嵌入基于网页内容的Android应用程序的文档。
Appendix
附录
Reference information and specifications, as well as FAQs, a glossary of terms, and other information.
参考信息和规范,以及FAQ(注:Frequently asked questions,常见问题解答),一个术语表,以及其它信息。
The first step in programming for Android is downloading the SDK (software development kit). For instructions and information, visit the SDK tab.
在为Android编程中的第一步是下载SDK(软件开发工具箱)。想获取步骤和信息,请访问SDK标签页。
After you have the SDK, begin by looking through the Dev Guide. If you want to start by getting a quick look at some code, the Hello World tutorial walks you through a standard "Hello, World" application to introduce some basics of an Android application. The Application Fundamentals document is a good place to start learning the basics about the application framework.
在你拥有SDK后,从通读此开发指引开始。如果你希望通过获得一些代码的快速查看开始,那么你好世界教程引领你走过一个标准的“你好,世界”应用程序以介绍Android应用程序的一些基础。应用程序基本要素文档是开始学习关于应用程序框架的基础的好地方。
For additional help, consider joining one or more of the Android discussion groups. Go to the Developer Forums page for more information.
想获取附加的帮助,考虑加入一个或更多Android讨论组。转向开发者论坛页以获取更多信息。
To return to this page later, just click the "Dev Guide" tab while any Dev Guide page is loaded.
稍后想要返回到此页,只要在任意开发指引页被加载时点击“开发指引”标签页。
Except as noted, this content is licensed under Apache 2.0. For details and restrictions, see the Content License.
除特别说明外,本文在Apache 2.0下许可。细节和限制请参考内容许可证。
Android 4.0 r1 - 06 Feb 2012 16:36
-------------------------------
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
(此页部分内容基于Android开源项目,以及使用根据创作公共2.5来源许可证描述的条款进行修改)
(本人翻译质量欠佳,请以官方最新内容为准,或者参考其它翻译版本:
* ソフトウェア技術ドキュメントを勝手に翻訳
http://www.techdoctranslator.com/android
* Ley's Blog
http://leybreeze.com/blog/
* 农民伯伯
http://www.cnblogs.com/over140/
* Android中文翻译组
http://androidbox.sinaapp.com/
)
arduino 8段数码管,arduino 8段数码管,arduino 8段数码管
arduino例子,今天学习数码管:
线连接图:
显示的效果是数字从1 到8 ,每间隔2秒换一次
代码如下:
//设置控制各段的数字IO脚,具体几号引脚对应哪一段,来源为数码管官方引脚图。 int a=7; int b=6; int c=5; int d=11; int e=10; int f=8; int g=9; int dp=4; //显示数字1 void digital_1(void){ digitalWrite(c,LOW);//给数字5引脚低电平,点亮c段 digitalWrite(b,LOW);//点亮b段 //熄灭其余段 for(int j=7;j<=11;j++){ digitalWrite(j,HIGH); } digitalWrite(dp,HIGH);//熄灭小数点DP段 } //显示数字2 void digital_2(void){ digitalWrite(b,LOW); digitalWrite(a,LOW); for(int j=9;j<=11;j++){ digitalWrite(j,LOW); } digitalWrite(dp,HIGH); digitalWrite(c,HIGH); digitalWrite(f,HIGH); } //显示数字3 void digital_3(void){ digitalWrite(g,LOW); digitalWrite(d,LOW); for(int j=5;j<=7;j++){ digitalWrite(j,LOW); } digitalWrite(dp,HIGH); digitalWrite(f,HIGH); digitalWrite(e,HIGH); } //显示数字4 void digital_4(void){ digitalWrite(c,LOW); digitalWrite(b,LOW); digitalWrite(f,LOW); digitalWrite(g,LOW); digitalWrite(dp,HIGH); digitalWrite(a,HIGH); digitalWrite(e,HIGH); digitalWrite(d,HIGH); } //显示数字5 void digital_5(void){ for(int j=7;j<=9;j++){ digitalWrite(j,LOW); } digitalWrite(c,LOW); digitalWrite(d,LOW); digitalWrite(dp,HIGH); digitalWrite(b,HIGH); digitalWrite(e,HIGH); } //显示数字6 void digital_6(void){ for(int j=7;j<=11;j++){ digitalWrite(j,LOW); } digitalWrite(c,LOW); digitalWrite(dp,HIGH); digitalWrite(b,HIGH); } //显示数字7 void digital_7(void){ int j; for(j=5;j<=7;j++){ digitalWrite(j,LOW); } digitalWrite(dp,HIGH);{ for(j=8;j<=11;j++) digitalWrite(j,HIGH); } } //显示数字8 void digital_8(){ for(int j=5;j<=11;j++){ digitalWrite(j,LOW); } digitalWrite(dp,HIGH); } //显示dian void digital_dian(void){ digitalWrite(dp,LOW); } void setup(){ for(int i=4;i<=11;i++) pinMode(i,OUTPUT);//设置4~11引脚为输出模式 } void loop(){ digital_1();//数字1 delay(2000);//延时2s digital_2(); delay(2000); digital_3(); delay(2000); digital_4(); delay(2000); digital_5(); delay(2000); digital_6(); delay(2000); digital_7(); delay(2000); digital_8(); delay(2000); digital_dian(); delay(2000); }
,最终效果如下图显示:
在一个很长的调研日的休息时分,我在同一个客户谈一个项目,在这个项目中,我正为一个全球经济公司开发一个iOS标准。他们的第一反应是这样的: “什么?你在开发Apple iOS以外的标准?那还要开发什么?”于是,我们就移动设备标准进行了一个很长的讨论——这些标准是什么不是什么,以及这些标准应该是什么样。比如说,Apple 在解释他们的触摸交互模型以及iOS的独特的UI元素设计方面做得很好,对于这些技术的使用时机以及方式都给出了例子。但是除了Apple给出的标准以外,应该还有很多其他应该做的。
<!--more-->
从这次对话以及其他的一些与创建标准相关的经历中,我意识到大多数公司都是从品牌 的 角度来看标准的。有一些甚至是从界面设计的角度来看标准。但是创建标准绝不仅仅包括这些,尤其是对移动设备来说。移动平台不同于普通的计算平台,在普通的 计算平台中,你可以做出一些确定的假设,即工作将会如何进行以及人们将会如何操作。现代的移动平台也不同于过去有着T-9输入以及基于文本的布局的手机时 代了,过去的手机特性限制了你可以设计的交互类型的广度与多样化。
移动设备有着惊人的多样性,为移动设备进行设 计,你需要了解你的客户的文化,他们想要借助移动设备完成的任务,以及他们完成工作的背景。为移动设备进行设计需要从人性化的视角出发,设计移动设备标准 也是一样。移动设备标准的基本的目标是要让它们能过适应传统界面。从商业角度来看,设计移动标准有两点理由:
- 统一标准可以避免跨项目跨界面的开发者和设计者的重复工作,省时省钱。
- 统一标准可以创建对用户来说更高效更熟悉的界面,从而增加易用性,减少学习曲线。
这两点优点应该包含在任何指导性文档中。但是随着移动设备界面的标准的出现,有很多其他方式让这些指导方针影响受众:根据这些标准实施的开发者和设计者,产品的终端用户。
标准为设计者和开发者学习了解移动设备平台提供了一个机会
移 动设备标准的最初的读者就是开发团队和设计团队了,因为他们需要应用这些标准,因此标准需要满足他们的需求。当开发者和设计者为一个笔记本或台式机开发新 的产品的时候,开发过程相对来说更为直接。因为他们已经知道平台是什么样子,知道常见的交互是什么,以及终端是怎样的。但是即使是现在市场上最常见的智能 手机以及平板电脑(至少在北美和欧洲是如此),相对而言都是很新鲜的:iPhones , Droids, iPads , 新的Blackberry 模型等等。因此,很多设计者和开发者在面对这些移动设备平台的时候,都是面临着一个新的平台。一个标准文档可以帮助开发者和设计者更快了解这些平台,在文 档中,可以指定指导性内容,包括平台相关信息、包含的交互形式以及接口。轨迹球交互和触摸屏交互的区别是什么?当创建信息层次时,需要考虑的一些重要因素 是什么?这些都是可以在标准文档中回答的问题的例子,它们使设计者和开发人员更好地了解指引,准确地解释它们,并创造最佳的设计。
移动设备标准需要弄清什么样的任务才是适合移动设备的
移 动设备标准接下来的读者就是使用遵循标准的产品的人群了:网站以及应用的使用者。在设计任何界面的时候,第一步都要理解这个界面的受众是谁,他们的需求, 他们的预想,他们的行为。这将帮助项目小组弄清他们的受众想要完成怎样的任务,以及用户完成任务时周围是怎样的环境。有一个界面层面的规范和指南是很重要 的,但是如果工作流和界面所支持的任务不适合在移动设备上进行,不论界面有多标准都没用。下面是用来判断一个移动设备任务是否会成功的两个最基本的标准:
这些问题的答案根据产品的用户不同、用户使用地点不同、用户拥有的设备不同以及他们想要完成的任务不同将会发生极大的变化。根据这个层面的理解,一个人就可以确定用户的高优先级任务是什么,然后着重设计对移动设备来说适合并且重要的任务。
例 如,针对销售人员的用户调研可能指出他们的基本任务是在和客户谈话时“数据录入”,但是数据录入对移动设备而言并不合适,因为键盘很小,数据录入需要花费 很多时间。而在另一方面,一个销售人员可能会觉得“浏览内容”是很重要的,因为他需要查看团队的每周进度,这个任务对于移动设备来说就是值得实现的。通过 区分合适的移动设备任务并将它们以移动设备指南的形式形成文档,这样的标准能帮助确定什么产品对于移动设备来说是真正重要的,以及什么是不建议去做的。在 研究界面方面的内容如过滤内容和产品等之前,研究这些指南更为重要。
移动设备标准应该定义交互模型,而不只是平面 UI 元素以及品牌
Apple , Android , Blackberry在和开发社区之间共享标准方面都做的很好。他们分享了详细的指南,内容包括标准的UI元素,相关的终端,以及它们的行为特性,并且给 出了UI的例子。但是,他们没有做的是将这些整合起来成为模式。在你按了这个键以后会发生什么?这些信息在任务的上下文中应该如何改变?如果你在线打开一 个文档,它应该在一个新窗口打开还是在当前窗口打开?错误信息将以何种形式出现在何时何地?在向导中或者一系列表格中有什么不同或相同吗?这些都是设计者 以及开发者花费大量时间思考的问题——都是小问题,但是却将UI元素整合在一起成为一个完整的交互。这些问题也是OS标准没有涉及的内容。对于开发者和设 计者来说,这一标准上的空白一旦被填补,将会节约开发过程中的资金和时间,并使得现有的基本的OS标准更有价值。
移动设备标准应该加入最佳实践范例和以用户为中心的设计方法
不 是每个人都是UX专家;但他们却需要成为UX专家。很多在公司里设计界面的人都是很有创意的设计者和开发者。他们的关注点不在UX设计条例上。但是,每个 人都想创建尽可能好用的产品。一个标准文档能让他们了解UX调研方法的基本知识和技能以及最佳实践的例子。UX设计是一个广泛的话题,包含何种技能;一些 人还专门去读研究生以了解这一学科。但是,有一些基本的事情可以通过标准来传达,例如:
- 在设计过程中,进行不同调研的最好时机是什么。
- 在设计界面的时候,要保证考虑用户,需要向自己问的一些问题。
- 开发者很容易克服的常见设计错误。
除 了帮助设计者设计出更好的界面以外,这些信息还可以在开发者和设计者面临必须偏离标准时来指导他们。例如,一个设计者知道某个特定应用在标准中没有,他们 必须偏离标准,创建一个独特的界面。但至少他们此刻知道需要采用UX最佳设计原则并采用标准中的设计方法,以便让新的界面是可用的、有用的并且设计精良 的。
所有这些内容都应该提供一个UX专家的联系方式,那么,当有问题出现或者需要做调研的时候,设计者或者开发者的需求能被满足。
需要建立一个标准管理与维护小组
这 对任何标准模型来说都是需要的,不只是移动设备标准,但这一点通常为人所忽略。随着新平台的出现,标准中并没有覆盖相关内容或者并不适合新平台,开发者和 设计者在面临这样的情况时,对于该如何设计会觉得的不熟悉。因此,他们会有一些问题,在某个特定的环境下或者独特的界面中要如何实现这些标准。因此,对各 种类型的标准来说,一个管理小组是很重要的,对于移动设备标准来说也是十分关键的。需要在组织内部指定一个人或者一个团队并赋予他们权利来监督标准执行。 这个人或者小组的一个基本职责就是确保在组织内部,该标准的大体情形不会发生改变。是否有人在另外一个部门创建了一套不同的标准,导致有两套可能会互相冲 突的标准?是否有人私下对标准做了改变并将其传播?这些情形是很常见的,并且如果它们不被监管并解决的话,在公司内容就会产生冗余和疑惑。类似地,同样需 要留下一个人或者小组的联系方式,以便在人们需要偏离标准时可以与之联系。这些都是一直在发生的事情,但是可以得到控制,就能有最优的界面应用设计了。
最 终,这个小组需要维护标准。移动设备每天都在改变,不断有新版本的Android手机,iOS更新,新的平板电脑,或者改变了基本交互的新特性。因为这些 原因,移动设备标准不是件一蹴而就的事情。需要一个人或一个小组来维护这些标准,并时刻关注前沿,检查标准是否过时,并在需要的时候即使更新标准以保持其 效用。
永远需要记住你的受众的观点。对于移动设备标准来说,你的受众就是你的公司、开发人员或是设计人员的子团队。对于交互应该是什么样, 什么性能比较重要,每个人都有他们的观点。根据你的受众的文化,可以确定标准应该有多少指令性,多少强制性,多少是需要阐释的。只有考虑到有受众在内的公 司的文化,你的标准——不论是移动设备还是其他——才能被很好地采用,并达到用较少的资金创建流畅的、好用的界面的目标。
作者简介
Megan Geyer是MISI公司的首席用户体验架构师,努力通过服务或产品的设计实施来确保所有的受众都能被理解或代表。在她的职业生涯中,她曾在全球的跨渠道 的受众研究和设计项目中工作,管理用户体验项目,并为多种行业内部和面向消费者的网站提供信息架构和交互设计。Megan是纽约可用性专业人员协会(NYC Usability Professionals Association )的会员,并持有Rutgers University心理学学士学位。
原文链接:Raising the Bar forMobileStandards