121

我很惊讶在我已经跟踪了一段时间的隐藏功能系列中还没有 Android隐藏功能帖子。

隐藏功能系列非常适合不熟悉某种语言的人。它在一个地方展示了绳索和某些有价值的技巧。我认为这是一个绝妙的主意。即使是专家有时也会发现他们从未听说过的技巧。

我正在开始 Android 开发,我很想听听它的隐藏功能、提示、技巧和陷阱。

那么,这里是:Android有哪些隐藏的功能?

4

6 回答 6

105

希望没有太多隐藏的、隐藏的功能 - 但这里有一些可用于 Android 的鲜为人知且不直观的功能,它们肯定会让您的生活更轻松,让您的应用程序更好。

  • 该平台的所有源代码和所有非 Google 原生应用程序都可供您从Android 开源项目中浏览、下载、借用或窃取。
  • 使用资源框架,创建应用程序的本地化版本就像添加一个新的带注释的子文件夹(例如 values-fr)一样简单,该文件夹包含一个带有不同语言(例如法语)字符串的 XML 文件。Android 会在运行时为您选择正确的文件夹。
    • 相同的资源框架允许您将备用布局用于不同的硬件配置、屏幕像素密度和输入设备,只需将它们放在命名文件夹中即可。
  • 从 Android 1.6 开始,您的应用程序可以生成将出现在主屏幕快速搜索框搜索结果中的结果。这称为自定义搜索建议
  • 使用Intents 和 Intent Filters,您的应用程序可以发出和服务匿名请求以完成操作(例如,Where 应用程序可以从 Open Table 应用程序请求餐桌预订)。
    • 他们可以请求未知应用程序来完成操作,而无需知道哪些应用程序可以满足该请求
    • 您的应用可以满足来自未知应用的请求以完成操作,而无需知道哪些应用会发出请求。玩这个权利,你可以创建“默认”的 Twitter 应用程序,或预订应用程序等。
  • 使用警报,您可以将应用设置为在预定时间完成任务,即使您的应用没有运行。
    • 您可以使用setInexactRepeating方法安排定期事件(如服务器轮询或更新)来节省大量电池寿命。它将同步来自多个应用程序的警报以同时发生而不是临时发生。
  • 使用Preferences框架,您可以为您的应用程序创建与系统设置相同样式的设置屏幕。您甚至可以将系统设置屏幕(例如安全和位置)合并到应用程序的设置层次结构中。
  • 使用AudioTrack 和 AudioRecord API,您可以将音频数据直接从 PCM 音频缓冲区流式传输到 PCM 音频缓冲区。
于 2009-11-03T08:19:03.517 回答
35

SDK的/tools 目录中的工具值得一提:

  • draw9patch我们的设计师对它帮助设计可伸缩纽扣印象特别深刻。他从那里给了我资源,我从背景颜色更改为 9-patch 可绘制对象,现在我们有一个自定义按钮、圆角等拉伸以适应文本。
  • ddms,它也被集成到 Eclipse 插件中。它非常强大,但我用它来截取屏幕截图。
  • adb- 从命令行与您的设备或模拟器交互。我使用它在我的桌面上的终端窗口中跟踪我的设备的日志,尽管我发现它对于安装和卸载行为不端的应用程序很有用。
  • sqlite3- 非常适合与已安装的数据库交互并尝试查询。
  • apkbuilder, zipalign, aapt- 非常适合运行无头构建
  • monkey用于模糊测试您的应用程序。

我还想单独列出三个 Designing for PerformanceResponsivenessSeamlessness,但我还想添加第四个Coding for (Battery) Life

尽管 Javadoc 有时可能有点稀疏,但将源代码放在那里供您查看是无济于事的

拥有大量由 Google 员工编写的示例应用程序来构建、检查然后看看他们是如何做到的,这也是非常有用的。

于 2009-11-03T22:33:04.837 回答
25

我想我会从那时开始。


我认为一个很好的隐藏功能是 Android 文档的最佳实践。它列出了许多设计响应式和快速应用程序的重要技巧。

最佳实践部分是:

  • 支持多个屏幕(多种尺寸和分辨率)
  • 用户界面指南
    • 图标设计
    • 应用小部件设计
    • 活动和任务设计
    • 菜单设计
  • 性能设计
  • 响应式设计
  • 无缝设计

另一个隐藏的功能是这些文档可以作为 SDK 的一部分离线使用。起初,我每天为早上的火车旅行加载几页,但在我在 SDK 目录中找到它们后就不再需要这样做了。


如果您使用 Eclipse,您会注意到它不能很好地格式化 XML 文件,而且当它格式化时,它非常不一致(有时它会用新行分割属性,有时则不会)。要修复它,您可以按 Ctrl-Shift-F(自动格式化)。Ctrl-Shift-F 使用的规则在 Window->Preferences->XML->XML Files->Editor 中。

于 2009-10-25T10:05:21.760 回答
14

Android 支持 XML <shape>,它可以用作类似 SVG 的可绘制对象。不幸的是,没有他们的文档。这是我能找到的最好的信息:

http://escomic.net/217

于 2010-03-24T17:12:47.067 回答
13

此外,关于最佳实践,您可能需要查看 Android 编码风格:

http://source.android.com/source/code-style.html

以及在 development/ide/eclipse 下的平台源代码中找到的 Eclipse 代码和导入格式化程序(android-formatting.xml、android.importorder)

于 2009-12-31T08:27:33.943 回答
7

/tools 中的hierarchyviewer允许您调试/分析视图布局:填充、定位、视图层次结构等。

当我试图弄清楚为什么事情是这样布置时,它为我节省了很多时间。

于 2011-03-10T07:17:15.270 回答