Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。879件0このサイトにはいつも大変お世話になっております。以前より原因が分からなかったAnimationや、画像の激しい切り替え時にカクカクとコマ落ちしたようになってしまう原因について、xmlレイアウトについてImageViewを重ねていることが原因の様でした。キャラクターの動きや移動の前に7枚ほどImageViewを配置していますが、1枚のみにすると非常にスムーズになります。7枚あってもAndroid4.1ですと、動きは問題ないです。(2機種でテスト済みでどちらも支障なし)android6.0ですと、カクカクしてまともに動きません。(こちらも2機種で試して、どちらもまともに動かず)Android6.0でも、背面のImageViewを1枚のみすると問題ないです。xmlのプログラムは下記になります。何度もお手数をおかけいたしますが、ご教授のほど、よろしくお願いいたします。/>上記のImageViewのmap_i_1~6をgone又はinvisibleにすると軽快に動き、visibleにすると、まともに動きません。kyaraは0.175秒毎に画像を入れ替えています。画像の大きさは400バイト程度しかありません。map_i_1~6の画像はほとんど透過処理された画像で点ほどの大きさの画像があるのみです。容量はどれも3.5kb程度の大きさです。StudioのCPUのモニターが20~30%になっています。ImageView枚数を減らすと、2~7%程しかありません。android4.1ですと、ImageView枚数に関係なく、CPUは2~7%程度です。今は手元になし以上、ご教授のほど、よろしくお願いいたします。15:43ご記入ありがとうございます。本文に機種を記入しました。3:291メモリの使用量はどうなっていますか?圧縮形式の画像などは、ディスク上のサイズは小さくなりますが、メモリへの展開時サイズには関係ないので注意が必要です。メモリ上のサイズは、ピクセル当たりの情報量が画像の縦横の長さ分になります。4:46ご教授ありがとうございます。使用メモリ(参考として各解像度も)を本文に追記いたしました。何か分かれば助かります。Android6.0のみ、他に気になる点としましては、画像をすべてdrawableにいれているのですが、kyaraの表示だけ画像が2倍ほど大きくなってしまいました。kyaraの画像の大きさは、画面の縦横ドット数の比率をかけて表示するようにしています。11:39アドバイス頂き、いろいろ試して見たところ、透過処理した画像を重ねると、android6,0で、負荷が大きいくなりカクカクするようです。何か対策があればご教授頂けると助かります。透過画像でなくても画像を重ねるとダメ見たいです。※android4,1は負荷が小さいのが不思議です。票1追記された情報を見たところ、恐らくはメモリ使用量の問題ですね。xの値はどう見ても高すぎです。Androidでは、端末のメモリがどれだけ搭載されていても個別のアプリがそれをフルに使えるわけではありません。デバイスによって挙動が異なるのは、Androidのバージョン差ではなくて、端末のピクセル密度の差が影響しているのではないでしょうか。xではその中の最大のものが使われることと、この個別のアプリが使える上限メモリの値が衝突しているように思います。実機をUSBで繋いだ状態でテストして、logcatを見てください。GC(ガベージコレクション)が頻繁に発生していませんか?。GCが発生すると、メモリ回収のためのプログラムが処理に割り込み、画面のカクツキの原因になります。このGCが今回の原因だと仮定して、恐らく有効だと思われる対策をいくつか書いておきます。1.使用する画像をあらかじめ合成しておく。重ね合わせた画像を必要なだけあらかじめ作っておいて、その1枚をJavaから動的にセットする(組み合わせパターン数が少ない場合)。使用タイミングに合わせてJavaコード中で画像を合成してその1枚を動的にセットする(組み合わせパターン数が多い場合)。ImageViewはkyaraと背景の2つだけになります。動的な画像読み込み時にフルカラー(ARGB8888)ではなくRGB565に落とすのも有効です。2.レイアウトを変更し、画像の透明部分を極力削除し、画像の縦横サイズを限界まで下げる。XMLのルートをFrameLayoutにして、各画像の位置はマージン等で調整する。3.高解像度の端末でも低解像度の画像を使用する。xxhdpiなどのフォルダにもhdpiなどと同じ画像を入れる。ハイエンド機における見た目がちょっと悪くなる欠点がある。使用メモリ量はAndroid4.1の端末で10~20MBぐらいを目標とすると良いでしょう。3.の手法は欠点もありますが、ある程度妥協しないといけない場合もあります。個の銅バッジご回答大変ありがとうございます。原因が断定できて大変助かります。対策としまして1案で対応していきたいと思います。別のプログラムでは1案がとれないものもあります。使用画像のトタール画像容量で10MB程度ですので、画像の処理の仕方が悪くメモリを使ってしまっていると思いますが、対策の仕方がわからない状況です。画像は、xmlで張り付けてたまにアニメーションさせたり、画像を入れ換えたりしているのみです。drawabelには、メインのところに入れているのみで、解像度別に作っていません。xがメモリ使用が多いのか(他の60MBもインストール画像容量より多いですが...)わからない状況です。メモリの解放等はしていません。お手数をお掛け致しますがよろしくお願いいたします。3:54解像度別に作っていないという点が気になります。インストール画像容量よりメモリ上での展開量が多いのは上のコメントで書いた通りです。別の言い方をすると、インストールしたときPNG形式の画像でも、メモリ(RAM)上では解凍されてBMP形式です。圧縮したままでは使えませんから。xだけやたらメモリ使用量が多いのは、端末のRAMが大きいので最適化の関係で大きくなっているとか、解像度が高いため基本的なメモリ使用量も多くなっている等が原因ではないかと思いますが、それにしても高すぎますね。6:44早速のコメント大変ありがとうございます。使用メモリの取得について考えたことがありません。そのため、何もしてない状況です。解像度別の画像も少しくらい荒くても支障ないと考えて作っておりませんでした。logcatについては出先のためまだ確認できていません。夜、帰宅しだい、確認してみたいと思います。お手数をお掛け致します。初歩的な部分ですいません。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。style.xmlで設定してもアクションバーを消せない。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。