目次
第1章 Android Studioを知ろう
1.1 Android Studioとは
- Android StudioのベースになっているIntelliJ IDEA
- Android StudioとGradle
1.2 Android Studio の特徴や利点
- 長年の実績をもつIntelliJ IDEAベースのIDE
- 固有のIDEに捕らわれないビルドシステム
- 多彩なビルドをこなす柔軟なビルドスクリプト
1.3 Android Studioの注意点
- Eclipse ADTとの断絶
- IntelliJ IDEAそのもののクセの強さ
- 寄せ集めのIDEとしての統一感のなさ
1.4 結局Android Studioってどうなの
第2章 クイックスタート
2.1 インストールの事前準備
- 要求するシステム要件を把握する
- インストール作業の流れを把握する
- Javaの環境を用意する
- 環境変数を設定する
2.2 Android Studioをインストールする
- Android Studioの入手
- Android Studioのインストール(Mac)
- Android Studioのインストール(Windows)
- Android Studioのインストール(Linux)
- セットアップウィザードを実行する
2.3 新しくプロジェクトを作る
- Welcome画面からプロジェクトを作成する
- かんたんなAndroid Studioの画面解説
- Android Studioを終了する
2.4 アプリケーション開発を行う
- Javaのソースコードを編集する
- オートセーブによるファイルの保存
- レイアウトエディタで画面のレイアウトを行う
- プロジェクトをビルドする
2.5 プロジェクトを実行する
- Androidアプリケーションを実行する
- アプリケーションのデバッグを行う
第3章 基本的な使い方
3.1 Welcome画面とファイルダイアログ
- Welcome画面
- ファイルダイアログ
3.2 画面構成とその名称
- ツールバー
- ナビゲーションバー
- ステータスバー
- ツールウィンドウ
- スピードサーチで簡易検索を行う
3.3 Projectツールウィンドウ
- Projectツールウィンドウの概要
- Projectツールウィンドウの表示内容
- Projectツールウィンドウとエディタを同期する
- Projectツールウィンドウでのファイル操作
3.4 そのほかのツールウィンドウ
- Structureツールウィンドウ
- Terminalツールウィンドウ
- Event Logツールウィンドウ
第4章 プロジェクト
4.1 やさしいプロジェクト入門
- プロジェクトとモジュール
- 新しいプロジェクトやモジュールを作る
- Projectツールウィンドウから見たプロジェクト
- 標準的なAndroidプロジェクトの構造
4.2 プロジェクトを操作する
- プロジェクトに新しいファイルやディレクトリを作る
- Android開発に関連したリソースを作成する
- プロジェクトをビルドする
- プロジェクトのJavadocを生成する
4.3 かんたんなプロジェクトの設定
- プロジェクトの設定を確認する
- モジュールに参照ライブラリを登録する
4.4 本当は難しいAndroid Studioのプロジェクト
- Android StudioとGradleの関係
- 駆け足でわかった気になるGradle入門
4.5 ビルドスクリプトを理解する
- プロジェクトのbuildgradleを読み解く
- サブプロジェクトのbuildgradleを読み解く
- Android DSL
- ビルドバリアントを理解する
- Build Variantsツールウィンドウ
- Gradleのタスクとビルドバリアント
- NDK(Native Development Kit)を使ってみる
第5章 エディタ
5.1 エディタの構成と主な使い方
- エディタウィンドウの構成
- ドキュメントタブ
- エディタを分割表示する
- ドキュメントタブをカスタマイズする
- ガーターエリア
- 折り畳み表示とその操作
- バリデーションサイドバー/マーカーバー
- エディタエリアの表示内容
5.2 エディタの基本操作
- テキストのカット,コピー&ペースト
- 文脈依存選択
- 矩形選択
- マルチカーソル
- 囲みの削除
- セミコロンなどを補足して文を完成する
- 行を分割する/結合する
- インデント文字をスペースやタブに変換する
- インデントを下げる/上げる
- 改行コードやファイルエンコーディングを変更する
- 行のコメントアウト
- インポート文を解決する
5.3 さまざまな情報参照
- APIヘルプや定義を参照する
- エディタ以外からAPIヘルプや定義を参照する
- Documentationポップアップ
- パラメタ情報を参照する
- 兄弟の関係にあるクラスを参照する
5.4 マウス操作
- Ctrlキーとマウス操作の組み合わせ
- マウス操作による範囲選択
5.5 コード補完
- Android Studioのコード補完
- コード補完の書き味の調整
- キーワード補完
5.6 インテンション&インスペクション
- インテンション&インスペクションとは
- インテンションの設定
- おもしろインテンション
- インスペクションの設定と無効化指定
- スペルミスの指摘
5.7 コード生成
- ライブテンプレートの展開
- 選択したコードを囲む(ライブテンプレートの展開)
- ポストフィックス補完(Postfix Completion)
- 定型コードを生成する
- Javadocコメントを生成する
5.8 いろいろなコーディング方法
- 既存のクラスやインターフェイスから新しいクラスを作成する
- オーバライドメソッド,実装メソッドを作成する
- 未定義状態のソースコードからクラスやメソッドを作成する
- コード展開のスタイル比較
5.9 コードフォーマット
- Android Studioのコードフォーマット機能
- インポートの最適化を行う
- コードフォーマットを行う
- アレンジメントを行う
5.10 ナビゲーション
- クラス/ファイル/シンボルに移動する
- 対応するカッコやタグに移動する
- 指定した行番号に移動する
- 戻る/進む,最後の編集位置に移動する
- ブックマーク
- Projectツールウィンドウ上のファイルに移動する
- 宣言部,実装などクラスの関係に基づいた移動
- ファイルやクラスの構造に基づいた移動
- クラスや型の継承関係に基づいた移動(Hierarchyツールウィンドウ)
- 問題箇所への移動やそれ以外のファイル内移動
- 最近使ったファイルに移動する
- Switcherによる移動
- ツールウィンドウからエディタに戻る
- ファイルパスから任意のディレクトリに移動する
5.11 検索と置換
- エディタ内の検索と置換
- 指定したディレクトリ内の検索と置換
- Findツールウィンドウ
- 編集中のファイルでの使用箇所をハイライト表示する
- プロジェクト全体での使用箇所を検索する
5.12 いろいろな比較
- 地味に便利なクリップボードとの比較
- ファイルやディレクトリ同士の比較
5.13 そのほかの便利な機能
- ローカルヒストリで変更履歴を管理する
- プレゼンテーションモードでドヤ顔しよう
- クイックリストを利用して機能を効率よく使う
- 自分好みのクイックリストを作成する
第6章 レイアウトエディタ
6.1 レイアウトエディタとは
- レイアウトエディタの概要
- レイアウトエディタの画面構成
6.2 レイアウトを編集してみよう
- 新しくレイアウトファイルを作成する
- GUI部品をレイアウトする
- GUI部品のプロパティを編集する
- GUI部品のレイアウトを調整する
6.3 レイアウトエディタ以外のいろいろなエディタ
- ローカライズを行う(翻訳エディタ)
- アイコンを作成する(Asset Studio/Vector Asset Studio)
- 画面遷移をデザインする(ナビゲーションエディタ)
- テーマファイルを編集する(テーマエディタ)
第7章 リファクタリング
7.1 リファクタリング操作の基本
- Android Studioのリファクタリング機能
- リファクタリングを試してみる
- リファクタリングプレビューを活用する
7.2 リファクタリング・カタログ
- いろいろな対象をリネームする
- クラスやメソッドのシグネチャを変更する
- ある型をほかの型に変更する(型のマイグレーション)
- クラスやメソッドのスタティック化とメソッドのインスタンス化を行う
- いろいろな対象を移動したりコピーしたりする
- いろいろな対象を安全に削除する
- いろいろな要素を抽出する
- いろいろな対象をインライン化する
- 重複したコードを見つけて置き換える
- 真偽を反転する
- メンバのプルアップ(引き上げ)やプッシュダウン(引き下げ)を行う
- いろいろな置き換え
- 仲介人を削除する
- メソッドの戻り値を値オブジェクトに包み直す
- 匿名クラスを内部クラスに変換する
- フィールドをカプセル化する
- ジェネリクス(総称型)を適用する
- 特定のパッケージやクラスをマイグレーションする
- リソースバンドルを使って国際化する
- スタイルのインライン化と既存スタイルの適用
- 可能ならばRTLサポートを追加する
第8章 分析機能
8.1 コード検査(インスペクション)
- エディタのリアルタイム検査との違いを理解する
- インスペクションの実行とInspectionツールウィンドウ
- インスペクション項目を指定してコード検査を実行する
- インスペクションのプロファイルを作る
8.2 インスペクションのカテゴリ
- Android
- Android Lint
- General
- Java
- Spelling
8.3 コード分析を活用する
- 依存関係を分析する
- Dependency Viewerツールウィンドウ
- 依存関係のルールを設定する
- 変数や引数がどこから来たのか(どこへ行くのか)を分析する
8.4 コードの構造に基づいた検索と置換
- Structural Search&Replaceとは
- Structural Searchを使ってみる
- 検索テンプレートを設定する
- 検索テンプレートに条件を設定する
- Structural Replaceを使ってみる
- インスペクションに組み込む
第9章 実行とデバッグ
9.1 実行構成
- 実行構成とは?
- 実行構成を管理する
- 実行構成のタイプ
- 実行構成の作り方
9.2 Androidアプリケーションを実行する
- アプリケーションの実行とAndroid Monitorツールウィンドウ
- テストを実行する
- テストランナー(Runツールウィンドウ)の使い方
- カバレッジを測定する
9.3 デバッガを使う
- 既存のAndroidアプリケーションにデバッガ接続する
- ブレイクポイントを操作する
- より高度なブレイクポイントの設定
- Debugツールウィンドウ
- デバッグ中の操作(ステップ実行)
- 実行中のオブジェクトの値を見る
- 実行中のオブジェクトの値を書き換える
- デバッグ中にプログラムとは関係のないコードを実行する
- ステップインしないクラスやパッケージを設定する
第10章 バージョン管理システムとの連携
10.1 バージョン管理システム(VCS)連携機能の基本
- バージョン管理システムの基礎
- VCS連係のための事前準備
- プロジェクトをVCS管理下に置く
10.2 VCS連携時の共通の操作
- VCS連携中の見た目の変化
- VCS連携の操作を行うユーザインターフェイス
- Version Controlツールウィンドウでの操作
- チェンジリスト(Changelist)ってなに?
- プロジェクトを最新の状態に保つ
- 無視するファイルを設定する
- リポジトリにファイルを追加する
- ファイルの変更(リネームや移動)と削除
- 変更した結果をコミットする
- 変更を取り消して,直前のコミットまで戻す
- ファイルの変更履歴を確認する
- VCS連携時におけるいろいろな比較
- コンフリクトを解決する
- チケット管理システム(BTS/ITS)と連係する
10.3 Git連係
- Git連携時のユーザインターフェイスの特徴
- フェッチ(git fetch)とプル(git pull)
- コミット(git commit)
- プッシュ(git push)
- ブランチ(git branch)とマージ(git merge)
- リセット(git reset)
- リベース(git rebase)
- タグ(git tag)
- 一時待避と復元(git stash&git unstash)
- コミットの抜き取り(git cherry pick)
10.4 GitHub連係
- GitHubのサイトを開く
- Gistにスニペットを登録する
- プロジェクトをGitHubに公開する
- GitHubにプルリクエストを送る
- GitHubのfork元の変更を取り込む
第11章 カスタマイズ
11.1 設定画面
- Android Studioの設定画面
- プロジェクトの設定とIDEの設定の違い
- プロファイルを素早く切り替える
11.2 Android Studioをカスタマイズする
- ダークテーマに変える
- Android Studio全体やエディタのフォントを変える
- ステータスバーに使用メモリのインジケータを表示する
- スコープの設定とそれに対応したファイルに色を付ける
11.3 エディタをカスタマイズする
- 自動入力される文字を設定する
- 折り畳み表示を設定する
- エディタのカラー設定をカスタマイズする
- ライブテンプレートをカスタマイズする
- コード生成に関するテンプレートをカスタマイズする
- プロジェクトやファイルのエンコーディングを設定する
- ユーザ定義メソッドにランゲージインジェクションを設定する
11.4 キーマップをカスタマイズする
- ショートカットキーのカスタマイズ
- プリセットしてあるキーマップ
- キーマップを設定する
- Editor Actionsひとめぐり
11.5 コードスタイルを設定する
- コードフォーマットの基本
- 共通のコードスタイルを設定する
- Javaのコードスタイルを設定する
- EditorConfigでコードスタイルを設定する
11.6 プラグインで機能を拡張する
- プラグインマネージャの使い方
- 標準でバンドルしているプラグイン
- オンラインでプラグインをインストールする
- オフラインでプラグインをインストールする
- プラグインを無効化またはアンインストールする
11.7 そのほかの設定
- 外部ツールを設定する
- Terminalツールウィンドウをカスタマイズする
- 裏技的な設定を行う(Registry)
第12章 IdeaVIMプラグイン
12.1 IdeaVIMを使う準備をする
- IdeaVIMの歴史
- IdeaVIMがサポートしているvimの機能
- IdeaVIMのインストール
12.2 IdeaVIMを使ってみよう
- IdeaVIMを使うにあたっての前置き
- モーションコマンド
- 削除や変更などのテキスト操作
- インサートモード
- マーク&ジャンプ
- ジャンプリストとタグジャンプ
- ビジュアルモード
- 検索と置換
- キーボードマクロのサポート
- ファイル操作
- そのほかの機能
- Exコマンド
12.3 IdeaVIMのカスタマイズ
- IdeaVIMのオプションとideavimrc
- キーマップのカスタマイズ
- Android Studioの機能をIdeaVIMに割り当てる
第13章 インサイドAndroid Studio
13.1 Android Studioの内部構造
- Android Studioのファイル構成
- Android Studioの管理ディレクトリ
- IDEの設定情報の保存(エクスポート)と復元(インポート)
- 複数のAndroid Studioを共存させる
13.2 Android Studioをメンテナンスする
- Android Studioのアップデート
- オンラインアップデートの実際
- アップデートの注意点
- IntelliJ IDEAとアップデートの注意点
- Android StudioとIntelliJ IDEAの開発の関係
- アップデートの通知方法をカスタマイズする
- 完全なアンインストール方法 548
13.3 プロジェクト管理ファイル
- Android Studioのプロジェクト管理ファイル
- モジュール定義ファイル
- idea./ディレクトリの内容
- プロジェクト管理ファイルをバージョン管理しない
- プロジェクト管理ファイルをバージョン管理する
- バージョン管理するのはおすすめしないプロジェクト管理ファイル
13.4 各種情報源
- 更新情報
- バグデータベース
- ソースコード
【サポート編】
第1章 プロジェクト
1.1 やっぱり難しいAndroid Studioのプロジェクト
- モジュールのリネーム
- 参照ライブラリのJavadocの設定について
- モジュールの言語レベルを確認する
- Google Cloudアプリケーションモジュールでサーバ開発
- Android StudioとGradleとJVMの関係
第2章 エディタ
2.1 エディタをもっと使い倒す
- もっとマルチカーソルを使いこなす
- Sticky Selectionモード
- マクロの記録と実行
- 折り畳みコメントを使って特定の範囲を折り畳む
- 折り畳みコメントに移動する
- ブックマークの操作
- スクラッチファイルでメモを残す
- Copyrightコメントを生成する
- エディタの小ネタ集
2.2 続おもしろインテンション
- 行末の行コメントを上に移動する
- 文字列リテラルのシンタックスを指定する(ランゲージインジェクション)
- 計算式をわかりやすくする
- Java7やJava8の文法に変換する
第3章 インスペクション
3.1 インスペクションをもっと知りたい
- Android
- Android Lint
- C/C++
- Google Cloud Endpoints
- HTML
- Internationalization issues
- Java
- JUnit issues
- そのほかのインスペクション
3.2 クリーンアップに使えるインスペクション項目
- Java/Code style issuesのクリーンアップ項目
- Java/Control flow issuesのクリーンアップ項目
- Java/Declaration redundancyのクリーンアップ項目
- Java/Importsのクリーンアップ項目
- Java/Probable bugsのクリーンアップ項目
- Java/Verbose or redundant code constructsのクリーンアップ項目
3.3 リファクタリング/分析機能の補足
- 呼出元のシグネチャも連動して変更する
- 関数型オブジェクトを抽出する
- Eclipseのリファクタリングとの対比
- Infer Nullity...とは?
第4章 SubversionとMercurial
4.1 バージョン管理システムに関する補足
- 無視するファイルの設定
- もうひとつのBTS/ITS連携機能
4.2 Subversion連携
- Subversion連携時のユーザインターフェイスの特徴
- Version ControlツールウィンドウのRepositoryタブ
- SVN Repositoriesツールウィンドウでリポジトリを操作する
- リポジトリからプロジェクトをチェックアウトする
- プロジェクトをリポジトリに登録する
- 無視するファイルの設定(svn:ignore)
- ワーキングコピーの更新(svn update)
- ロック(svn lock/svn unlock)とコミット(svn commit)
- ブランチやタグの作成(svn copy)
- ワーキングコピーの切り替え(svn switch)
- マージ(svn merge)
- マージ状況の把握
4.3 Mercurial 連携
- Mercurial 連携時のユーザインターフェイスの特徴
- 無視するファイルの設定(.hgignore)
- プル(hg pull)とアップデート(hg update)
- コミット(hg commit)とプッシュ(hg push)
- ブランチ(hg branch)とマージ(hg merge)
- タグ(hg tag)
- コミットの抜き取り(hg grift --log)
第5章 カスタマイズ
5.1 もっとカスタマイズしよう
- Android Studioの設定画面
- 設定画面でよく見かけるツールバー
5.2 Android Studioのカスタマイズ
- ツールウィンドウの表示方法をカスタマイズする
- 細かい見た目やふるまいをカスタマイズする
- デフォルトボタンにマウスカーソルを移動させる
- ドラッグ&ドロップによる誤操作を防ぐ
- メニューやツールバーを自分好みにカスタマイズする
- 表示されなくなったダイアログや画面を再び表示する
- オートセーブや同期のタイミングを調整する
- 機密情報の保存方法とマスターパスワードを設定する
- 使用統計情報をGoogleに提供するかを設定する
- Android Studioからの通知方法をカスタマイズする
- Webブラウザの設定
5.3 エディタのカスタマイズ
- クリップボードの履歴などの上限を設定する
- フリーカーソルモードにする
- あまりカスタマイズできないガーターエリア
- マーカーバーの太さを変える
- HTML/XMLタグハイライト機能
- ログの折り畳み表示を設定する
- カラー設定のカスタマイズの補足
- サポートするファイルタイプを設定する
- Editor|File and Code Templatesの補足
- プロパティファイルのエンコーディングを設定する
5.4 コードスタイルの設定
- XMLファイルのコードスタイル
- XMLのアレンジメントの隠し機能
- C/C++のコードスタイルについて
第6章 プラグイン
6.1 プラグインで機能を拡張する
- プラグインの基礎知識
- プラグインの格納先
- 標準でバンドルしているプラグイン
6.2 プラグインの紹介
- おもしろプラグイン
- 言語系プラグインを使うときの注意事項
6.3 プラグインの仕組み
- プラグインでできることを調べる
- プラグインのメタ情報から機能を調べる
- Android Studioのビルドナンバーとプラグインの関係
6.4 プラグイン開発の情報
- プラグインを開発するには
- プラグイン開発の情報源
- 禁断のIDE Scripting Console
第7章 Misc&Tips
7.1 本編では取り上げなかった雑多なこと
- Welcome画面のQuick Startのメニュー
- メニューバー
- Asset Studio
- ショートカットキーを快適に使う設定
- Linux版のAndroid Studioをランチャーに登録する
7.2 ツールウィンドウやGUIに関する雑多なこと
- Android Studioのおすすめレイアウト
- ツールウィンドウでよく見かけるアイコンとその機能
- ステータスバーのコーナーアイコンでツールウィンドウを非表示にする
- Projectツールウィンドウのビュー
- Java ファイルのバッジの意味
- Projectツールウィンドウからファイル名をコピーする
- Favoritesツールウィンドウの使い道
- Previewツールウィンドウとスクリーンショットの取得
- レイアウトエディタのPaletteツールウィンドウにカスタム部品を登録する
- イメージファイルのプレビューやサムネイル表示
7.3 インサイドAndroid Studio こぼれ話
- Android Studioのプロセスを特定する
- Android Studioを英語モードで立ち上げる
Appendix 付録
A.1 各章のまとめ
- 「1章 Android Studioを知ろう」のまとめ
- 「2章 クイックスタート」のまとめ
- 「3章 基本的な使い方」のまとめ
- 「4章 プロジェクト」のまとめ
- 「5章 エディタ」のまとめ
- 「6章 レイアウトエディタ」のまとめ
- 「7章 リファクタリング」のまとめ
- 「8章 分析機能」のまとめ
- 「9章 実行とデバッグ」のまとめ
- 「10章 バージョン管理システムとの連携」のまとめ
- 「11章 カスタマイズ」のまとめ
- 「12章 IdeaVIMプラグイン」のまとめ
- 「13章 インサイドAndroid Studio」のまとめ
A.2 Android Studio v2.0の変更点
- 前のバージョンのプラグインを移行できる
- Show Intention Actionsにナビゲーション項目が追加された
- 一部のアイコンが変わった
- Find in PathとReplace in Pathにプレビューが付いた
- 実行可能なメソッドにガーターアイコンが付いた
- テストの実行結果を記録できるようになった
- 式の戻り値を確認できるようになった
- 赤緑色覚異常向けのカラーモードが追加された
- アンチエイリアシング設定が統合された
- カラースキーマの要素が階層化された
- 新しいProject Structureダイアログができた
- 内部データ