10个惊人的Android开发技巧

一场智能手机大战正在肆虐,为争夺市场份额而斗争;但我看到的不同。 Android是一个开放的平台,iPhone是一个可爱的产品,其他一切都是装饰。除了移动设备,台式机和平板电脑的预期之外,Android最令人兴奋。我希望在数以百计的未来奇怪和精彩的产品中看到它,但无论如何,你最好相信智能手机的采用不会很快放慢速度。今天摆弄Android技术将带来许多令人兴奋的未来机会。

Android让它非常容易上手。 Android源代码的完整内容可在线获取,提供全面的文档和热切友好的社区。 IDE的大量演示和工具将缓解其他陡峭的学习曲线。在这里,我将通过10个技巧进一步提升您的优势,以充分利用您的开发时间。

01.保留你的名字空间

谷歌Android Market使用您在清单中声明的包名称,可以在数千种其他可用应用程序中唯一标识您。如果您提前知道您将发布某个应用程序,那么最好早点到达那里并确保您可以保留您的位置!

02.倾听您的用户

最近我们为一位客户工作,他认为他的应用程序需要功能X,并且省略功能X是他在Android Market评论中看到的许多可悲投诉的原因。我们自己分析了Android Market上的评论和反馈,并编制了一份功能请求列表,以及与其请求频率相关的数字,而不是实现错误的操作。孤独的功能X实际上位于列表的底部!

你自己的先入之见和偏好会让你无视大多数人真正关心的事情。尽可能多地收集有关您的应用程序的反馈,更重要的是,请务必采取相应措施。

The love/hate relationship of feedback

反馈的爱/恨关系

03.使用Android的平台模式

我们都希望我们的应用程序是独一无二的,但有一句话说“要打破规则,首先必须了解规则”。有很多应用程序,我们希望它们能够很好地协同工作,所以在开始削减Android市场中的独特市场之前,首先考虑尝试适应人们已经在使用Android应用程序的方式。如果你把自己束缚在他们现有的习惯中,你就会拥有一群受过良好教育的用户!

考虑如何鼓励人们在您的应用中分享信息。共享功能的最常用方法是通过平台意图。我们非常建议在您的应用程序中公开意图,并且您的应用程序可能会受益于Google官方开发人员参考资料中记录的许多意图,甚至更多同意在开放的意图。可能最受欢迎的是通用的Intent.ACTION_SEND选项。声明您在清单中提供了ACTION_SEND选项,并看到用户通过正常的邮件和图片共享应用程序涌入您的应用。

在您共享功能之后,请考虑在采用任何勇敢的新方向之前,提供有关应用程序功能在其UI中的呈现方式的预期基础知识。安装Android应用程序时,预计会出现仪表板,操作栏,搜索栏,快速操作和小部件,如果您不提供此功能,用户会立即开始学习新内容,然后再开始使用您的应用程序提供。考虑使用诸如的框架GreenDroid了解UI的常见方面。

04.创建视图时使用Hiearchy Viewer

/工具/ Hierarchyviewer

视图层次结构为您提供了一种静态探索活动UI的方法,可以帮助您可视化复杂的布局。这是我最喜欢的Android工具,但出于安全考虑,仅适用于使用Android平台的开发者版本闪存的设备。因此,如果你想利用这个工具(你这样做),你需要一部带有Android OS开发版本的手机或模拟器。

或者,您可以包括Romain Guy'sViewServer类进入您的应用程序以在任何零售手机上启用相同的视图。当提出大型或小型样式问题时,我敦促所有开发人员快速转向层次结构查看器。我在造型过程中失去了多少次,在错误的假设下我开发了更多的造型。后来我打开层次结构查看器,根据内存中的实际视图模型,我会立即做出改变。

它有两种情况; HierarchyView和Pixel Perfect。 HierarchyView是大多数人感兴趣的地方。当用于UI抛光的区域时,Pixel Perfect有助于实现图像的精细放置细节,并确保它们在所有密度上都能正确渲染。

层次结构视图将在您的布局和样式开发的整个开发周期中为您提供支持。

首先,您将看到一个组件列表,包括当前位于Dalvik堆栈上的系统和您自己的活动。通过选择其中任何一个,您可以查看其关联的树视图布局。

TreeView和属性导航

通过可折叠属性区域深入查看视图的相关详细信息,可以通过输入id或类名来过滤突出显示的节点。

