はじめに
3週間ほど前に、Android studio(Java)をはじめて(コード書く人のポジションで)触りました。
わからないワードばかりだったので、調べたこと(とかネットの記事)の備忘録。
(自分が見つけやすくする用です。悪しからず・・・。)
※尚、間違った記述をしている可能性がございます。ご注意ください。
ほとんどメモですがご指摘などもお待ちしております。
超基本的なことっぽいあれこれ(`・ω・´)
AndroidManifest.xml
とってもとっても大事なファイル。
参考:AndroidManifest.xml の備忘録
Activity
ActivityやViewConrollerなどスマホ開発用に提供されるコントローラは、"画面を"コントロールするもの。
例えば、アプリとしてA,Bの2画面があるとすると、一般的な実装では、
A画面用のアクティビティ(A_Activity)➕レイアウトファイル(A.xml)
B画面用のアクティビティ(B_Activity)➕レイアウトファイル(B.xml)
となるらしい。
参考:Androidアプリ作成の基本“Activity”とは何か? (1/2)
Fragment
FragmentはActivityのUIの挙動や部位を表すもの。
Fragmentは必ずActivityに埋め込まれている必要がある。よって、FragmentはActivityで再利用可能な『サブアクティビティ』のようなものである。
Fragmentは独自のライフサイクルを持っているが、ホストとなるActivityの影響を直接受ける。
ActivityはFragmentの追加や削除が行える。
引用元:Fragmentの基本
コンストラクタ
眠いからちょっと割愛。
参考:【Java】 コンストラクタって何? this( )の意味
context
【contextには2種類ある】
①Activityのcontext(使い方:Activity名.this)
Activityのライフサイクルに依存。基本Activityが破棄される時に一緒に破棄されるが、静的な変数がcontextを参照してる場合、contextのメモリが開放されずメモリリークする可能性がある。
②Applicationのcontext(使い方: getApplicationContext())
アプリケーションに依存。アプリケーションが生きている限り生き続ける。上に挙げた、静的な変数が参照するcontextはこっちがいい。
findViewById
AndroidのAPIのうち、最もよく利用するメソッドの一つ
スタイル
スタイルは、View やウィンドウの外観や書式を指定するプロパティの集合。
参考:Android公式
Rクラス
リソースを管理してくれるクラス。
参考:【Android Studio】javaソース内の「R.~」が全部エラーになった
リソース
参考:リソースの提供
Android Studio ドキュメント 日本語訳
アセット
画面密度ごと(mdpi, hdpi, xhdpi)のファイルを用意する必要がある。
レイアウト
ログ出力
Log.v:VERVOSE(すべてのログ情報)
Log.d:DEBUG(デバッグ情報)
Log.i:INFO(情報)
Log.w:WARN(警告)
Log.e:ERROR(致命的な問題)
引用元:Androidアプリ開発でログ(Log)を出力する方法【初心者向け】
画面遷移
コードの中身のあれこれ(`・ω・´)
extends
機能は継承
使いたいときは、extends クラス名
って書く。
privateとpublic
メソッド経由でしかメンバ変数の値を格納したり参照したり出来ないようにするときに使う。
「private」を頭に付けたメンバ変数は、
メンバ変数が定義されているクラスの中でしか値を格納したり取り出したりということが出来なくなる。
なので、他のクラスでオブジェクトを作成し「オブジェクト名.メンバ変数名 = 値」のように直接メンバ変数に値を格納することを防止できる。publicは書いても書かなくてもいいが、後でプログラムを見て分かりやすいように、「private」を書き忘れたわけではなく「public」にしたかったのだと明示的に分かるようにするために、publicは書いておいたほうがいい。
使いたいときはprivate 変数の型 メンバ変数名;
って書く。
この辺はなんとなくわかる。(多分)
static class(内部クラス)
基礎基礎で大事そう。staticだとインスタンス作らないでも呼べるよっていう認識。
iOSとstaticの意味合いが違う???
参考:【Java】内部クラス(インナークラス)の使い方(static class)
単位 "dp"
密度非依存ピクセル(dp)
UI レイアウトを定義するときに使用する必要のある仮想ピクセル単位。レイアウトの寸法または位置を密度に依存しない方法で表すために使用します。
密度非依存ピクセルは 160 dpi 画面の 1 つの物理ピクセルと同等です。これは、「medium(中)」密度画面用に想定される基準密度です。 使用している画面の実際の密度に基づいて、必要に応じて、dp 単位のスケーリングが透過的に処理されます。 dp 単位から画面ピクセルへの変換は簡単です (px = dp * (dpi / 160))。たとえば、240 dpi の画面では、1 dp が 1.5 物理ピクセルに相当します。 アプリの UI を定義するときは、常に dp 単位を使用して、密度が異なる画面に UI が適切に表示されるようにする必要があります。
だそうです。
とりあえず初心者的には、画像の大きさを表すやつという認識。
参考:謎の単位 "dp" (Density-independent Pixel) にせまる。あと drawable の話とか in Android
Androidの公式
import
こんなような書き方をする
import android.net.ConnectivityManager;
ネットで拾ったメソッドとかコピペして貼り付けたときに、〜〜がimportされせませんよ〜〜ってエラーが出てくる。
Androidstudio、親切。
Override
オーバーライド。
スーパークラスのメソッドをサブクラスで書きなおしている。
クラス構成とパッケージ構造あれこれ(`・ω・´)
そもそもパッケージ(package)とは、クラスを、フォルダのようなもので整理する機能とのこと。
package jp.tuyano.myapp;
上記は、
このクラスが、jpフォルダの中のtuyanoフォルダの中のmyappフォルダの中に用意される
の意。
パッケージではドットを使って階層を書く。
Git管理であれこれ (`・ω・´)
build_file_checksums.ser
プロジェクトをgitから落としてきたときに差分として出てきたやつ。
gitignoreに追加してしまっても問題なさそう??
参考:.ideit / cache / build_file_checksums.serを.gitignoreに追加する必要がありますか?
Android Studioでバージョン管理下に置かないもの
以上。