我有以下代码显示带有字母的图片
public class MainActivity extends Activity
{
private String[] capital_letters,small_letters;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart()
{
super.onStart();
try
{
capital_letters = getApplicationContext().getResources().getStringArray( R.array.capital_letters );
small_letters = getApplicationContext().getResources().getStringArray( R.array.small_letters );
MyAdapter adapter = new MyAdapter ( MainActivity.this ,capital_letters,small_letters );
ListView list = ( ListView ) findViewById( R.id.list );
list.setAdapter( adapter );
list.setOnItemClickListener( new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,long id )
{
Intent intent = new Intent ( MainActivity.this, LetterActivity.class );
intent.putExtra( "position", position );
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
overridePendingTransition( 0, 0 );
}
});
}
catch ( Exception e ){e.printStackTrace();}
}
}
如何使我的代码重量轻,工作非常顺畅。平滑的性能意义,正确的变量声明,循环,垃圾收集使用等?
答案 0 :(得分:5)
你并不是唯一一个想要获得正确声明变量,优化循环等所需的性能的人。
但如果你只是坐下来这样做,你最终会修复那些没有破坏的东西。
性能调优的关键是:首先找出需要修复的内容。
这就是探查者应该帮助你做的事情。 就个人而言,我使用 random pausing ,很多人都这样做。 这是一个简短的PDF slide show。
这笔交易是,除非您的代码非常简单(在这种情况下它可能没有太大的加速空间),它可能有多个你可以修复的东西来加速它。 假设有三个:
好的,首先你找到A,然后修复它。你得到多少加速? (1 /(1-.4))= 1.67或67%。 不错。
但如果再看一下百分比,现在:
所以它们应该更容易找到,因为它们占据更大的百分比。 你明白了。
如果你修复了所有,你会获得多少加速? 1 /(1 - .7))= 3.33 = 233%。
如果还有更多,比如D和E,那么你可以更进一步。
但如果你错过任何一个,你会获得多少加速? 该项目成为您的限速器。 所以继续前进,直到你找不到更多。
去吧,玩得开心!
答案 1 :(得分:2)
这取决于您的具体应用程序,以给出一般答案。但谷歌已经在a performance guide写了特定于Android的提示。我建议你阅读。
当然,它并没有考虑到一般的性能提示,但我希望你已经知道了。如果不是,你应该尝试找一些关于程序的一般性能调整和特定于Java的性能技巧的资源,尽管并非所有后者都适用于Android。
尽管很多这些技巧(非常轻微地)提高了性能,但它们并不总是从软件设计(例如可维护性和可移植性)的角度来看是最好的决策。其中很多只是&#34;技巧&#34;这可以由编译器自动化,因此可能会被合并到更高版本的JIT中。由于指南是针对2.3编写的,因此它们甚至可能已经在4.0中。
答案 2 :(得分:1)
看一下this question and all its answers关于android的性能优化的话题。