捕获PNG / PSD

在调试和编译设计时,可以导出各种有用的信息以提供帮助。您可以保存当前视图层次树的屏幕截图对象模型,甚至可以将当前状态导出为可用于打开和关闭的图层集合,作为PSD中的图层移动以在Adobe Photoshop中使用。

查看优化

每个项目的渲染时间和性能指标也可在每个视图上以彩色圆点的形式显示。每个都给出了视图创建瓶颈的高级概念。从左到右,点表示相对于树中其余节点的相应视图的测量,布局和绘制时间。

与树中的其他项目相比,绿色点分配给视图的速度提高了50%,项目的黄点为50%,而整体渲染速度最慢的红点。

HierarchyViewer lets you delve deeper into your android UIs

HierarchyViewer可让您深入研究Android UI

05.使用layoutopt优化XML布局

/ Tools / Layoutopt

针对XML布局运行layoutOpt有助于识别可能被删除的冗余视图。它还建议可以使用更有效的平台属性的区域,以便在运行时向UI呈现更少的视图。一个常见的建议是使用相对属性,如android:layoutToRightOf =“id”和android:layoutToRightOf =“id”。这些android属性可以分配给相对布局中的项目,而不是过度嵌套视图,其唯一目的是包含其他属性。

针对有效的XML运行该工具将导致问题的简短描述以及任何建议的解决方案以及查找位置的行号。

06.使用主题

主题可帮助您管理整个应用程序的样式。寻找如何最好地将您的主题应用到您的应用程序的参考不会产生很多结果,但我仍然建议管理任何规模的应用程序。在应用程序开发的早期设计您的应用程序时,将使您更容易处理设备特性,以便在开发应用程序时获得多种尺寸和分辨率的屏幕上的最佳演示。

在你的Android Manifest中:



然后在你的res / values / styles.xml中:




目前,真正看到主题的每个可自定义属性的唯一方法是在这里探索Android开源项目:

www.google.com/codesearch/p?hl=en#uX1GffpyOZk/core/res/res/values/themes.xml&q=package:android.git%20styles.xml&d=4

您现在可以覆盖所有自己的主题小部件项目!下面是一个使用您自己声明的'Widget.Button'样式覆盖按钮的示例。

...
@风格/ Widget.Button
...

07.为主题添加布局默认值

视图中的每个布局项都需要声明的高度和宽度。总之,这会在XML布局和样式中添加许多额外的行。相反,回归总是包裹你的布局的合理默认值。这样,除非在样式中另外声明,否则可以期望视图包装其内容,并且可以节省所有冗余宽度/高度声明的空间。

只需在主题中添加以下内容:

08.在你的风格中扩展明智的父母

样式旨在减少冗余,所以我想尽可能地推动它。前面的提示谈到了宽度/高度组合的冗余。为了每次都更进一步,你实际上需要应用一种风格:为什么不从一组合理的默认值开始?以下是我最常用的一些合理默认样式的选择:




09.提供翻译,但开始简单

谷歌的Android Market是一个全球市场。在您将应用程序推向野外之后,您需要尽可能多的用户下载您的应用程序!只需在Android电子市场中为您的应用提供翻译的标题和说明,即可开始吸引更多受众群体。从此用户群发展,慢慢为特定区域提供本地化文本,这些区域似乎对您的应用程序感兴趣。您可以查看与Android电子市场中特定区域相关的下载内容。

10.标准化您的命名约定

在res / Values /目录下,您将找到一大堆属性,但尽量不要因为您的命名而在创造力上被带走。建立一些明智的指导方针,然后坚持下去/这样,在重要的错误修复过程中,您的开发合作伙伴将能够找到无需帮助的项目。

It's up to you how specific you'd like your resources to be targeted

具体取决于您对目标资源的具体要求

例如,我使用'act_'为'ic_'活动布局添加前缀图标。我还使用唯一标识符为每个布局视图项的ID添加前缀,以便您可以清楚地指向使用此项目的用户。在设置项目样式时,如果项目是唯一的,那么我也倾向于使用完全相同的名称来表示项目的样式,尺寸颜色和字符串。

浏览Android开发者网站上平台在线文档的全部内容:Developer.android.com并在非常活跃的Android开发者博客上访问Google自己的Android开发者支持者的常规提示:Android-developers.blogspot.com