Android中获取设备当前时间日期

代码与范例:

说明:获得设备当前的时间与日期,并将它们转换成字符串变量以供输出。获得当前时间日期虽然也有通过Java的实现方法,不过对于Android来说,使用Calendar类来获取这些信息显然更为便捷。除了这里列出的月/日/时/分以外,Calendar类还提供了包括周数在内的很多实用内容,可自己去了解一下。

Android用记事本程序 Techo Lite 版本升级 1.4.0

Techo Lite是一款以快速启动和功能精简为特色的Android用记事本软件。编写的初衷是为了能有一个只需一次按键就能立即开始文字输入且不必考虑保存、打开等问题的便筏。

因为发现最近多次想要通过邮件发送Techo Lite上记录的内容,于是就进行了一下小改良,增加了这一功能。

关于之前版本的相关信息,请参见之前的升级日志

这次1.4.0升级的内容是在选项菜单中新增了“通过邮件发送”的选项,可以直接进入电子邮件程序,并设置邮件标题为[TECHO LITE]+当前日期+当前时间,设置邮件内容为当前便筏中的文本内容。

Android Market页面:

https://market.android.com/details?id=org.breezesoft.techolite

仅仅是增加了一个通过邮件发送的选项而已,也就不重复发布程序截图了。

动作栏(Action Bar)

Action Bar是活动中的一种控件,用以代替传统的屏幕顶端的标题栏。默认,Action Bar包括了左侧的应用程序图标(logo),其右是活动的标题,以及Option Menu中的可选项目。Action Bar提供了多种便利特性,包括:

  • 直接在Action Bar中显示Option Menu中的项目,称之为“动作项目(action item)”——以提供对于关键用户操作的快速选择。没有作为动作项目显示的菜单项目则位在浮动式菜单中,通过Action Bar的下拉列表显示。
  • 提供在不同片段之间的导航标签。
  • 提供导航用的下拉列表。
  • 提供交互式的“动作视图(action view)”以代替动作项目(例如搜索框)。
图1. Email应用程序中Action Bar的一个截图,包含了编写新邮件和刷新收件箱的动作项目。

添加Action Bar

Action Bar在Android 3.0及以上的活动中是默认被包含的。更为具体地说,所有使用了新的“holographic”主题的活动将包含Action Bar,而任何以Android 3.0为目标平台的应用程序将自动使用该主题。当一个应用程序在<uses-sdk>元素中设置了android:minSdkVersionandroid:targetSdkVersion属性为“11”或更高时,被认为是以Android 3.0为目标平台的。例如:

在本范例中,程序请求了最小API等级为4(Android 1.6),而目标API等级为11(Android 3.0)。这样,当程序安装于运行Android 3.0或是更高版本的设备上时,系统将为每一个活动提供holographic主题,因而每个活动都将包含Action Bar。

不过,如果希望使用Action Bar的API,例如添加标签或是修改Action Bar风格,就需要将android:minSdkVersion设为“11”,这样才能使用ActionBar类。

移除Action Bar

如果希望从某个指定的活动中移除Action Bar,只需将该活动的主题设为Theme.Holo.NoActionBar。例如:

提示:如果希望从一个自定义的主题中移除Action Bar,只需将android:windowActionBar样式属性设为false。关于更多Action Bar样式的内容请参见“对Action Bar使用样式”。

还可以在运行时通过调用hide()来隐藏Action Bar,之后通过调用show()来再次显示它。例如:

当Action Bar隐藏时,系统将调整活动的内容来填充可用的屏幕空间。

注意:如果移除了使用主题的Action Bar,那么该窗口将完全禁用Action Bar而无法再在运行时添加——调用getActionBar()将返回null。

添加动作项目

动作项目仅仅是Option Menu中被声明要直接显示在Action Bar上的菜单项目。一个动作项目可以包括一个图标和/或文本。如果一个菜单项目不是动作项目,那么系统将把它放在浮动式菜单中,用户可以通过选择Action Bar右侧的菜单图标打开浮动式菜单。

当活动启动时,系统将通过调用onCreateOptionMenu()来为活动生成Action Bar和浮动式菜单。如同在“菜单”开发者指南中所描述的,这是为活动定义Option Menu的回馈方法。

可以指定某一菜单项目作为动作项目显示——如果有这样的空间的话——通过在菜单资源中为<item>元素声明android:showAsAction=”ifRoom”。这样,该菜单项目仅会在空间足够时显示在Action Bar中以供快速选择。如果空间不足,该项目将被置于浮动式菜单中(通过Action Bar右侧的菜单图标打开)。

可以在应用程序代码中声明一个菜单项目为动作项目,只需对MenuItem调用setShowAsAction()并传递SHOW_AS_ACTION_IF_ROOM。

如果菜单项目同时提供了标题和图标,那么动作项目默认只显示图标。如果希望让动作项目包含文本,需要在XML中添加”with text”旗标、对android:showAsAction属性添加withText,或是在程序代码中调用setShowAsAction()并使用SHOW_AS_ACTION_WITH_TEXT旗标。图2展示了有两个带有文字的动作项目以及浮动式菜单图标的Action Bar。

