Help us understand the problem. What is going on with this article?

EclipseからAndroid Studioに乗り換えたけど、しっくりこない人のためのメモ

More than 5 years have passed since last update.

これなに?

EclipseからAndroid Studioに乗り換え(ようと思っ)たんだけど、キーバインドとか挙動がいろいろ違くて慣れるのつらっていう僕(@ushi3_jp)みたいな人用のメモ。
基本的に、Eclipseチックにできるところは設定方法を、無理な場合はASでの操作を書いています。

なお、僕はWindowsユーザーなので、Macの人はASの SettingsPreferences と脳内変換してください。

IDE設定

起動すると、最後に開いてたプロジェクトが開かれる

俺は別のプロジェクトを開きたいのに、以前のプロジェクトが自動で開かれて、しかもgradle動き始めるからつらい…

Settings -> Appearance & Behavior -> System Settings

Startup/Shutdownの Reopen last project on startup のチェックを外す

コードの折り返し文字数

Settings -> Code Style

Right margin (columns) の値を変更する。

KeyMap

KeyMapのプリセットにEclipseあるから、切り替えてみたけど違和感ある…
KeyMapをEclipseにした人用

左辺生成

new ArrayList<>()とか書いて、左辺を自動生成する。Eclipseだと Ctrl+2→L など。

ASでは、Ctrl+Alt+V で左辺が生成されます。
なお、Classスコープでは左辺生成できない模様。

コンストラクタやgetter/setterの生成

Eclipseだと、コンストラクタはClassスコープでCtrl+Space で作れたりする。
getter/setterのコマンドは忘れた。

ASでは、Alt+Insert で自動生成候補が出てきます。
何かしら自動生成したかったらとりあえずAlt+Insert押してみるとよさげ。

選択行の移動

選択している行を上下方向に移動する。EclipseだとAlt+上下

if文の中などでやってみるとスコープごと移動される、なんか違う…

Alt+上下Move Statement Down/Up になっています。
Move Line Up/Down に変更すると行単位で移動します。

選択行のコピー

選択している行を上下方向にコピーする。EclipseだとCtrl+Alt+上下

上押しても何も起きないんだけど…

Ctrl+Alt+下 しか定義されてないです。

上にコピーしたいんだけど…

残念ながら上下の区別がないので、下方向にしかコピーできないです。

呼び出し元、型階層

呼び出し元は Ctrl+Alt+H、型階層は F4

コーディング

ClassなどをホバーしてもJavadocが出てこない

Settings -> Editor -> General

Otherカテゴリーの Show quick doc on mouse move をチェックする。
Delay をいじることで、ホバーしてからdocが出るまでの時間を調整できる。

sysoutでSystem.out.printlnが出てこない

Editor -> Live Templates

Javaではoutputグループの定義が有効です。デフォルトでは、soutSystem.out.println となっています。必要であれば、Abbreviation の内容を変更することで、好みのテンプレートキーワードにできます。

同設定のiterationsグループには、for文のテンプレートが定義されています。デフォルトでは for-each のテンプレートが iter で呼び出せるようになっています。

1行コードのメソッドが勝手にcollapse表示される

Settings -> Editor -> General -> Code Folding

Collapse by defaultの One-line methods のチェックを外します。

getter/setter生成時にJavadocを付けてほしい

そんな機能はない

JavaDoc ってプラグイン入れてみたら?と言われました。
インストールすると、Alt+Insert にJavaDoc自動生成する項目が増えるぞ!

メンバ変数mHogeのgetterの自動生成がgetmHoge()になってしまう

Settings -> CodeStyle -> Java

Code Generation タブにある Naming グループのFieldName prefixに「m」を入力すると、アクセサメソッドを自動生成するときにprefixを除いてくれます。
必要に応じて、Static fieldに「s」とか入れとくといいかもしれないです。

プロジェクト構成

New Projectしたんだけど、俺の知ってるプロジェクト構成じゃなくて死ぬ…

Android Studioはgradleのマルチプロジェクト構成になってます。なので、Eclipseのときとはディレクトリ構造が違います。

tree
SampleProjectbuild.gradle
    │
    ├─app
    │  │  build.gradle
    │  │  
    │  ├─libs
    │  └─src
    │      ├─androidTest
    │      │  └─java
    │      │
    │      └─main
    │          │  AndroidManifest.xml
    │          │  
    │          ├─java
    │          └─res
    │
    ├─build
    └─gradle

Eclipseで言うと、プロジェクトはappディレクトリにあたります。ただ、なんかAndroidManifest.xmlとかresとかの位置が違いますね。これは、build flavorsの影響でこのような構成になっています。(たぶん

ASはプロジェクトのソースディレクトリをbuild.gradleの記述を元に表現しています。
なので、ワシはこんなディレクトリ構造でやりとうない…という方はapp/build.gradleを書き換えるといいでしょう。

build.gradle
// …

android {
    // …

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src/main/java']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}

プロジェクト構成を変えたい場合は、android.sourceSetsを定義します。
上のsourceSetsには、manifestjavaresassets のファイル(ディレクトリ)が定義されています。逆に言うと、 build.gradleを見ればプロジェクトの構成がわかります。

これを適用させると、プロジェクトは以下の構成に切り替わります。

tree
SampleProjectbuild.gradle
    │
    ├─app
    │  │  AndroidManifest.xml  ←
    │  │  build.gradle
    │  │  
    │  ├─assets  ←
    │  ├─libs
    │  ├─res     ←
    │  └─src
    │      ├─androidTest
    │      │  └─java
    │      │
    │      └─main
    │          └─java
    │
    ├─build
    └─gradle

ちなみに、AndroidManifest.xmlはあらかじめ自分で移動or生成しないとgradleが通らない ので注意してください。

チーム開発でこれをやる場合は、念のためメンバーと相談してからやりましょう。

ushi3_jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした