Android开发的隐藏function?

我很惊讶,在隐藏特性系列中 ,我一直在追踪一段时间,还没有Android 隐藏特性

“隐藏特征”系列对于某些特定语言的新手来说非常有用。 它在一个地方显示绳索和一些有价值的技巧。 我认为这是一个好主意。 即使专家有时会find他们从来没有听说过的技巧。

我正在开始Android开发,我很想听听它的隐藏function,技巧,窍门和陷阱。

所以,这里是: Android的一些隐藏function是什么?

希望没有太多隐藏的隐藏function – 但是这里有一些不太知名的,非直观的function可用于Android,一定会让您的生活更轻松,您的应用程序更好。

  • 该平台的所有源代码以及所有非Google本机应用程序均可供您浏览,下载,借阅或从Android开源项目中窃取。
  • 使用资源框架 ,创build应用程序的本地化版本就像添加一个包含带有不同语言string的XML文件(例如French)的新注释子文件夹(例如values-fr)一样简单。 Android会在运行时为您select正确的文件夹。
    • 相同的资源框架可让您使用不同的硬件configuration,屏幕像素密度和input设备的替代布局,只需将它们放在命名文件夹中即可。
  • 自Android 1.6以来,您的应用可能会产生结果,这些结果将显示在主屏幕快速search框search的结果中。 这被称为自定义searchbuild议 。
  • 使用意图和意图过滤您的应用程序可以制作和服务完成一个动作的匿名请求(例如,Where应用程序可以从Open Table应用程序请求表预订 )。
    • 他们可以请求一个未知的应用程序来完成一个动作,而不需要知道哪个应用程序可以完成这个请求
    • 您的应用可以满足来自未知应用的请求,无需知道哪些应用会提出请求即可完成操作。 玩这个权利,你可以创build“默认”的Twitter应用程序,或预订应用程序等。
  • 使用警报,您可以设置您的应用程序在预定时间完成任务,即使您的应用程序没有运行。
    • 您可以使用setInexactRepeating方法节省大量的电池寿命,以安排常规事件(如服务器轮询或更新)。 它将同步来自多个应用程序的警报同时发生而不是特别的。
  • 使用“ 首选项”框架,您可以使用与系统设置相同的样式为应用程序创build设置屏幕。 您甚至可以将系统设置屏幕(例如,安全和位置)合并到应用程序的设置层次结构中。
  • 使用AudioTrack和AudioRecord API,您可以直接从PCMaudio缓冲区stream式传输audio数据。

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

  • 我们的devise师特别为draw9patch留下了深刻印象,帮助devise了可伸缩的button。 他从那里给了我资产,我从背景颜色变成了9个补丁,现在我们有一个自定义button,圆angular,等等,以适应文本。
  • ddms ,也被集成到Eclipse插件中。 这是非常强大的,但我用它来截图。
  • adb – 从命令行与您的设备或模拟器进行交互。 我使用它来在我的桌面上的terminal窗口中跟踪我设备上的日志,尽pipe我发现它适用于安装和卸载行为不当的应用程序。
  • sqlite3 – 非常适合与已安装的数据库交互,并尝试查询。
  • apkbuilderzipalignaapt – 非常适合运行无头构build
  • monkey模糊testing你的应用程序。

我还将选出三项性能 , 响应和无缝devise ,但是我也想为(电池)续航增加一个第四代码 。

尽pipe有时候Javadoc可能会有点稀疏,但是无论如何也不会有消息来源让你看到。

有很多Google员工编写的示例应用程序来构build,检查,然后看看他们是如何做的,这也是非常有用的。

我想我会开始。


我认为一个很好的隐藏function是Android文档的最佳实践。 它列出了许多devise响应快速的应用程序的伟大提示。

最佳实践部分是:

  • 支持多个屏幕(多种尺寸和分辨率)
  • UI准则
    • 图标devise
    • 应用小部件devise
    • 活动和任务devise
    • 菜单devise
  • 性能devise
  • 为响应devise
  • 为无缝devise

另一个隐藏的function是这些文档可作为SDK的一部分脱机使用。 起初我每天早上坐火车去装几页,但是在SDK目录中find它们之后不需要这样做。


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

Android支持可用作SVGtypes的可绘制的XML <shape> 。 不幸的是,他们没有文件。 这是我能find的最好的信息:

http://escomic.net/217

另外就最佳做法而言,您可能需要查看Android编码风格:

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

以及在开发/ ide / eclipse下的平台源代码中find的eclipse代码和导入格式化程序(android-formatting.xml,android.importorder)

/ tools中的hierarchyviewer允许你debugging/分析你的视图布局:填充,定位,视图层次等。

在试图弄清楚为什么事情是按照他们的方式布置的时候,它为我节省了很多时间。