Android开发者指南(11) —— Optimizing Apps for Android 3.0

简介:

前言

  本章内容为开发者指南(Dev Guide)/Best Practices/Optimizing Apps for Android 3.0,译为“为Android 3.0优化应用程序",版本为Android3.0 r1,翻译来自"移动云_文斌",欢迎访问它的博客:"http://blog.csdn.net/caowenbin",再次感谢"移动云_文斌" !期待你一起参与翻译Android的相关资料,联系我over140@gmail.com。 

 

声明

  欢迎转载,但请保留文章原始出处:) 

    博客园:http://www.cnblogs.com/

Android中文翻译组: http://goo.gl/6vJQl


 

原文

         http://developer.android.com/guide/practices/optimizing-for-3.0.html

(原文已更新,下面链接可以看到本文原文2011-5-4http://www.devdiv.com/android/docs/guide/practices/optimizing-for-3.0.html 

 

如果你正在开发Android应用程序,在Android 3.0中提供了为平板或类似设备增强用户体验的新特性。一般情况下,由于Android应用程序的向下兼容性,任何你已经发行的应用程序都能在Android 3.0设备上运行。然后,还是可以通过一些简单的修改来为平板类型的设备进行优化。

本文描述的是你怎样为Android 3.0优化现存的应用程序,并且能和老版本进行兼容,或者使用新的API完整的升级你的应用程序。

内容包括:

1.         安装Android 3.0 SDK

2.   选择优化或升级:

a)   平板电脑或类似设备优化应用

你已经有现存的应用,想为老版本的Android保持兼容性

b)   为平板电脑或类似设备升级或开发新的应用

你想使用Android 3.0的API升级你的应用,或者面向平板电脑或类似设备创建新的应用。

 

安装Android 3.0SDK(Set Up Your SDK with Android 3.0)

要在Android 3.0上开始测试或开发你的应用程序,需要使用新的平台来配置现存的Android SDK

(如果你还没有Android SDK,现在就去下载吧)

1.         运行Android SDKAVD管理器并安装如下内容:

Android 3.0 平台SDK

Android SDK工具,版本10

Android SDK 平台工作,版本3

Android SDK文档,API 11

SDK API 11的示例代码

2.         为平板类型设备创建AVD

