gpt4 book ai didi

Java/Android 哪种编码方法是首选?

转载 作者:行者123 更新时间:2023-12-01 14:46:37 25 4
gpt4 key购买 nike

作为一名自学程序员,我有一个关于编码最佳实践的问题。我用两种不同的方式编写了同一个程序,我希望有人指导我首选哪种方式?这可能来自 CPU 开销或 RAM 使用情况,或者仅仅是编码最佳实践的角度。我很高兴这个问题可能有很多答案或理论,我知道这不是 Stack Overflow 的目的,但对我来说,这是一个 Stack Overflow 问题,因为我的编码风格给我带来了一些问题,但我不这样做知道我应该坚持或采用哪种方法。

两个示例都有一个简单的 XML 布局文件,其中包含两个按钮和两个可更新的 TextView (此处未包含)。

示例 1.(我目前倾向于编码的方式)

public class MainActivity extends Activity {

Button button1Add, button2Add;
TextView text1Display, text2Display;
int count1, count2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

initilizeButtons();
setupListeners();
}

public void initilizeButtons() {
button1Add = (Button) findViewById(R.id.button1);
button2Add = (Button) findViewById(R.id.button2);
text1Display = (TextView) findViewById(R.id.textView1);
text2Display = (TextView) findViewById(R.id.textView2);
count1 = Integer.parseInt(text1Display.getText().toString());
count2 = Integer.parseInt(text2Display.getText().toString());
}

public void setupListeners() {
button1Add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
count1++;
text1Display.setText(String.valueOf(count1));
}
});

button2Add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
count2++;
text2Display.setText(String.valueOf(count2));
}
});
}

}

示例 2.(我认为我应该采用哪种编码方式?)

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

initilizeButtons();

}

public void initilizeButtons() {
Button button1Add = (Button) findViewById(R.id.button1);
Button button2Add = (Button) findViewById(R.id.button2);

button1Add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
TextView text1Display = (TextView) findViewById(R.id.textView1);
int headCount = Integer.parseInt(text1Display.getText().toString());
headCount++;
text1Display.setText(String.valueOf(headCount));
}

});

button2Add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
TextView text2Display = (TextView) findViewById(R.id.textView2);
int bodyCount = Integer.parseInt(text2Display.getText().toString());
bodyCount++;
text2Display.setText(String.valueOf(bodyCount));
}

});
}

}

在示例 1 中,我认为这会更快(即更少的 CPU),因为我已经声明了变量并在整个程序中添加它们。我在这里担心 RAM 使用情况。

在示例 2 中,我认为这会导致更多的 CPU 使用率,因为每次使用它们时都必须重新声明所有变量,但也许它使用的 RAM 更少?

这些只是示例,我确信它们本身不会造成太多 CPU 或 RAM 开销。我会将您提供的答案中的信息应用到我的一般编码实践中。

最佳答案

我认为示例 1 应该是首选方式。

Ram 使用量不会增加太多,因为无论您是否使用 findViewById,Widget 都存在。您只能获得对所显示对象的引用。

我个人使用AndroidAnnotations这允许您删除 initilizeButtons() ,因为您可以向字段添加一些注释,并且库会为您注入(inject)它们。看看他们网站上的代码比较……太棒了。它还支持许多其他不错的功能。最好的部分是,它使用代码生成,而不是像其他类似的库一样使用运行时反射(这会消耗 CPU 和性能)...

关于Java/Android 哪种编码方法是首选?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15386237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com