图2. 有两个动作项目以及浮动式菜单图标的Action Bar的屏幕截图。

下面是一个在菜单资源文件中将菜单项目声明为动作项目的一个范例:

在这时,ifRoomwithText旗标都被设置了,所以当这个项目作为动作项目显示时,它包含了图标以及标题文本。

Action Bar中的菜单项目和Option Menu中的其他项目都会启发相同的回馈方法。当用户选择了一个动作项目时,活动将收到一个onOptionsItemSelected()的调用,并传递项目ID。

注意:如果用片段中添加菜单项目,那么该片段相应的onOptionsItemSelected()方法将被调用。然而活动可以在此之前先对其进行处理,也就是说系统对活动的onOptionsItemSelected()调用要先于对片段的。

可以声明一个项目总是作为动作项目出现,不过这并不被推荐,因为这会在有太多的动作项目时让UI变得混乱,Action Bar中的动作项目将会项目重叠。

关于菜单的更多信息,请参见“菜单”开发者指南。

将应用图标用作菜单项目

应用程序图标默认出现在Action Bar的左侧。它也将响应用户交互操作(当用户点击它时,它会有和其他动作项目一样的视觉响应),但需要手动指定用户点击时的行为。

图 3. Email的Action Bar,左侧有应用程序图标。

通常的行为应当是在用户单击图标时让应用程序回到“主活动”或是(比如,在活动没有发生变化而片段变化了的时候)回到初始状态。如果用户已经处于主活动或是初始状态,则不必进行任何处理。

当用户单击图标时,系统以android.R.id.home的ID调用该活动的onOptionsItemSelected()方法。因此,需要在onOptionsItemSelected()方法中添加一个条件判断来侦听android.R.id.home并执行正确的行为,例如启动主活动或是将最近的片段事务出栈。

如果通过返回主活动来响应应用图标的点击,那么需要在Intent内包含FLAG_ACTIVITY_CLEAR_TOP旗标。这样,如果要启动的活动已经存在于当前任务的话,所有在其上的活动将被销毁,该活动将回到最上层。这种方式是令人满意的,因为回到“主活动”和“返回”是等价的,不应该为主活动创建新的实例。否则,最终在当前任务中会有一个很长的活动栈。

例如,下面是一个onOptionsItemSelected()的实现,它将返回应用程序的“主活动”:

使用应用图标来进行”向上一级“导航

还可以使用应用程序的图标来为用户提供“向上一级”的导航。这在程序中的活动总是以某种固定的顺序出现并期望用户能方便地返回上一级活动的情况下特别有用(不过无所谓用户是怎样进入当前的活动的)。

响应这一事件的方式和返回主活动的方式是相同的(和上文所说的类似,只不过现在是根据当前的活动是哪一个来启动另一个不同的活动)。为了告诉用户这时的情况将有所不同,唯一需要做的就是把Action Bar设为“show home as up”。这通过对活动的ActionBar调用setDisplayHomeAsUpEnabled(true)即可完成。这时,系统将为应用程序的图标增加一个表示向上一层动作的箭头,就像图4这样。

图 4. Email应用的标准图标(上)和“向上一层”图标(下)。

例如,下面是将应用图标表示为“向上一层”动作的方法:

之后,活动应当在用户单击图标时进行响应,在onOptionsItemSelected()中,通过监听ID android.R.id.home(如上所示)。在这种情况下,当向上导航时,在Intent中使用FLAG_ACTIVITY_CLEAR_TOP旗标是更为重要的,这样才能不在上级活动的实例已经存在时还再次创建一个新的。

添加一个动作视图(Action View)

动作视图是在Action Bar上出现的一个控件,作为动作项目的一种替代。例如,如果在Option Menu中有一个项目是“搜索”,那么当该项目作为动作项目使用时可以在Action Bar中为该项目添加一个提供SearchView控件的项目。

当为一个菜单项目添加动作视图时,允许该项目在没有出现于Action Bar时仍能作为一个通常的菜单项目执行指令是很重要的。例如,一个执行搜索工作的菜单项目应该默认弹出Android搜索对话框,但如果该项目被置于Action Bar的话,动作视图将以SearchView控件的形式显示。图4展示了一个动作视图的SearchView控件的范例。

图4. 带有一个SearchView控件的动作视图。

为一个项目声明动作视图最好的方式是在菜单资源中使用android:actionLayout或是android:actionViewClass属性:

  • android:actionLayout的值必须是指向一个布局文件的资源指针。例如:

  • android:actionViewClass的值必须是一个所要使用的View的完整类名。例如:

必须包含android:showAsAction=”ifRoom”以使项目在空间足够时作为动作视图显示。不过,在必要时,可以通过设置android:showAsAction“always”来强制该项目以动作视图显示。

现在,当菜单项目作为一个动作项目显示时,它将是一个动作视图而不是图标和/或标题文本。不过,如果在Action Bar中没有足够的空间的话,该项目将在浮动式菜单中以一个通常菜单项目的形式显示,必须在onOptionsItemSelected()回馈方法中响应该项目。

