質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

2回答

4488閲覧

Androidアプリ開発でメモリを節約する方法

navesanta

総合スコア198

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2017/01/06 00:18

編集2017/01/06 00:20

Androidアプリ開発におけるメモリを節約する方法として正しいものを教えて下さい。

1)インスタンスはあまり作らずできるだけstaticメソッドで対応する。

2)getter、setterはあまり使わず直接フィールドを扱う。

3)GCをできるだけ発生させないように工夫する。

4)定数はfinalで宣言する。

他にも節約方法はありますが上記が正しいかどうかを教えて下さい。

環境
Android Studio 2.2.3
os:mac

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

ご提示の方法はいずれも、メモリを節約する方法ではなくアプリの実行速度を改善するもののように見受けます。
https://developer.android.com/training/articles/perf-tips.html?hl=ja

メモリを節約する方法について知りたければ、以下を読むのが良いと思います。
https://developer.android.com/topic/performance/memory.html

投稿2017/01/06 00:37

編集2017/01/06 00:43
KiyoshiMotoki

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

navesanta

2017/01/06 08:08

回答ありがとうございました。大変参考になりました。
guest

0

その1 インスタンスをあまり作らない

普通にコードを書いていれば、「インスタンスメソッド」を使うべき場面と「staticメソッドを使うべき場面」はおのずと分かれてきます。staticメソッドを使うべき場面で無理やりインスタンスを作らせるのはもちろん無意味ですが、逆にインスタンスメソッドのほうが素直に書ける場面を強引にstaticで書いても、あまり意味はありません。

その2 直接フィールドを扱う

これは、省けるメモリの量に対して副作用が強すぎます。そもそも、POJO(単にデータを入れるだけのオブジェクト)のようなごくシンプルなクラスでない限り、特にシンプルなsetterを作るべき場面すら限られますので、ましてやフィールドの直接アクセスをやりだすと、コードが混沌とするだけです。

その3 GCを発生させない

これはそのとおりですが、Javaの世界では、一度使って放棄したメモリは、GCに回収させるほかなくなってしまいます。ということで、一定の大きさの領域を何度も使う場合、あえてプロパティとして再利用することでGCに頼らず再利用する、なんていう技もあります。

その4 定数はfinal

インスタンスごとに定数を定義してもふつう無意味なので、static finalとしましょう。特に、public static finalとすると、コンパイル時に定数展開されるようになります。

投稿2017/01/06 00:36

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

navesanta

2017/01/06 08:09

回答ありがとうございました。参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問