開発したアンドロイドアプリの動作が重いです。
簡単な電卓アプリを作成したのですが、数字をおすだけでも数字の表示に3秒以上かかったりもしてしまいます。
動作速度は、アンドロイドの端末により大きく変わります。
自分の携帯(XPERIA SO-03D)では動作速度はあまり遅くならないのに、
ネクサス6やその他の端末で動作確認をすると数字ボタンをタップし表示されるまで多いときは3秒以上かかってしまいます。
アプリの開きすぎなどメモリ関連の問題かと思ったのですが、自分の作成したアプリ以外は
重くもなく、正常に動作するのでたぶん自分の作成した電卓アプリの構成が悪いと考えました。
だいたいの構成は以下の通りです。
省略の仕方が下手なので分かりにくいかと思います。申し訳ないです・・
電卓としての動作は一応できていると思います。
よろしくお願いします。
Java
1public class dentakuActivity extends ActionBarActivity implements View.OnClickListener { 2//最初にクラス内にBigDecimalやStringなどを定義していく(一部省略はぶいてます) 3 BigDecimal suuji1 = BigDecimal.ZERO; 4 BigDecimal suuji2 = BigDecimal.ZERO; 5 BigDecimal mae = BigDecimal.ZERO; 6 7 String kigou1; 8 String now2; 9 10 TextView textView; 11 TextView textView2; 12 : 13 :
Java
1protected void onCreate(Bundle savedInstanceState) { 2 super.onCreate(savedInstanceState); 3 setContentView(R.layout.layout_dentaku); 4 //OnCreateに全てのボタンにクリックリスナーをつける。 5 6 ImageButton button1 = (ImageButton) findViewById(R.id.button1); 7 button1.setOnClickListener(this); 8 ImageButton button2 = (ImageButton) findViewById(R.id.button2); 9 button2.setOnClickListener(this); 10 : 11 :
Java
1//最下部にスイッチをつける 2 @Override 3 public void onClick (View v){ 4 switch (v.getId()) { 5 case R.id.button1: 6 mainSuuji("1"); 7 8 : 9 : 10 11 case R.id.buttonPlus: 12 kigou("+"); 13 kigou1= "+"; 14 15 break; 16 : 17 :
Java
1 if (flg) { 2 //二回目に数字をおされたときの処理 3 //記号(プラスなど)を押したあと数字を押すと、テキストビューを初期化し新しい数値を入れる 4 textView.setText(c); 5 flg = false; 6 } 7 else { 8 //最初のいれた数字がここにはいる 9 //数字を並べて入力できるようにする 10 String now = (textView.getText().toString()); 11 textView.setText(now + c); 12 }
Java
1 public void kigou(String k) { 2 //記号(プラスなど)が押されたときの処理 3 mae = new BigDecimal(textView.getText().toString()); //maeにテキストビューの中の文字を入れる(初期化して文字をいれる) 4 5 if (kigou1.equals("+")) { 6 suuji2 = new BigDecimal(textView.getText().toString()); 7 suuji1 = mae.add(suuji2); 8 textView.setText(String.valueOf(suuji1)); 9 10 mae = suuji1; 11 }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/02 03:23
2016/02/17 08:13