当活动首次启动时,系统通过调用onCreateOptionsMenu()生成Action Bar和浮动式菜单。当菜单在该方法中被展开之后,可以通过以菜单项目的ID调用findItem()来获取动作视图的元素(比如为了绑定监听器),而后对所返回的MenuItem调用getActionView()。例如,上面的例子里的搜索控件可以像这样获得:

关于使用搜索控件的更多信息,请参见“创建一个搜索接口”。

 添加标签(tab)

动作栏可以显示标签以使用户在活动内的不同片段之间导航。每一个标签可以包含一个标题和/或一个图标。

图 6. 在Honeycomb版本的图库范例程序中的Action Bar中的标签的截图。

首先,布局必须在每一个和显示的表现相关联的Fragment中包含一个View。要确保该视图有一个能在代码中引用的ID。

要添加标签至Action Bar:

1. 创建一个ActionBar.TabListener的实现来处理Action Bar标签的交互事件。比如实现所有的方法:onTabSelected()、onTabUnselected()和onTabReselected()。

每一个回馈方法都将传递收到了事件的ActionBar.Tab和一个FragmentTransaction用以执行片段事务(添加或是移除片段)。

例如:

这种ActionBar.TabListener的实现添加了一个保存与标签关联的Fragment的构造函数以使每一个回馈函数可以添加或是移除片段。

2. 在onCreate()时通过在Activity中调用getActionBar()来获取活动的ActionBar(不过要注意需要在调用了setContentView()之后才这么做)。

3. 调用setNavigationMode(NAVIGATION_MODE_TABS)来开启ActionBar的标签模式。

4. 为Action Bar创建所有的标签:

1. 通过对ActionBar调用newTab()来创建新的ActionBar.Tab。

2. 通过调用setText()和/或setIcon()来为标签添加文字和/或图标。

提示:这些方法返回相同的ActionBar.Tab实例,所以可以将这些调用一起使用。

3. 声明ActionBar.TabListener,并通过向setTabListener()传递其实现的一个实例来使用它。

5. 通过对ActionBar调用addTab()来添加所有的ActionBar.Tab,并传递它们。

例如,下面的代码结合了步骤2-5来创建了两个标签并将它们添加至了Action Bar:

标签被选中时所有需要进行的行为都必须在ActionBar.TabListener回馈方法中被定义。当一个标签被选中,它将收到一个onTabSelected()的调用,应当在这里通过使用add()及所提供的FragmentTransaction来向布局中指定的视图添加正确的片段。类似的,当一个标签被取消选中时(因为另一个标签被选中了),则应当使用remove()来从布局中移除该片段。

注意:不能为这些事务调用commit()——系统会调用它,如果手动调用的话将会抛出一个例外。同时也不能将这些片段事务添加至返回栈。

如果活动被中止,应当保存当前选中的标签,这样当用户返回应用程序时,可以打开该保存的标签。在保存状态时,可以通过getSelectedNavigationIndex()获取当前选中的标签。这将返回所选标签的索引位置。

注意:应该在必要时保存每一个片段的状态,这样用户在切换标签并返回前一个片段时能保持之前的样子。关于保存片段状态的更过信息,请参见“片段”开发者指南。

添加下拉式导航

 

由于官方对文档进行了更新,有较大的改动。因此对于本文的翻译暂时中止,将在之后进行重新翻译。

本页部分内容根据Android Open Source Project创作并共享的内容修改,并在知识共享 署名2.5许可协议中所述条款的限制下使用。

通过Sony Tablet进行Android开发

昨天索尼开放了适用于Sony Tablet(Android平台)和Sony Internet TV(Google TV)的开发者网站,提供了相应的Add-on和Develop guideline等内容的下载。

不过模拟器的运行速度缓慢,终究不适合实际的开发。既然已经有了Tablet S的实机,就用实机来开发吧。步骤如下(以下内容适用于Windows,其他操作系统请参见上一节中提到的开发者网站的相关内容):

  1. 安装Android的SDK,并通过SDK Manager下载安装Google USB Driver。目前应该是r4版本。
  2. 开启Tablet S的Debug选项并连接PC与Tablet S。
  3. 应该是无法找到Debug驱动。需要打开设备管理器,选择为未知设备Sony Tablet更新驱动。手动选择驱动程序路径为Android SDK下的google-usb_driver目录。会出现安全提示,不必在意,继续确认安装即可。
  4. 为adb_usb.ini添加索尼的制造商信息。具体方法为打开命令提示行,使用cd指令定位到.android目录(通常位于用户目录之下)。输入

至此Sony Tablet的开发驱动就安装完成,可以通过Eclipse进行开发与调试。下面是截图的效果图:

索尼(SONY)平板电脑Tablet S测评——硬件篇

Tablet S距离完成上一篇的开箱篇已经经过了两天,对于Tablet S也有了更多的了解。不得不说Tablet S在很多方面的表现都超出了我的预期。在这篇里,首先谈谈Tablet S的硬件。

在谈感想之前,先是Tablet S的一些实机照片

正面,除了上方的摄像头外没有多余的元素:

