質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

745閲覧

Android Studioの扱い方について

babbleman

総合スコア107

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2020/05/19 16:44

Android Studioのプロジェクトをインストールしたのですが、ファイル構造がいまいちわかりません。
main activity.ktの処理を主に変えていくということがわかったのですが、デフォルトの状態ではhello worldが表示される状態となっています。
このhello worldはどこで定義されているものなのでしょうか?

表示タイプをproject files や Androidなどに変えるとfileがみれなくなってしまいます。
ここでは何を指定するべきなのでしょうか?
またactivity_main.xmlはテキストで見れるとかいてありましたが、実際にはUIの編集の画面しか表示されません。テキストで直接編集したい場合はどうしたらよろしいでしょうか?

開発を進めていくにあたって主に編集するファイルはどれになるのでしょうか?
また、MVCモデルを構築することはできるでしょうか?
調べてもなかなかイメージができなかったので、教えてください
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Android Studioのプロジェクトをインストールしたのですが、ファイル構造がいまいちわかりません。
(略)
表示タイプをproject files や Androidなどに変えるとfileがみれなくなってしまいます。
ここでは何を指定するべきなのでしょうか?

Android Studio で表示モードを Android にするとこんな感じで表示されますが、
イメージ説明

実際のファイル構造はこんな感じです。

text

1. 2├── .gitignore 3├── .gradle 4├── .idea 5├── My\ Application.iml 6├── app 7│   ├── app.iml 8│   ├── build 9│   ├── build.gradle 10│   ├── libs 11│   ├── proguard-rules.pro 12│   └── src 13│   ├── androidTest 14│   │   └── java 15│   │   └── com 16│   │   └── example 17│   │   └── myapplication 18│   │   └── ExampleInstrumentedTest.java 19│   ├── main 20│   │   ├── AndroidManifest.xml 21│   │   ├── java 22│   │   │   └── com 23│   │   │   └── example 24│   │   │   └── myapplication 25│   │   │   └── MainActivity.kt 26│   │   └── res 27│   │   ├── drawable 28│   │   │   └── ic_launcher_background.xml 29│   │   ├── drawable-v24 30│   │   │   └── ic_launcher_foreground.xml 31│   │   ├── layout 32│   │   │   ├── activity_main.xml 33│   │   ├── mipmap-* 34│   │   │   ├── ic_launcher.xml 35│   │   │   └── ic_launcher_round.xml 36│   │   └── values 37│   │   ├── colors.xml 38│   │   ├── strings.xml 39│   │   └── styles.xml 40│   └── test 41│   └── java 42│   └── com 43│   └── example 44│   └── myapplication 45│   └── ExampleUnitTest.java 46├── build.gradle 47├── gradle 48│   └── wrapper 49│   ├── gradle-wrapper.jar 50│   └── gradle-wrapper.properties 51├── gradle.properties 52├── gradlew 53├── gradlew.bat 54├── local.properties 55└── settings.gradle

表示モードを Project Files にすると実際のファイル構造に一番近くなると思いますが、何がどこに表示されるかを把握したら、普段は Android モードで作業するのが一般的かと思います。


開発を進めていくにあたって主に編集するファイルはどれになるのでしょうか?

