Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更好的Android编码_Android_Coding Style - Fatal编程技术网

更好的Android编码

更好的Android编码,android,coding-style,Android,Coding Style,我所寻找的是更好的编码参数,如内存管理,更快的处理和更干净的编码。有没有一套好的Android编码指南,我们可以用它来制作更好的应用程序。比如, 以下哪项公约更好: 示例-1 --或-- 例2 --或-- --或-- 这将减少内存使用并有助于加快垃圾收集。我在Android框架中见过这两种类型的编码(姜饼和Froyo) 我已经在Android上开发了一年多了,我认为任何人都可以编写代码,但代码干净、正确才是区别所在。有人能从他们的经验和知识中提出建议或提供帮助。对于您给出的两个示例,您提到的各种

我所寻找的是更好的编码参数,如内存管理,更快的处理和更干净的编码。有没有一套好的Android编码指南,我们可以用它来制作更好的应用程序。比如,

以下哪项公约更好:

示例-1 --或--

例2 --或--

--或--

这将减少内存使用并有助于加快垃圾收集。我在Android框架中见过这两种类型的编码(姜饼和Froyo)


我已经在Android上开发了一年多了,我认为任何人都可以编写代码,但代码干净、正确才是区别所在。有人能从他们的经验和知识中提出建议或提供帮助。

对于您给出的两个示例,您提到的各种备选方案之间没有区别


如果您想更深入地研究这个问题,请编写一些要检查的示例代码,将其编译到jar中,然后在其上使用反汇编程序来查看生成的字节码。您应该看到,在每种情况下,字节码基本上是相同的。

对于您给出的两个示例,您提到的各种备选方案之间没有区别


如果您想更深入地研究这个问题,请编写一些要检查的示例代码,将其编译到jar中,然后在其上使用反汇编程序来查看生成的字节码。您应该看到,在您的每种情况下,字节码基本上是相同的。

除非您已经看到应用程序的性能受到了显著的影响,否则这些类型的微优化并不值得担心。在任何情况下,我猜编译器甚至有可能推断出示例1a=示例1b。它们之间的性能差异最多可达几百纳秒,因为电视是一种参考,而且移动成本很低


我的建议是以这样一种方式编写代码,以使您和您的团队尽可能地可读。如果您需要更好的性能,更好的算法将有助于实现更多。如果您已经使用了这些更好的算法,那么您应该使用探查器进行实验,找出哪一种更快。

除非您看到应用程序的性能受到显著影响,否则这些类型的微优化实际上不值得担心。在任何情况下,我猜编译器甚至有可能推断出示例1a=示例1b。它们之间的性能差异最多可达几百纳秒,因为电视是一种参考,而且移动成本很低


我的建议是以这样一种方式编写代码,以使您和您的团队尽可能地可读。如果您需要更好的性能,更好的算法将有助于实现更多。如果您已经使用了这些更好的算法,那么您应该使用分析器进行实验,找出哪一个更快。

您的两个示例在内存管理或处理器时间等方面几乎没有任何意义。编译器将内联这两个示例中的变量。即使他没有,开销也只是一个对象引用。没有任何基准可以显示出这样的差异

在这种情况下,您更喜欢编写可读的代码

您应该更关注在真正有价值的地方的表现——数据库工作或图像/视频处理

顺便说一句,对于android没有任何特别的建议。所有这些都是关于使用内存、数据库、网络等的一般建议


阅读Joshua Block,这就足够了。

您的两个示例在内存管理或处理器时间等方面几乎毫无意义。编译器将内联这两个示例中的变量。即使他没有,开销也只是一个对象引用。没有任何基准可以显示出这样的差异

在这种情况下,您更喜欢编写可读的代码

您应该更关注在真正有价值的地方的表现——数据库工作或图像/视频处理

顺便说一句,对于android没有任何特别的建议。所有这些都是关于使用内存、数据库、网络等的一般建议


约书亚·布洛克(Joshua Block)读过,这就足够了。

我同意其他人的说法,即这种类型的优化不会产生任何你能注意到的效果

唯一需要考虑优化的情况是,如果你用手工实现一个复杂的绘制方法,或者解析一个大的XML文件(一些改变可能会提高运行时间)。 无论如何,在优化之前,请始终测量

你无法优化你无法衡量的东西

要了解如何评测应用程序,请阅读以下内容


我同意其他人的说法,即这种类型的优化不会产生任何你能注意到的效果

唯一需要考虑优化的情况是,如果你用手工实现一个复杂的绘制方法,或者解析一个大的XML文件(一些改变可能会提高运行时间)。 无论如何,在优化之前,请始终测量

你无法优化你无法衡量的东西

要了解如何评测应用程序,请阅读以下内容


谢谢您的回复。读完这篇文章后,我想我完全同意你们所有人的观点,尤其是萨菲瑞森。看到这两种类型的编码,我想知道内联是否比其他类型的编码有任何优点或缺点

但我认为最好使用((TextView)findviewbyd(R.id.sampleTextView)).setText(“Hello World”);而不是将其分配给一个临时变量,因为这将增加一个对象引用,当GC被勾选时,该对象引用将被垃圾收集。但是有了上面的声明,我想这类对象不会被遗留给GC

如果我错了,请纠正我。

谢谢你的回答
TextView tv = (TextView) findViewById(R.id.sampleTextView);
tv.setText("Hello World");
((TextView)  findViewById(R.id.sampleTextView)).setText("Hello World");
BroadcastReceiver br = new BroadcastReceiver() {
      ...
      ...
}

IntentFilter filter = new IntentFilter(...);
registerReceiver(filter, br);
registerReceiver(new IntentFilter(), br);
registerReceiver(new IntentFilter(), new BroadcastReceiver());