背面,上方是搭载了Exmor for mobile传感器的摄像头,四角处有防滑垫。左下角是SONY的Logo,右下角是PlayStation Certified的Logo。整个背面有防滑的磨砂处理:

和B5尺寸笔记本的大小比较,屏幕面积和B5尺寸相当,加上边框后略大:

左侧,有3.5mm的耳机插口和保护盖。保护盖内是MicroUSB接口和SD卡插槽:

右侧,内藏了电源键、音量键+-、和Reset孔:

厚度与1元硬币的比较,Tablet S最薄处10.1mm,最厚处约20.6mm:

斜侧:

电源接口和挂绳孔。为了能使Tablet S方便地和底座配合使用而采用了全新设计的电源接口。挂绳孔上方的是左扬声器:

SONY的Logo和右扬声器:

背面左侧以及按键特写。在电源键和音量+之间的是电源指示灯。和索尼的其他产品类似,充电时为橙黄色指示:

背面摄像头特写。Exmor for Mobile传感器使得Tablet S在夜间微光环境下的拍摄效果令人满意。虽然或许和Exmor R传感器还有一定的差距,但是和自己现在用的Xperia X10等手机或是其他平板电脑上所采用的摄像头相比较的话绝对是大幅领先:

底座特写。Tablet S的正面没有SONY的Logo的原因,恐怕就是因为底座上的这个Logo吧。底座的背面设计简约。底部则有电源接口(和Tablet S本体的电源接口相同)和产品信息,依然是中国制造:

底座实际使用效果。该底座具有15度、25度两种角度可调节:

照片之后,具体谈谈几点。

关于厚度与外形设计:

索尼这次做了很大胆的尝试——不是“平板”的平板电脑。就和最初预料的一样,这一创新同时得到了称赞和批评。但不可置疑的是,这种设计使得Tablet S在众多平板之中显得异类。

外观本是见仁见智的事,自己会觉得iPhone 4之前的iPhone以及iPod Touch都很丑,同时觉得iPhone 4就很不错。会觉得无论是iPad还是东芝(TOSHIBA)和三星(SAMSUNG)的每一款平板都是那么死板和呆滞,而Tablet S就简约不俗。

所以这里抛开这些主观因素,来谈谈这种设计本身。根据对Tablet S的设计师的访谈(可以在索尼日本的Facebook主页上找到),Tablet S采用了厚度不一的偏重心设计并非只是为了创新而创新,而是从更为根本的角度出发——使用者的舒适性。

平板电脑在很多场合下都需要单手把持,长时间的情况下对于手臂手腕是个不小的负担。Tablet S 598g的重量和iPad2等主流的平板电脑相当,那么如何改善这一问题?缩短力矩。

不对称的设计使得Tablet S的重心偏向于较厚的一端,于是重力的力矩缩短,手实际感受到的压力也就相应减小了。最终的结果就是,Tablet S实际使用时比预料中的要轻不少。这也是自己对该设计的最大的满意之处。

一端较厚的设计所带来的另一个好处则是更好的把持手感。公正地说,流线型而贴合手掌的厚部的把持手感要好于其他那些一味追求超薄的平板电脑。我认为2cm的厚度换来手感的提升是值得的事,这也并不会带来太多便携性上的损失,至少对于自己来说如此。

关于做工和材质:

Tablet S的做工非常出色,保持了索尼一贯的高水准。而对于其塑料的外壳材质,确是有不少遗憾之声。自己本身对于外壳材质从不关心,倒是常常见到不少各类测评文章里会提一句“塑料材质降低了其质感”或是“金属材质提升了其质感”,对此我始终无法理解。

对于Tablet S来说,自己无法想象其外壳换用金属之后会是怎样一种感觉,或者说,想象的结果是只会降低使用感受。现在采用的磨砂的背面设计已经提供了很好的效果,如果不是对于金属外壳有着特殊的嗜好的话,应该可以不必对此介怀。

关于屏幕:

Tablet S使用了一块9.4英寸的IPS屏幕,分辨率为1280×800像素。由于采用了索尼近年来在高端产品上使用的TruBlack技术,这块屏幕的对比度十分不错,色彩表现也很自然。Tablet S的屏幕表现可说无可挑剔。

关于扬声器:

Tablet S具有左右立体声扬声器。实际的表现出乎意料的好。音场宽广、低音有力而不混浊。

实际上,这是由于Tablet S所搭载的xLOUD和Clear Phase技术的加持。xLOUD是在最近索尼和索尼爱立信(Sony Ericsson)的产品中被使用的技术,可以“提升设备内置扬声器的迫力”。感觉上应该是在提高音量的同时进行了一些例如防止破音等的相应的处理的算法。而Clear Phase则是保持了声音的通透。

当然,Tablet S的外方效果和专业的音响器材还是无法相比的。只能说和同类产品相比优势明显。

关于按键和接口:

电源键和音量键陷于右侧机身凹陷处内,不易发生误操作。按键的硬度适中,无可责难。很特别的提供了Reset孔,不知是有什么意图?是对于Android系统的稳定性没有信心么……

