Android Studio
기본 정보
- 명칭: Android Studio
- 개발사: Google
- 분류: 통합 개발 환경 IDE
- 주요 용도: Android 앱 개발
- 지원 언어: Kotlin, Java, C++
- 빌드 도구: Gradle
- 관련 기술: Android, Kotlin, Java, Gradle, Jetpack Compose
개요
Android Studio는 Google에서 제공하는 Android 공식 개발 도구이다.
Android 앱을 만들고, 실행하고, 디버깅하고, 빌드하고, Google Play에 배포하기 위한 기능을 제공한다.
Android 앱 개발을 하려면 대부분 Android Studio를 기준으로 작업하게 되며, Kotlin, Java, XML Layout, Jetpack Compose, Gradle 등을 함께 사용한다.
Android Studio 구조
개발자
↓
Android Studio
↓
Kotlin / Java 코드 작성
↓
Gradle 빌드
↓
Android Emulator 또는 실제 기기 실행
↓
APK / AAB 생성
주요 역할
- Android 프로젝트 생성
- Kotlin / Java 코드 작성
- UI 화면 구성
- 앱 실행 및 디버깅
- 에뮬레이터 실행
- Gradle 빌드 관리
- APK / AAB 생성
- Google Play 배포 준비
- 성능 분석
- 로그 확인
Android Studio 화면 구성
Android Studio
├── Project
├── Editor
├── Logcat
├── Terminal
├── Run
├── Debug
├── Gradle
└── Device Manager
주요 구성 요소
Project 창
프로젝트의 파일 구조를 확인하는 영역이다.
주요 폴더:
appsrcmainjavaresdrawablelayoutmipmapvalues
Editor
Kotlin, Java, XML, Gradle 파일을 작성하는 영역이다.
fun main() {
println("Hello Android Studio")
}
Logcat
앱 실행 중 발생하는 로그를 확인하는 도구이다.
앱 실행
↓
Logcat 출력
↓
오류 확인
↓
문제 수정
Kotlin 로그 예시:
Log.d("MainActivity", "앱이 실행되었습니다.")
Device Manager
Android 에뮬레이터를 만들고 실행하는 도구이다.
Device Manager
↓
Create Device
↓
Pixel 선택
↓
Android System Image 선택
↓
Emulator 실행
Terminal
Android Studio 안에서 명령어를 실행할 수 있는 터미널이다.
./gradlew build
Windows에서는 다음처럼 실행할 수 있다.
gradlew build
Android 프로젝트 구조
MyApp/
├── app/
│ ├── build.gradle
│ └── src/
│ └── main/
│ ├── AndroidManifest.xml
│ ├── java/
│ └── res/
│ ├── drawable/
│ ├── layout/
│ ├── mipmap/
│ └── values/
│
├── build.gradle
├── settings.gradle
└── gradle/
주요 파일 설명
| 파일 | 설명 |
|---|---|
AndroidManifest.xml | 앱 권한, Activity, Service 설정 |
MainActivity.kt | 앱의 기본 실행 화면 |
build.gradle | 빌드 설정 |
settings.gradle | 프로젝트 모듈 설정 |
res/layout | XML 화면 파일 |
res/drawable | 이미지 리소스 |
res/values | 문자열, 색상, 스타일 설정 |
AndroidManifest.xml
Android 앱의 핵심 설정 파일이다.
앱 이름, 권한, Activity, Service 등을 등록한다.
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:theme="@style/Theme.MyApp"
android:label="MyApp">
<activity android:name=".MainActivity" />
</application>
</manifest>
MainActivity
Android 앱에서 기본 화면 역할을 하는 클래스이다.
Kotlin 예시:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
}
Jetpack Compose 예시:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text("Hello Android")
}
}
}
Gradle
Gradle은 Android 프로젝트의 빌드 도구이다.
라이브러리 설치, SDK 버전 설정, 앱 버전 설정, 빌드 타입 설정 등을 담당한다.
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
android {
namespace 'com.example.myapp'
compileSdk 35
defaultConfig {
applicationId 'com.example.myapp'
minSdk 23
targetSdk 35
versionCode 1
versionName '1.0'
}
}
Kotlin
Kotlin은 Android 공식 권장 개발 언어이다.
val appName = "MyApp"
fun showMessage() {
println("Hello Kotlin")
}
Java
기존 Android 프로젝트에서는 Java도 많이 사용된다.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
UI 개발 방식
Android Studio에서 UI를 만드는 방식은 크게 두 가지이다.
| 방식 | 설명 |
|---|---|
| XML Layout | XML 파일로 화면 구성 |
| Jetpack Compose | Kotlin 코드로 선언형 UI 구성 |
XML Layout 예시
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello Android" />
Jetpack Compose 예시
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name")
}
XML Layout과 Jetpack Compose 비교
| XML Layout | Jetpack Compose |
|---|---|
| 기존 방식 | 최신 선언형 UI |
| XML 파일 사용 | Kotlin 코드 사용 |
| 오래된 프로젝트에서 많이 사용 | 신규 프로젝트에서 많이 사용 |
| 구조가 분리됨 | UI와 상태 관리가 직관적 |
| 유지보수 시 파일이 많아질 수 있음 | 코드 중심으로 관리 가능 |
앱 실행 과정
코드 작성
↓
Run 클릭
↓
Gradle 빌드
↓
에뮬레이터 또는 실제 기기 설치
↓
앱 실행
디버깅 과정
오류 발생
↓
Logcat 확인
↓
Breakpoint 설정
↓
Debug 실행
↓
변수 상태 확인
↓
코드 수정
에뮬레이터
Android Emulator는 PC에서 Android 기기를 가상으로 실행하는 기능이다.
활용 예시:
- 앱 실행 테스트
- 화면 크기 테스트
- Android 버전별 테스트
- 위치 정보 테스트
- 네트워크 상태 테스트
실제 기기 테스트
실제 Android 스마트폰에서 앱을 테스트할 수 있다.
기본 흐름:
스마트폰 개발자 옵션 활성화
↓
USB 디버깅 활성화
↓
PC와 USB 연결
↓
Android Studio에서 기기 선택
↓
앱 실행
APK와 AAB
| 형식 | 설명 |
|---|---|
| APK | Android 앱 설치 파일 |
| AAB | Google Play 배포용 앱 번들 |
| Debug APK | 개발 테스트용 |
| Release APK | 실제 배포용 |
Google Play 배포에는 일반적으로 AAB를 사용한다.
빌드 과정
Kotlin / Java 코드
↓
Resource
↓
Gradle
↓
Compile
↓
Package
↓
APK 또는 AAB 생성
자주 사용하는 Gradle 명령어
./gradlew clean
./gradlew build
./gradlew assembleDebug
./gradlew assembleRelease
Android Studio와 VSCode 비교
| Android Studio | VSCode |
|---|---|
| Android 공식 IDE | 범용 코드 에디터 |
| 에뮬레이터 통합 | 확장 설치 필요 |
| Gradle 통합 | 수동 설정 필요 |
| UI 미리보기 지원 | 제한적 |
| 무거운 편 | 가벼운 편 |
| Android 앱 개발에 최적화 | 다양한 언어 작업에 적합 |
Android Studio와 Xcode 비교
| Android Studio | Xcode |
|---|---|
| Android 앱 개발 | iOS 앱 개발 |
| Google 제공 | Apple 제공 |
| Kotlin, Java 사용 | Swift, Objective-C 사용 |
| Gradle 빌드 | Xcode Build System |
| Emulator 사용 | Simulator 사용 |
| Google Play 배포 | App Store 배포 |
대표 활용 분야
- Android 앱 개발
- Android 게임 개발
- WebView 앱 개발
- Kotlin 학습
- Java Android 유지보수
- Jetpack Compose 앱 개발
- Firebase 연동 앱
- Google Play 배포
- 사내 업무용 앱 제작
- IoT 제어 앱 개발
장점
- Android 공식 개발 도구
- 에뮬레이터 내장
- Kotlin 지원 우수
- Gradle 빌드 통합
- UI 미리보기 지원
- 디버깅 기능 제공
- Logcat으로 오류 확인 가능
- Google Play 배포 준비 가능
단점
- 프로그램이 무거운 편
- 초기 설정이 복잡할 수 있음
- Gradle 오류가 자주 발생할 수 있음
- 에뮬레이터가 느릴 수 있음
- SDK와 버전 관리가 필요함
- 초보자는 프로젝트 구조가 어렵게 느껴질 수 있음
자주 발생하는 문제
| 문제 | 원인 |
|---|---|
| Gradle Sync Failed | Gradle 설정 오류, 네트워크 문제 |
| Emulator 실행 안 됨 | 가상화 설정 문제 |
| SDK not found | Android SDK 경로 문제 |
| Manifest merger failed | Manifest 설정 충돌 |
| 앱 설치 실패 | 패키지명, 서명, 기기 호환성 문제 |
| Build failed | 의존성 또는 코드 오류 |
실무 메모
- 신규 Android 개발은 Kotlin을 기준으로 학습하는 것이 좋다.
- 기존 프로젝트 유지보수에서는 Java와 XML Layout도 알아야 한다.
- Gradle 오류는 메시지를 자세히 읽는 것이 중요하다.
- 에뮬레이터보다 실제 기기 테스트가 더 정확하다.
- 앱 배포 전 Release 빌드와 서명 설정을 확인해야 한다.
- AndroidManifest.xml 권한 설정을 반드시 점검한다.
- Logcat을 자주 확인하면 오류 추적이 쉬워진다.
- 이미지 리소스는 해상도별 관리가 필요하다.
- 네트워크 기능은
INTERNET권한을 확인해야 한다. - WebView 앱은 JavaScript, 파일 업로드, 뒤로가기 처리를 별도로 구현해야 한다.
- Google Play 배포 시 개인정보 처리방침과 권한 사용 목적을 준비해야 한다.
- 프로젝트를 시작하기 전에 최소 SDK와 대상 SDK를 정해야 한다.
학습 순서
Android 기본 개념
↓
Android Studio 설치
↓
Kotlin 기초
↓
Activity
↓
Layout 또는 Compose
↓
Intent
↓
Permission
↓
Network
↓
Local DB
↓
APK / AAB 빌드
↓
Google Play 배포
Android Studio와 함께 사용하는 기술
대표 활용 사례
- 모바일 앱 개발
- Android 게임 개발
- 쇼핑몰 앱 제작
- WebView 기반 하이브리드 앱
- Firebase 로그인 앱
- 위치 기반 앱
- 푸시 알림 앱
- 사내 업무용 앱
- IoT 제어 앱
- Google Play 출시 앱
관련 문서
출처
- Android Studio 공식 문서
- Android Developers
- Kotlin 공식 문서