⛄ 안드로이드 스튜디오 구조
App
1. Manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.pytorch.helloworld">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</manifest>
AndroidManifest.xml -> app을 구동하는데 필요한 설정값
📌 package
- 앱의 식별자인 패키지 정보 등록
- manifest태그의 package 속성
- 패키지 이름은 다양한 곳에서 사용
- 코드의 네임스페이스
코드가 있는 위치를 말하며 코드의 네임스페이스와 일치하고, 일치해야한다.
- 구성요소 위치 확인
매니페스트에 선언된 안ㄷ로이드 구성요소의 위치를 확인할 때, 패키지 이름에 해당하는 경로를 기본 경로로 사용
- 코드의 네임스페이스
📌 application
<activity/service/provider/recevier>
<intent-filter>
<action>
<category>
<data>
- 애플리케이션의 각 구성요소 선언, 모든 구성요소에 영향을 줄 수 있는 속성을 가진 하위요소를 포함
- 'application'위에 'activity'가 실행되는 구조
- activity를 만들때마다 매니페스트 파일에 activity 태그가 추가 됨
- manifest > application > application
2. java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
- 앱이 작동하는 방식에 대해 정의하는 java 파일
- setContentView(R.layout.activity_main)
-> 원하는 파일을 AMD로 나타냄
3.res
- drawable : 이미지 저장
- mipmap : 아이콘 파일 저장
- layout : xml파일 저장
- values : 앱의 테마나 자주 사용하는 컬러코드 문자열 저장
4. Gradle
- 빌드 및 라이브 관련 설정 관리
- 개발하며 건드릴 일이 거의 없음
- Gradle 폴더는 Project, Module로 나뉜다
-
Project : 여러 프로젝트를 모아놓은 큰 범위
-
Module : 여러 프로젝트들 중에서 개별 프로젝트의 단위
-
📌 build.gradle(Project:My Application)
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:4.2.2"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
mavenCentral()
jcenter() // Warning: this repository is going to shut down soon
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
1) buildscript
- respositories : 빌드할 때 도움을 받게될 저장소 표시(라이브러리 같은 개념)
- dependencies : 이 애플리케이션이 작동하기 위해 필요한 라이브러리들을 적는 곳
2) allprojects
- respositories : 위의 buildscript > repositories와 동일한 외부저장소 설정
3) task
- 프로젝트 전체적으로 공통으로 사용할 작업 정의
- clean(type:Delete) : 기본으로 추가, 빌드시 생성되는 디렉토리들을 삭제
- clean(type:Delete) : 기본으로 추가, 빌드시 생성되는 디렉토리들을 삭제
📌 build.gradle(Module:My Application)
plugins {
id 'com.android.application'
}
android {
compileSdkVersion 31
buildToolsVersion "31.0.0"
defaultConfig {
applicationId "com.example.myapplication"
minSdkVersion 16
targetSdkVersion 31
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
- 모듈 수준의 그레이들 설정 파일, 각 모듈마다 생성
1) plugin
- 안드로이드 개발을 위한 플러그인 설정
2) android
- compileSdkVersion : 컴파일 SDK버전 설정
- BuildToolVersion : 앱빌드시 기준이 되는 버전
- defaultConfig : 각종 버전 정보 설정
Author And Source
이 문제에 관하여(⛄ 안드로이드 스튜디오 구조), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@leevi/안드로이드-스튜디오-구조저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)