左侧则是3.5mm的耳机插孔和保护盖。可惜的是,不知是否是个别问题,耳机插孔和保护盖都偏紧。耳机的插拔相当不易,而保护盖的开启也不能用轻松来形容。撇去这点,自己一直对索尼各种产品上的保护盖设计很喜欢,VAIO的网线保护盖、PSP的记忆棒保护盖、X10的USB接口保护盖,和这次Tablet S的USB/SD口保护盖。不让冷冰冰的接口或插槽裸露在外,是索尼的一种理念。

关于音质:

Tablet S一改常态,支持了包括flac在内的大量音频格式。实际的音质中规中距,推力足够。关于音质,说到底就是音源质量+设备解码性能+播放器软件算法+耳机还原能力。而自己有并不特别喜欢过分的音染,于是很多情况下对播放设备的音质并没有太多可说,因为最终起决定性作用的还是耳机而已。自己的EX500在Tablet S上依然有少数高音部分有齿音的现象,此外低音下潜得够深、声场较宽、声音的分离度较好等说到底是耳机的能力高低。总之Tablet S的音质就是这样,如果耳机够好就能获得较好的效果,反之则不行。

关于视频解码性能:

这一点无需详述,和其他Tegra 2平台的Android平板电脑一样,某些格式下对于播放直至1080p分辨率的视频都没有压力。

关于触控手感和系统流畅度:

索尼甚至对Tablet S的屏幕进行了特殊的除静电处理以确保Tablet S的系统界面能有“贴着手指移动”的感受。事实上Tablet S做到了。系统界面的流畅度相当高。还没能和iPad2做比较,不过能够确定的是不在iPhone 4和iPod Touch 4之下。更早的初代iPad自然是没有可比性——当然从发售时间上来说也不应该做这种不恰当的比较。大部分的应用,也处于了很高的流畅程度,这一点在下一篇的软件篇中将更为具体地说明。在两天的使用过程中大部分的等待仅仅是因为网络速度的限制而已。因为系统不够流畅而产生的烦躁感相当少,或许就和很多其他测评文章的结果一样——“和平板电脑的标杆iPad2尚有差距,但是优于其他现有的Android 系统平板电脑”。

关于电池续航能力:

并没有做专门的测试。其他来源的测试结果有最大亮度下开启Wifi浏览网页6-8小时的结果。实际使用的情况是,昨天早晨6:20分断开电源,中等强度的使用(包括听音乐、浏览网页、收发邮件、通过Gtalk聊天、看电子书等),直到晚上7点左右电池接近耗尽。之前也已经知道,Tablet S的电池续航能力高出平均水平,但是和iPad2,和三星的Galaxy Tab 10.1等接近10小时的使用时间相比还是有一定的差距。(平板电脑的标杆是iPad2而Android系统平板电脑的标杆是Galaxy Tab么……)

其他:

尽管也许是应该在软件篇中才说的,不过这里不得不提一些Tablet S目前的不足。其一在浏览网页时音乐播放有时会卡顿,问题的原因就在于,没错,Flash Player。Android上的Flash Player还很有待改进,目前并不能提供很好的效果,和PC上有着相当的差距(虽然PC上的Flash Player也并不是很完美的东西就是了)。其二是部分索尼自制的软件并不那么好用。日本的软件设计质量不高是众人皆知的,索尼开发的不少软件已经在其中属于高质量的了,但还是难免会有些问题,特别是对于Android还不是那么熟悉之时。Tablet S上的问题有比如Account Manager将阻止设备完全休眠(而缩短待机时间)、Reader的反应速度较慢等。不过确实也说不上是很严重的问题,这些问题相信会随着软件的版本升级而解决(从初次开机至今大部分的索尼自制的软件就得到了一到两次的升级、系统也从Android 3.1升级到了3.2。)

总结:

Tablet S并不完美,和那些标杆比起来也有着或多或少的不足。但是作为索尼的第一款平板产品,能体会到索尼的用心。两天下来,Tablet S给人的感觉就是“用起来很舒服”,那些在别的Android平板电脑上常常会出现的麻烦在Tablet S很少有。

不过说到底,采用了Tegra 2平台就决定了Tablet S和其他同类平板在硬件上不存在根本性的差距。而Tablet S支持的软件和服务才是真正区别它于其他平板电脑之所在。

索尼的电子书服务Reader Store的内置支持、PlayStation Certified游戏平台、Video Unlimited视频服务、基于红外线的家电遥控功能等,将索尼自身的内容资源都整合到了Tablet S之上。Tablet S的Reader功能是自己的Reader PRE-650的一个补充。PlayStation Certified的吸引力倒不大,目前只有一些过时的初代PS游戏,和自己过去在PlayStation Store上购买的PS游戏也并不通用。游戏果然还是交给专用的游戏主机比较好。Video Unlimited服务和PlayStation Store其实是连通的,所以之前在PlayStation Store的Video类别中购买的MV和电影等可以直接在Tablet S上观看。

以上这些功能国内行货统统不支持。国内行货连Google的相关服务也不支持。取而代之国内行货预装了包括百度搜索新浪微博在内的很多本土化服务。我能理解这么做的理由,不过这也使得我不考虑购买行货的Tablet S。

