感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

Hello World.

<スポンサーリンク>

Android本を読んだのでメモ。

■Android仮想デバイスの設定
ウィンドウ > Android 仮想デバイスマネージャで出てきた画面で、新規を選択。
立ちあげたい仮想マシンを自分で作成する。

■新規Androidプロジェクトの作成
ファイル > 新規 > Android アプリケーション・プロジェクト

■アクティビティ

アクティビティ 意味
Blank Activity 通常のアクティビティクラスのテンプレ。アクションバーが表示され、オプションでタブやドロップダウンメニューなども設定可能。
Fullscreen Activity ステータスバーやアクションバーが表示sれないフルスクリーンのテンプレート。画面タッチやメニューキーを押すことで、非表示になっていたアクションバーやボタンが表示される。
Master/Detail Flow スマホ端末では、リスト形式で表示する一覧画面が表示され、項目を選択すると詳細画面に遷移する。タブレット端末では左側に一覧が表示され、項目を選択すると右側に詳細情報が表示される。


■res/layout
fragment_hello_android.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="example.android.hello.HelloAndroidActivity$PlaceholderFragment" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

このandroid:text="@string/hello_world"というのは、
res/values/strings.xmlのhello_worldタグを見ている。

RelativeLayoutタグは、他のビューとの位置関係を指定して、ビューを配置している。

wrap_contentというのは、画面全体でレイアウトの幅を自動調整して表示するということ。

・activity_hello_android.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="example.android.hello.HelloAndroidActivity"
    tools:ignore="MergeRootFrame" />

match_parentというのは、画面いっぱいの表示するという意味。

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">AondroidExample</string>
    <string name="hello_world">こんにちは!Androidの世界へようこそ!</string>
    <string name="action_settings">Settings</string>

</resources>

で、このhello_worldに書かれている文字列が表示される。

■Javaプログラム

メソッド名 意味
setContentView レイアウトとビューの設定ファイルを指定する
onCreateOptionsMenu メニューボタンが押されたときに表示するメニューを生成する


■Androidプロジェクトの実行
実行は普通のJavaを実行するのと同じく、三角っぽいボタンを押すだけ。
「Androidのプロジェクト」を実行する。

Androidエミュレータでアプリを起動するときは、以下のような内部処理が順番に行われている。

1.Javaプログラム(.java)をコンパイルし、Javaバイトコード(.class)を作成する
2.JavaバイトコードをAndroidバイトコード(.dex)に変換
3.Androidバイトコードを含むAndroidパッケージファイル(.apkファイル)を生成
4.Androidエミュレータを起動し、アプリケーションをインストールして起動

f:id:sho322:20140604225518j:plain

■アノテーション
アノテーションとは、プログラムの動作には直接影響を与えない、注釈のようなもの。
@Overrideというアノテーションは、最初何の意味があるのかと思ったけど、ちゃんとOverrideされているかどうかを確かめてくれるみたいだ。
オーバーライドされてないと、コンパイルエラーになる。
スーパークラスとメソッド名が違っていたり、引数が違っていたりといった、ミスを防ぐことができる。IDEを使ってると、あんまし有り難みがわからなかった。


<参考>
スマートにプログラミング Android入門編 第3版 SDK4.x対応

めちゃくちゃわかりやすい本だと思う。
まずは一番簡単そうな本から始めたくて、本屋で色々見ていたときに見つけた本。
これをしっかりやってから、実践編をやってみたい。