#はじめに
javaの基本的な理解はできている
androidStudioの導入が完了している
同じく、開発初心者による備忘録のような形になります。
Day1.AndroidStudioにおけるプロジェクトの作り方
Day2.Androidアプリケーションの構成
Day3.アプリケーションのレイアウト
Day4.onClickListenerの実装とその後の処理
Day5.Activityのライフサイクル
Day6.xmlで枠を指定する
#Environmentクラス
androidアプリ開発でのデータの保存についてです。
機種ごとに保存pathが違ったり4.2以降はマルチユーザー対応(タブレットのみ)によってストレージの扱いが変わっていたりなど大変なんです。直接参照している場合はファイルが見つからないため落ちます。ですので基本的にハードコーディングはやめるべきです。何よりも互換性がなくなります。(androidでは致命傷でしょう...)
御託はどうでもいいからpathの取得の仕方を教えろ、という方は一番下に行けば幸せになれるでしょう。
そこで使用されるのがEnvironmentClassです。
##Environment.getXXXDirectory()
Environment.getXXXDirectoryを呼び出すことでFileインスタンスの取得ができます。
種類としては
- getDataDirectory
- getDownloadCacheDirectory
- getExternalStrageDirectory
- getRootDirectory
です。
今回はExternalStrageDirectoryを用いてSDカードにアクセスします。
##アプリの専用保存場所の取得
データの保存場所はroot Directoryにしないほうがいいでしょう。理由としては、アンインストールした時にそのアプリで生み出されたごみが残ります。
あなたもデスクトップが汚いのは気になるでしょう。
アプリにはそれぞれ専用の保存領域が確保されています。さらにAcitivty内のメソッドで簡単に取得できます。
- getExternalFilesDir(String string)
- getExternalStoragePublicDirectory(String type)
###getExternalFilesDir
ファイルを置くディレクトリpahtを取得できます。
ここはアプリ固有のファイルの置場所でアプリがアンインストールされた際一緒に消されます。また、ファイルにロックはかかってないので外部から参照(読み書き)することも可能です。
###getExternalFilesDir
publicなディレクトリを取得できます。
typeを指定することでさまざまな場所を動的に取得できます。
よく使われるtypesとしては
- DCIM
- DOWNLOADS
でしょうか。
名前のままですが カメラとダウンロードを取得できます。
File pathExternalPublicDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
上記でダウンロードディレクトリのpathを取得できます。
以上です。
File pathExternalPublicDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
せっかちな人のためにカメラのディレクトリpahtの取得の記述も書いておきます。