总之,更多的内容将在接下来的软件篇说明,敬请期待。

2011/11/02更新

使用几天下来对于Tablet S有了更多的了解,对其中索尼自家的软件也有了很深的怨念……不过这里先补充一些关于硬件的内容:

关于厚度和外形设计

实际使用下来偏重心的设计确实令人满意,单手持机非常顺手。不过在双手横向持机时,独特的造型反而带来不够舒适的把持感受。

关于做工和材质

这里想说的是底座。底座应避免和硬物摩擦,不然最外层的细磨砂容易被刮去。虽然下层也是黑色,但是仔细看仍能看出区别……不过底座和Tablet S本体的连接设计确实方便,这也是Tablet S采用专用充电接口的原因。

关于屏幕

和iPad2相比,同样采用了IPS材质屏幕的Tablet S色彩偏黄(或者说iPad偏白?自己个人是更喜欢Tablet S的色彩风格)。同时Tablet S的屏幕可视角度相当优秀,在大角度下色彩偏差也很小。

关于接口

之前提到过Tablet S的耳机插孔和接口保护盖偏紧(虽然不清楚是否是个别现象),现在发现布局也有些问题——插着耳机时几乎是不可能打开保护盖的。两者的位置过于靠近使得无法用力。这个问题就和部分VAIO机型USB接口过于靠近一样难受。

关于视频播放

受限于Tegra2芯片的运算能力,Tablet S对于所播放视频的码率还是有所限制的,过高的码率将无法流畅播放甚至无法播放。之前的说法有些问题。中低码率1080p的AVC Baseline Profile视频尚可轻松应对,而较高码率的AVC Main Profile或是AVC High Profile视频就比较吃力甚至无力了,这时即使只是720P分辨率也可能难以流畅播放。

最近事情也比较多,更多的测评可能要需要一段时间。Tablet S在软件方面可说是喜忧参半,具体内容将在之后的软件篇中详述。

2011/11/04更新

关于电源指示灯和通知灯

Tablet S除了在电源键和音量+键之间的电源指示灯之外,在机身右侧上部还设计了隐藏式的绿色通知灯。平时通知灯是不可见的,但在收到消息(例如新邮件)时,如同索尼或索尼爱立信的其他产品,该通知灯会不断闪烁提示用户。使用手机拍摄了通知灯的效果,不过由于是夜间以及手机的摄像头能力问题,效果不好还请见谅 :)

2011/11/05更新

关于电池续航能力

今天作了一下Tablet S电池续航能力的测试。

测试条件为:屏幕亮度最大,启用Wifi,启动背景数据和自动同步,使用VPN(虽然会增加耗电量但是能确保在大陆也和Google服务器正常同步),连续播放幻灯片。幻灯片内容为Tablet S内预置的图片。

测试结果为:从100%满电状态起测试,直至没电自动关机,续航时间约为4小时36分。

对于这个结果的一点分析:首先可以看到电池消耗平稳,性能稳定。大部分的电量都被消耗在了屏幕上,系统本身消耗的电量并不多。自己在平时的使用中,事实上并不会使用最大屏幕亮度,而是使用自动调节亮度,因而屏幕所消耗的电量大幅降低,电池续航时间也会相应增加。虽然没有做过测试,不过估计能达到6小时甚至更久。

事实上,标称9小时视频播放时间的三星(Samsung)Galaxy Tab 10.1配备了7000mAh的电池,处理器是和Tablet S相同的Tegra 2,屏幕尺寸也相差不大。这里不清楚9小时的时间三星是如何计算的,这里这样估计:系统本身的耗电量相对来说是很少的,忽略不计,7000mAh能拥有9小时的视频播放时间,那么5000mAh就能拥有6.43小时的视频播放时间,相差约2.5个小时。这和索尼官方的数据也相近。至于待机,之前有过12小时以上的待机(屏幕关闭+飞行模式),耗电量约为3%。

结论。由于5000mAh的电池容量限制,Tablet S的续航时间中规中距。和Galaxy Tab 10.1这样的Android平板标杆的7000mAh容量电池相比,有着物理上的差距。自己在使用的过程中每天晚上都会将Tablet S置于底座上充电并作为时钟使用(Tablet S的时钟的夜间模式亮度完全不刺眼,很好用),而白天也没有过电池告急的情况,通常晚上还能进行数小时的音乐播放(屏幕关闭状态下)。这样的电池续航能力对自己而言已是相当满足。

不过电池容量多多益善,相信索尼的下一代平板会在这方面更进一步了吧。

2011/11/11更新

关于GPS

之前一直忘提了,Tablet S的GPS搜索能力并不是很强。即使在户外,定位速度也称不上很快。不过在有Wifi连接的情况下可以通过Wifi迅速定位,如果是3G版的话通过移动信号基站也能进行定位,加之需要使用平板进行GPS定位的场景也并不多,因此倒也不算是很严重的问题。

2011/11/19更新

关于屏幕

