LoginSignup
7
5

More than 5 years have passed since last update.

【Androidstudio・Java】はじめて触ってみてわかったことわからないこと備忘録

Last updated at Posted at 2018-08-05

はじめに

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はこっちがいい。

引用元:【Android】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)を出力する方法【初心者向け】

画面遷移

参考:[Android] アプリの画面を遷移させる

コードの中身のあれこれ(`・ω・´)

extends

機能は継承
使いたいときは、extends クラス名って書く。

privateとpublic

メソッド経由でしかメンバ変数の値を格納したり参照したり出来ないようにするときに使う。
「private」を頭に付けたメンバ変数は、
メンバ変数が定義されているクラスの中でしか値を格納したり取り出したりということが出来なくなる。
なので、他のクラスでオブジェクトを作成し「オブジェクト名.メンバ変数名 = 値」のように直接メンバ変数に値を格納することを防止できる。

publicは書いても書かなくてもいいが、後でプログラムを見て分かりやすいように、「private」を書き忘れたわけではなく「public」にしたかったのだと明示的に分かるようにするために、publicは書いておいたほうがいい。

引用:publicとprivate

使いたいときは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

オーバーライド。
スーパークラスのメソッドをサブクラスで書きなおしている。

参考:Java の @Override って何だ

クラス構成とパッケージ構造あれこれ(`・ω・´)

そもそもパッケージ(package)とは、クラスを、フォルダのようなもので整理する機能とのこと。

package jp.tuyano.myapp;

上記は、このクラスが、jpフォルダの中のtuyanoフォルダの中のmyappフォルダの中に用意されるの意。
パッケージではドットを使って階層を書く。

引用:Android開発ビギナーのためのJava超入門

Git管理であれこれ (`・ω・´)

build_file_checksums.ser

プロジェクトをgitから落としてきたときに差分として出てきたやつ。
gitignoreに追加してしまっても問題なさそう??

参考:.ideit / cache / build_file_checksums.serを.gitignoreに追加する必要がありますか?
Android Studioでバージョン管理下に置かないもの

以上。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5