设置target“Android 3.0”skin“WXGA”(默认的skin

 

关于模拟器性能(About emulator performance)

         因为Android模拟器必须在你的计算机模拟ARM指令集,并且WXGA屏幕比典型的虚拟设备大很多,所以模拟器的性能远比真实的设备低。

         特别是在初始化模拟器时很慢,根据你的硬件情况,需要花较长时间。当模拟器启动时,已经限制了用户响应,所以请耐心等待直到Home界面(或解锁界面)出现。

         无论如何,你不需要每次重新生成你的应用程序的时候都重新启动模拟器,通常情况下你只需要启动一次并让它保持运行即可。也可以参考下面的提示信息以在首次初始化后减少启动次数。

         我们正在努力的解决性能问题并在将来发布,目前,模拟器仍然是在没有真实设备的情况下评估你的应用程序表现和功能的最好途径。

提示:要减少模拟器的启动次数,可以在你利用SDKAVD管理器创建它时允许AVD快照(在AVD创建时有一个Enable snapshots的复选框)。然后,从AVD管理器启动AVD并检查Launch from snapshotSave to snapshot,利用这种方式,当你关闭模拟器时,一个AVD状态的快照就被保存起来,模拟器关闭时会变慢。当你已经拥有了一个初始化后的快照后你可以取消Save to snapshot(在首次关闭AVD之后)。

 

 

为平板电脑或类似设备优化应用

(Optimize Your Application for Tablets and Similar Devices)

如果你已经为早期的Android版本开发了应用,可以在不改变最低版本需求的情况下做几个事情为Android 3.0的平板类型设备进行优化。(不需要修改你的manifest中的android:minSdkVersion

注意:所有的Android应用程序都是前向兼容的,因此,如果你按标准使用了AndroidAPI,你什么也不用做,应用就可以在Android 3.0的设备上工作得很好。但是,为了向使用Android 3.0平板或类似设备管理的用户提供更好的体验,你应该更新你的程序来适应新的系统主题并为大屏幕提供优化。

这里有几件事情可以为运行Android 3.0的设备优化你的应用程序:

1.         Android 3.0上测试你当前的应用

1.         生成你的应用程序并在Android 3.0 AVD(上文中创建的AVD)上安装

2.         运行你通常的测试以确认所有功能看起来正常

2.         在你的应用中应用新的“holographic”主题

1.         打开你的manifest文件并修改<uses-sdk>标识,设置android:targetSdkVersion为”11”,例如:

<manifest ... >
<uses-sdk android:minSdkVersion="4" 
              android:targetSdkVersion="11" />
    <application ... >
        ...
    <application>
</manifest>

针对Android 3.0的目标平台,系统会自动为运行在Android 3.0设备上的每一个activity应用holographic主题,这个主题为控件提供了新的设计,例如按钮和文本框,并且修改了其他的可视化元素。这个标准化主题是为Android 3.0制作的,所以你的应用程序将看起来会呈现这一样式。

另外,这个主题能够使用Action Bar,用于取代在activity顶部的传统的标题栏,并且提供用户访问activity的选项菜单位。

2.         继续使用android:minSdkVersion指定的最低版本编译程序,但仍然安装在Android 3.0 AVD上,反复测试并确保你的用户接口在holographic主题下工作正常。

提示:如果你在activity中直接应用了其他主题,它将会取代holographic主题,解决的办法是你可以使用system version qualifier来为基于holographic主题的android 3.0的设备提供选择。更多信息可参考select a theme based on platform version

3.         超大屏幕选择布局

通过运行时为超大屏幕提供可选资源,你能不用采用新的API就让你的应用提供在平板类型设备上的用户体验。

例如,这里列出了为超大屏幕创建新布局时所要考虑的因素:

横向布局:平板类型设备通常默认的方向是横向的,因此你应该确保你的activity为宽视野做了优化。

你可以使用land资源,但是如果你想为超大的横屏选择资源的话,你应该同时使用xlargeland。例如res/layout-xlarge-land/,这些限定名称的是有顺序要求的,详见Providing Alternative Resources

按钮位置:考虑当两只手持有平板设备时你UI中按钮的位置是否易于操作。

字号大小:确保你的应用使用sp单位进行字号设置,这会单独影响到可读的体验,很多情况下,你可能需要为xlarge配置大些的字号。

总之,确认你的应用符合Best Practices for Screen Independence

 

 

为平板电脑或类似设备升级或开发新的应用

Upgrade or Develop a New App for Tablets and Similar Devices

如果你想开发全部运行在Android 3.0的平板类型设备上的应用程序,那就需要使用Android 3.0新的API,本节介绍可用的一些新特性。

 

声明最低的系统版本

当你创建Android 3.0的项目时,首先要做的就是设置android:minSdkVersion11,例如:

<manifest ... >
<uses-sdk android:minSdkVersion="11" />
    <application ... >
        ...
    <application>
</manifest>

针对Android 3.0平台,系统会自动为你的每一个activity应用新的主题。

另外,也会为每个activity使用Action Bar

 

使用Action Bar

         Action Bar是为每个activity提供的用于替换屏幕顶端传统标题栏的控件,通常,在它的左侧跟在Activity标题后边包含应用程序图标,在右侧是选项菜单中的可用项。

         在你的菜单资源中增加showAsAction=”ifRoom”,可以使得选项菜单就像“活动项目”一样直接出现在Action Bar中。另外,也可以在其中加入像标签一样的导航功能,可以使用应用程序图标导航到主activity,或者向上返回到activity历史。

         更多信息请参考Using the Action Bar

 

使用fragment分离activity

         ActivityFragment提供分离用户行为和接口的表现方式。你可以在一个activity中合并多个fragment以生成多面板的UI,也可以在多个activity中重用fragment。可以认为一个fragment就像一个activity中的模块,它提供了自己的生命周期,接收用户的输入事件,并且可以在activity运行时添加或移除。

例如,一个新闻应用程序可以使用一个fragment在左侧显示标题列表,使用另一个fragment在右侧显示文章内容——这些fragment出现在一个activity中,每个fragment都有自己的生命周期,单独处理用户的输入。因此,用户不是在一个activity中选择标题然后在另一个activity中阅读内容,而是可以在同一个activity内既选择又阅读。

更多信息参考Fragments文档。

 

使用新的动画API实现变换

         全新的可伸缩的动画框架允许你将动画效果应用到任何对象的任意属性上(ViewDrawableFragmentObject等等),通常,你可以为对象的intfloat16进制的颜色值定义很多动画因素(例如持续时间,重复次数,插入器等),当一个对象有属性使用了这些类型,你还可以随时改变这些值以影响动画效果。

         View类也提供了新的API用于支持新的动画框架,使你可以很容易的在activity布局中使用2D3D变换,并且为在布局文件中定义位置,方向,透明度等对象属性提供了可能。

         更多信息请参考Property Animation文档。

 

启用硬件加速

         现在通过在配置文件的<application><activity>元素中设置android:hardwareAccelerated=”true”可以为你的应用程序使用OpenGL渲染器,硬件加速的好处就是使动画、滚动更加平滑,提高了用户接口的性能和响应速度。当启用硬件加速时,请确认你的程序在支持硬件加速的设备上做过完整的测试。

 

增强的窗口小部件

窗口小部件允许用户在Home界面直接从你的应用程序中获取信息并且与运行中的服务(例如预览邮件或控制音乐播放)交互。Android 3.0通过集合创建的ListViewGridView和新增的StackView的方式增强了窗口小部件的功能,这些小部件允许你进行更多的交互,例如使用滚动列表,可以通过RemoteViewsService自动的更新数据。

另外,可以使用小部件为应用程序创建预览图(在Android 3.0 AVD中已经内置)并通过android:previewImage进行引用,这样用户就可以看到之前加入到主屏幕中的应用程序预览。

 

增加其他新特性

Android 3.0增加了很多有价值的新的API,例如拖放API,新的蓝牙API,系统级的剪贴板框架,被称为渲染脚本的新的图像引擎等等,更多信息,请参见Android 3.0 Platform文档。

 

为超大屏幕发布应用

你需要决定你的应用程序是只为平板类型的设备(典型的是超大(xlarge)设备)开发还是为所有种类的屏幕大小开发。

如果你想对所有屏幕尺寸有效(例如为所有手机和平板设备),那什么也不用做,默认的,应用程序将android:minSdkVersion设为4或者更高,就会自动调整大小以适应屏幕尺寸。

如果你的应用仅为超大屏幕设计,可以在<supports-screens>中仅支持超大屏幕,而将其他的设成false,例如:

<manifest ... >
...
    <supports-screens android:smallScreens="false"
                      android:normalScreens="false"
                      android:largeScreens="false"
                      android:xlargeScreens="true" />
    <application ... >
        ...
    <application>
</manifest>

使用这样的声明,就指定了你的应用只支持超大屏幕的设备,像Android Market这样的外部服务会使用这一信息从不是超大屏幕的设备中过滤你的应用。

 

参考示例代码

         很多新的特性不仅在Android 3.0 Platform是进行了描述,而且为了帮助你理解用法还提供了示例代码。获取示例可以使用Android SDK管理器SDK库中下载(“Samples for SDK API 11”)。下载完后可以在<sdk_root>/samples/android-11/中找到,下面的列表可以帮你快速找到关心的特性:

HoneyComb Grllery:演示了很多Android 3.0中新的API,包括fragmentAction Bar,拖放,动画。

Fragments:演示fragment布局,回退栈,状态存储等

Action Bar:演示Action Bar特性,例如选项卡,图标,活动项等。

Clipboard:演示使用剪贴板进行复制粘贴操作。

Drag and Drop:演示使用新的View事件进行拖放操作。

Multi-choice List:演示如何为ListViewGridView提供多项选择。

Content Loaders:演示使用新的Loader API异步加载数据。

Property Animation:使用很多例子应用新的动画API

Search View Widget:演示在Action Bar上使用新的搜索控件。

RenderScript:使用很多不同的应用来演示通过学习渲染脚本进行计算和3D图像处理。


转载:http://www.cnblogs.com/over140/archive/2011/05/06/2038497.html

目录
相关文章
|
2月前
|
Android开发 Swift iOS开发
iOS和安卓作为主流操作系统,开发者需了解两者差异以提高效率并确保优质用户体验。
【10月更文挑战第1天】随着移动互联网的发展,智能手机成为生活必需品,iOS和安卓作为主流操作系统,各有庞大的用户群。开发者需了解两者差异以提高效率并确保优质用户体验。iOS使用Swift或Objective-C开发,强调简洁直观的设计;安卓则采用Java或Kotlin,注重层次与动画。Swift和Kotlin均有现代编程特性。此外,iOS设备更易优化,而安卓需考虑更多兼容性问题。iOS应用仅能通过App Store发布,审核严格;安卓除Google Play外还可通过第三方市场发布,审核较宽松。开发者应根据需求选择合适平台,提供最佳应用体验。
68 3
|
4月前
|
Shell Linux 开发工具
"开发者的救星:揭秘如何用adb神器征服Android设备,开启高效调试之旅!"
【8月更文挑战第20天】Android Debug Bridge (adb) 是 Android 开发者必备工具,用于实现计算机与 Android 设备间通讯,执行调试及命令操作。adb 提供了丰富的命令行接口,覆盖从基础设备管理到复杂系统操作的需求。本文详细介绍 adb 的安装配置流程,并列举实用命令示例,包括设备连接管理、应用安装调试、文件系统访问等基础功能,以及端口转发、日志查看等高级技巧。此外,还提供了常见问题的故障排除指南,帮助开发者快速解决问题。掌握 adb 将极大提升 Android 开发效率,助力项目顺利推进。
105 0
|
2月前
|
IDE Android开发 iOS开发
探索安卓与iOS系统的技术差异:开发者的视角
本文深入分析了安卓(Android)与苹果iOS两大移动操作系统在技术架构、开发环境、用户体验和市场策略方面的主要差异。通过对比这两种系统的不同特点,旨在为移动应用开发者提供有价值的见解,帮助他们在不同平台上做出更明智的开发决策。
|
3月前
|
前端开发 Java 数据库
💡Android开发者必看!掌握这5大框架,轻松打造爆款应用不是梦!🏆
在Android开发领域,框架犹如指路明灯,助力开发者加速应用开发并提升品质。本文将介绍五大必备框架:Retrofit简化网络请求,Room优化数据库访问,MVVM架构提高代码可维护性,Dagger 2管理依赖注入,Jetpack Compose革新UI开发。掌握这些框架,助你在竞争激烈的市场中脱颖而出,打造爆款应用。
391 3
|
3月前
|
IDE Java Android开发
安卓与iOS开发环境的差异及其对开发者的影响
在数字时代的浪潮中,移动应用成为人们生活的延伸。两大操作系统——安卓与iOS,如同两座技术高峰,各自占据着半壁江山。本文将探索这两个平台的开发环境差异,并讨论这些差异如何塑造开发者的编程习惯与职业选择。我们将从工具和语言、用户界面设计、系统架构、市场定位以及开发社区和资源五个方面进行比较,旨在为开发者提供一份实用的指南,帮助他们在不断变化的技术世界中,找到适合自己的发展路径。
56 3
|
3月前
|
移动开发 开发工具 Android开发
安卓与iOS开发:平台差异及其对开发者的影响
在移动开发的大潮中,安卓和iOS两大阵营各领风骚。本文将探讨这两个平台的关键差异,包括开发环境、编程语言、用户界面设计、应用分发以及商业模式等方面。通过比较分析,我们旨在为开发者提供一个清晰的指导,帮助他们根据项目需求和个人偏好做出明智的平台选择。同时,文章也将分享一些跨平台开发工具的使用经验,以期最大化开发效率和市场覆盖。
74 1
|
4月前
|
开发工具 Android开发 iOS开发
安卓与iOS开发环境的差异及其对开发者的影响
【8月更文挑战第22天】在移动开发的广阔舞台上,安卓与iOS两大操作系统各自占据着半壁江山。它们不仅是用户手中的智能设备,更是开发者展示创意和技术的战场。本文将深入探讨这两个平台的开发环境差异,以及这些差异如何塑造开发者的技术路线和职业生涯。从编程语言到开发工具,从市场定位到用户需求,我们将一探究竟,这两种不同的生态系统是如何影响开发者的决策和成长的。
|
4月前
|
Java 开发工具 Android开发
安卓与iOS开发环境的差异及其对开发者的影响
【8月更文挑战第21天】在移动应用开发的广阔天地中,安卓和iOS两大平台各据一方,它们不仅在用户体验上有所区别,更在开发环境上展现出独特的风貌。本文将深入探讨这两大平台的开发环境差异,以及这些差异如何塑造开发者的技术路径和职业生涯。从工具和语言的选择到市场份额的争夺,我们将一一剖析,以期为即将踏入这一领域的新手开发者提供一盏明灯。
|
3月前
|
监控 算法 数据可视化
深入解析Android应用开发中的高效内存管理策略在移动应用开发领域,Android平台因其开放性和灵活性备受开发者青睐。然而,随之而来的是内存管理的复杂性,这对开发者提出了更高的要求。高效的内存管理不仅能够提升应用的性能,还能有效避免因内存泄漏导致的应用崩溃。本文将探讨Android应用开发中的内存管理问题,并提供一系列实用的优化策略,帮助开发者打造更稳定、更高效的应用。
在Android开发中,内存管理是一个绕不开的话题。良好的内存管理机制不仅可以提高应用的运行效率,还能有效预防内存泄漏和过度消耗,从而延长电池寿命并提升用户体验。本文从Android内存管理的基本原理出发,详细讨论了几种常见的内存管理技巧,包括内存泄漏的检测与修复、内存分配与回收的优化方法,以及如何通过合理的编程习惯减少内存开销。通过对这些内容的阐述,旨在为Android开发者提供一套系统化的内存优化指南,助力开发出更加流畅稳定的应用。
79 0
|
4月前
|
JSON Java Android开发
Android 开发者必备秘籍:轻松攻克 JSON 格式数据解析难题,让你的应用更出色!
【8月更文挑战第18天】在Android开发中,解析JSON数据至关重要。JSON以其简洁和易读成为首选的数据交换格式。开发者可通过多种途径解析JSON,如使用内置的`JSONObject`和`JSONArray`类直接操作数据,或借助Google提供的Gson库将JSON自动映射为Java对象。无论哪种方法,正确解析JSON都是实现高效应用的关键,能帮助开发者处理网络请求返回的数据,并将其展示给用户,从而提升应用的功能性和用户体验。
106 1