Tablet S的屏幕使用的并不是强度硬度超高的Gorilla玻璃,不过也不用担心,和Xperia系列一样,Tablet S在出厂时就贴了一层质量上乘的屏幕贴膜,对于通常的刮擦完全应付有余。基于这个原因,我认为甚至可以不用专门花钱去买另外的贴膜。自己的Xperia X10上的这层贴膜很好的起到了作用,而且还常常是放在口袋中。因此不太会接触硬物的Tablet S理应更没有问题。

关于电容笔

Wacom专为iPad设计的电容笔Bamboo Stylus与Tablet S的相性并不太好。Bamboo Stylus在iPhone和iPod Touch上都能有很好的表现,不过根据测试,它在Tablet S和Xperia X10上表现并不好。Xperia X10的问题是传感飘移,可以说根本无法使用。而Tablet S的传感倒是非常准确,它的问题在于屏幕的材质。或许是气候的原因,总之Tablet S在原厂贴膜(也就是上面提到的出场时的贴膜)以及屏幕玻璃(即撕去了原厂贴膜)的条件下,Bamboo Stylus都不能很流畅地滑动,笔尖和屏幕的摩擦系数太大。另外网上查到的结果,摩托罗拉(Motorola)的Xoom因为反应速度不够快而不能很好地适应Bamboo Stylus,而三星(Samsung)的Galaxy Tab则能很流畅的书写。

不过自己的Tablet S的问题很可能不是普遍的,又或许在一段时间的磨合之后问题会消失。毕竟除了Bamboo Stylus笔尖的橡胶摩擦力太大而无法在Tablet S的屏幕上流畅滑动外,在传感器精度和系统反应速度上并不存在问题。

Android 4.0中文简介

本文主要译自Android开发者网站的Android 4.0 平台亮点文章,简述Android 4.0系统的新特性。没有使用该文章中的图片,相关图片请直接点击链接查看。本文不打算进行深入的详解,对于大部分主题将只是一笔带过。后半的新的开发特性将从开发者的角度简单介绍Android 4.0的新特性。

新的用户特性

更简单,更美观,更智能

全新整合的新界面,操作的可见性更好(也就是说如果可以进行某项操作,就会有屏幕上的提示),动画反馈效果更好,对于高分辨率设备更好的显示效果。

系统栏和虚拟按键使得导航更为清晰,支持3.0开始的动作条(Action Bar,对于这个项目的翻译还没有确定,姑且用“动作条”吧)。

更好的多任务查看、切换。更好的通知机制,更具有交互性(例如支持滑动操作)。新增方便易用的主屏幕文件夹和主屏幕托盘功能。

可缩放的插件和全新的解锁画面。新的来电回应方式(可直接选择发送短信)。更强大的文本输入和拼写检查。更强大的语音识别引擎(算是对Siri的反应么?)。

数据流量控制(可以查看流量使用并设置上限等,是很方便的功能)。更方便的连接管理。

通信和分享

People界面和Profile,更好的整合了SNS功能。

整合的日历功能和视觉语音邮件功能(将语音内容等集中在一处管理)。

更强大的照相机功能,新增了包括滤镜效果、内置人脸识别支持、全景拍摄等功能。重新设计的图库和照片编辑器。

实时视频变形功能(可以在视频通话时实现哈哈镜等效果,虽然感觉没什么意义……)。

屏幕截图功能,保存图片于本地(这倒是很有用)。

云连接体验

性能更强大的支持离线网页的浏览器,网页渲染速度也更快。

增强的Email功能。

创新

基于NFC的分享功能——Android Beam。

面部识别解锁(这个能不能用照片来假冒呢……)。

Wi-Fi Direct设备直连功能和新的蓝牙HDP协议支持(能和一些蓝牙医疗设备相连)。

新的开发者特性

手机和平板相统一的界面(今后不必再为手机和平板的不同界面而付出额外的时间精力了)

Android 3.0中支持的关键特性,现在手机也能支持,包括核心UI、图形动画效果、媒体与连接功能等的支持。

通信和分享

增加新的社交API、日历API等在前面新用户特性中提到的新功能的API。

新的媒体功能

低层流媒体支持,新的照相机功能,视频/图片变形功能。音频远程控制功能。包括WebP格式在内的新的解码支持。

新的连接类型

即上文中提到的Wi-Fi Direct和蓝牙HDP协议。

新的UI组件和功能

新增GridLayout以增强Android的布局机制。

支持OpenGL ES纹理视图,更好的进行OpenGL ES渲染。

支持硬件2D图形加速。

新的输入方式和文本功能

支持完整的手写笔输入、增强的鼠标支持等。

整合的拼写检查API。

增强的可用性API

对于屏幕阅读等可用性服务的支持更完善。TTS的API框架也变得更易于使用。开发者可以开发出更易于不便者使用的应用。

更有效的网络利用

可以为应用的网络数据传递设置限制。

数据安全

新的CA支持和ASLR(address space layout randomization,地址空间布局随机化)等特性使得数据的安全性更强。

更好的企业支持

可以自建VPN客户端以适应企业的自定义需求。