開発中によく編集するファイルは以下の通りです。まず、app に表示されるもの。

  • app/src/main/AndroidManifest.xml
    アプリ全体の設定 (パーミッションとか) や、Activity や Service の追加など。

  • app/src/main/java/.../*.java (または *.kt)
    Java/Kotlin ソースファイル

  • app/src/main/res/drawable/*.png (または *.jpg, *.xml など)
    画像ファイルや、drawable (XML で記述するもの)

  • app/src/main/res/layout/*.xml
    画面レイアウト

  • app/src/main/res/values/*.xml
    その他のリソース、特に文字列 strings.xml はよくいじります。

Gradle Scripts に表示されるもの。

  • build.gradle (build.gradle (Project: プロジェクト名) と表示されます)
    たまに gradle や kotlin のバージョンをいじります。

  • app/build.gradle (build.gradle (Mofue: app) と表示されます)
    ビルドの設定や、ライブラリの追加・バージョン更新など。


またactivity_main.xmlはテキストで見れるとかいてありましたが、実際にはUIの編集の画面しか表示されません。テキストで直接編集したい場合はどうしたらよろしいでしょうか?

Android Studio 3.6 では layout XML の表示切り替えボタンはウィンドウの右上に移動しました。
イメージ説明

main activity.ktの処理を主に変えていくということがわかったのですが、デフォルトの状態ではhello worldが表示される状態となっています。
このhello worldはどこで定義されているものなのでしょうか?

activity_main.xml に書いてあります。

xml

1 <TextView 2 android:text="Hello World!" 3 ... />

または、strings.xml を参照する形で書いてある場合もあります。

activity_main.xml

xml

1 <TextView 2 android:text="@string/hello_world" 3 ... />

strings.xml

xml

1<resources> 2 <string name="app_name">My Application</string> 3 <string name="hello_world">Hello World!</string> 4</resources>

また、MVCモデルを構築することはできるでしょうか?

Android で MVC 的なことをやろうと思ったら、layout XML に View を記述し、Activity (や Fragment) を Controller として扱い、Model を別途作ることになると思います。
(最近は MVC を発展させた MVVM というのが一般的になりつつありますが。)

投稿2020/05/19 18:05

編集2020/05/20 03:43
hoshi-takanori

総合スコア7901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

babbleman

2020/05/20 03:22

とてもわかりやすい回答をありがとうございます! ただ自分の環境ですと表示をAndroidにすると android test main test 直下でこのようなファイル構造になってしまっております。 APPファイルが表示されておりません。mainの中にjavaが入っておりますが、 resが標示されません。これらは再インストールしたほうがよろしいでしょうか? また、String.xmlのリソースとは何を意味するものなのでしょうか? 知識がないのですが、パッと見る感じですと同じnameという変数を宣言しているように見えます。 実際にはこのリソースをどのように使う形となるのでしょうか?Kotlinファイル上で随時文字列を取り扱う、というようなことではいけないのでしょうか?
babbleman

2020/05/20 03:59

すみません、追加の質問をさせてください。 Android Studioでファイルを変更した際にはBuildをしないといけない感じになるのでしょうか? 試しにactivity_main.xmlのhello worldをこんにちは worldに書き換えました。 そしてbuildをすると Error:Module 'main' production: java.lang.NoClassDefFoundError: com/android/resources/ResourceFolderType このように言われました。また、以下の手順で実行したところやはり表示はhello worldのままでした。 Tools → AVD Manager →API28のところにある再生ボタンを押す 認識に違いがありましたら教えていただけると幸いです。
hoshi-takanori

2020/05/20 04:02 編集

app/src の下には main, androidTest, test の 3 つのディレクトリがあり、特に main が重要という意味で、アルファベット順に並べるとそうなりますね。 app/src/main の下には AndroidManifest.xml ファイルと、java, res ディレクトリがあるはずですが、「resが標示されない」とはどの表示モードでしょうか? Finder や File Explorer などで確認して、実際のディレクトリ構造上に存在しないのであれば、プロジェクトを作り直した方がいいかも知れません。 リソースというのはアプリの表示内容などをソースコードとは切り離して管理するための仕組みで、言語や画面の向きやサイズなどに応じて切り替えることができるようになっています。 https://developer.android.com/guide/topics/resources/providing-resources?hl=ja 例えば文字列を strings.xml というファイルにまとめておくことで、ソースコード中に "Hello World!" などの文字列を書く必要がなくなり、プログラマーと画面デザイナーやメッセージの文章を考える人の作業分担がやりやすくなります。また、values に加えて言語ごとに日本語は values-ja などのフォルダを作ることができて、values-ja/strings.xml に <string name="hello_world">こんにちは、世界!</string> と書くことでローカライズがしやすくなったりします。
hoshi-takanori

2020/05/20 04:15

追加の質問ですが、AVD Manager の再生ボタンはエミュレータの起動ボタンで、アプリの実行は Run メニューの Run 'app' またはウィンドウ内のツールバーの緑の三角形 (一度実行すると形が変わったりしますが、機能は一緒です。) のボタンで行います。 エラーについては、書き換えた内容によりますね。というか、activity_main.xml ファイルも res の下にあるので、res ディレクトリは存在しているものと思われます。
babbleman

2020/05/20 04:28

やはり、runを実行したのですが、そのあとエミュレータを起動しなおしてみてもhello worldの表示がかわらないままとなっています。 エミュレーターの内部情報が書き換えられていないのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問