摄像头的设备策略管理。管理员可以远程操控摄像头,比如当用户在敏感情况下关闭摄像头。

 

限于篇幅和时间,这里就只能做最为简单的介绍了。随着新版本的发布,Android开发指南也得到了更新,自己也将尽快进行翻译(虽然以一人之力不可能快到哪里去……),特别是对于Android 4.0的新特性进行翻译,为今后开发能支持新特性的应用做准备。

Android用记事本程序 Techo Lite 版本升级 1.3.0

今天又对Techo Lite作了一些小的改良,说明如下:

Techo Lite是一款以快速启动和功能精简为特色的Android用记事本软件。编写的初衷是为了能有一个只需一次按键就能立即开始文字输入且不必考虑保存、打开等问题的便筏。

关于之前版本的相关信息,请参见之前的升级日志

这次的1.3.0升级主要提供了两项新功能。其一是在选项菜单中新增了“全部复制”功能。比起常规的“长按输入区域”-“全部选择”-“长按输入区域”-“复制”方式来选中全部文本,新增的“全部复制”快捷选项大大简化了操作。另一项新功能是现在Techo Lite可以同时保存两件记录了。可以方便地在两件记录之间切换,其内容与背景色等设置互不干扰。并不打算为Techo Lite增加更复杂的多条目支持,事实上自己实际使用过程中单条目已经能满足大部分的需求。而且那样一来Techo Lite与其他记事本程序的差异也就将减少,既然标以后缀Lite,功能上还是需要尽量精简。再过数天应该就能收到Tablet S,最近已经构思好了针对平板设计的全功能版本的Techo的不少细节,在这阵子学校里的项目忙完之后将开始着手进行。

Android Market页面:

https://market.android.com/details?id=org.breezesoft.techolite

一些新版的程序截图:

Android中将字符串文字内容复制到系统剪贴板

代码:abstract void setText(CharSequence text)

范例:

说明:et为一个EditText对象。范例中将该EditText对象的内容复制入系统剪贴板。首先创建一个ClipboardManager对象cmb并将其与系统剪贴板相关联。之后通过setText(CharSequence text)函数即可将String类型的内容复制到剪贴板。此外ClipboardManager类还提供有abstract CharSequence getText()函数以及abstract boolean hasText(),分别可以获取剪贴板中的字符串内容以及查询剪贴板当前是否保存有内容。ClipboardManager类有两个版本,这里使用的是从API Level 1就开始被支持的仅能保存字符串的剪贴板管理器,自从Android 3.0(API Level 11)起新版本的ClipboardManager类则支持更多功能。详情请参见官方文档

索尼(SONY)平板电脑Tablet S简讯

昨天是Tablet S的首发日。尽管自己预定的Tablet S Wifi 16GB版还需要两至三天才能收到(顺利通关的前提下),不过看到了有日本网友的开箱文和测评,便打算简单地介绍一下。

首先是开箱文,由于主要内容是Tablet S外包装的图片,因此就直接给出链接了(可惜大陆无法正常访问很多日本的博客)。

之后该博客又更新了Tablet S的简单使用感想。而本文的主要内容就是翻译整理这篇感想文章的几条要点:

  • Tablet S的整体感觉比想象中的要好。
  • 和Galaxy Tab、ICONIA TAB A500、Galaxy Tab10.1等相比,Tablet S的文字输入体验要好得多。这得益于出色的键盘功能布局设计和触摸屏的优异精度(这两点也都是索尼着重宣传的部分)。
  • 音乐播放器搭载了Walkman中所使用的Clear Bass技术是一个小惊喜。
  • Android系统不可避免的问题,屏幕方向改变时的卡顿和SD卡的使用不便等问题依然存在。
  • 和iPad相比Android平板的那种微妙的触摸屏的违和感,在Tablet S上总算是减轻了些,这也是索尼对Tablet S用的触摸板进行了深度优化的结果(之前的宣传中也表示对触摸板进行了特殊的处理)。

毕竟是简单感想,所以只提到了以上几点。更多的优缺点恐怕要实际使用一段时间后才能了解了吧。等到自己收到后,也会作一个比较详细的长期的测评。

Sony Tablet的Tablet S Wifi版本系统将提前升级至Android 3.2

根据这篇文章的消息,Tablet S可以在明天首发时便获得Android 3.2的系统升级。

之前索尼(SONY)的声明是9月17日发售的Tablet S Wifi版将搭载Android 3.1,而10-11月份发售的Tablet S 3G+Wifi版将在销售时就搭载Android 3.2。

不过意外的,今天Tablet S就得到了系统版本1.10的升级。内容包括Android 3.2的系统升级以及对尚未开始的Video Unlimited服务的支持。

该升级可以通过OTA完成,下载升级包约182.1MB。

升级后:

Android 3.2,内核版本2.6.36.3,Build版本1.10.001100022。

尽管3.2至于3.1来说主要是提供了更广泛的硬件支持,对于Tablet S来说并没有特别实际的变化,不过能够使用最新的系统总是一件好事。

自己预定的Tablet S应该明天就会从日本通过EMS运往中国,希望这个周末就能够收到了。