본문 바로가기

Programming/Android

(20)
2. 안드로이드 기본 구조의 이해 (6) - 기본 샘플 app 모듈 분석 [1/3] 우리가 안드로이드 스튜디오에서 기본적으로 프로젝트를 하나 생성하게 되면, 해당 프로젝트에 [app]이라는 기본 모듈이 하나 생성됩니다. 아시다시피 "Hello Wolrd"를 출력하는 기본 샘플인데요, 이 app 모듈(앱)을 구성하는 기본 파일 형식들에 대해서도 하나씩 기본 내용을 살펴보도록 하겠습니다. ○ AndroidManifest.xml 앞서 살펴본 gradle은 앱을 빌드할 때의 환경 설정에 가깝다고 생각하면 됩니다. 그런데 AndroidManifest.xml의 경우는 앱과 관련되는 직접적인 설정이 담겨있는 환경 파일이라고 생각하면 됩니다. 자세한 내용은 세부 사항을 살펴보면 이해가 되실 겁니다. 실제로 개발 진행 시 이 파일을 확인하거나 수정하는 일이 꽤나 빈번하니, 잘 알아두시기 바랍니다. pa..
2. 안드로이드 기본 구조의 이해 (5) - gradle(그레이들) [2/2] 앞선 아티클에서 우리는 프로젝트 레벨의 그레이들(gradle)을 살펴보았습니다. 그러나 우리가 실제로 직접 수정하거나 확인하게 되는 부분은 모듈 단위의 그레이들이 될 것입니다. 이제 실제 모듈 레벨의 그레이들을 실제로 살펴보면서, 내용들을 살펴보겠습니다. plugins { id 'com.android.application' } android { compileSdk 31 defaultConfig { applicationId "com.example.androidlab" minSdk 21 targetSdk 31 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes..
2. 안드로이드 기본 구조의 이해 (5) - gradle(그레이들) [1/2] 안드로이드 앱 개발을 완료하거나 빌드 테스트를 진행할 때, 이를 위해서는 앱의 리소스 / 자바 코드를 컴파일하는 동시에 준비한 키로 서명을 해서 배포용 파일을 추출하게 됩니다. 이 일련의 과정은 안드로이드 빌드 도구의 일종인 gradle(그레이들)을 통해서 진행하게 됩니다. 이 gradle과 관련된 설정은 [build.gradle]에서 진행할 수 있습니다. 이 gradle 파일은 안드로이드 스튜디오 프로젝트 파일들 중 Gradle Scripts 영역에서 확인이 가능합니다. 상단의 두 개의 파일을 보면 알 수 있듯이, build.gradle 파일을 프로젝트 레벨과 모듈(앱) 레벨이 각각 존재합니다. 프로젝트와 모듈 단위로 구분되는 안드로이드 개발 체계를 이해하고 있다면 크게 어렵지 않을 내용입니다. 그럼 ..
2. 안드로이드 기본 구조의 이해 (4) - 앱 디렉토리와 파일 이번 아티클에서는 안드로이드 스튜디오에서 앱을 개발하게 될 때, 개발자가 이해해야 하는 파일, 디렉터리 구조를 살펴보도록 하겠습니다. 우선 프로젝트에서 '모듈(앱)' 레벨의 작업이 시작되었을 때 주로 확인해야 하는 폴더는 아래와 같습니다. {n}:\{폴더명}\{프로젝트명}\{모듈명}\app\src\main 안드로이드 스튜디오를 실행했을 때를 기준으로 보면, 위 폴더에 있는 파일들 중 개발자와 직접 관련이 되는 리소스 파일들은 다음과 같이 확인이 가능합니다. 주요 파일들의 이름과 용도를 살펴보자면 다음과 같습니다. · AndroidManifest.xml : 앱의 메인 환경 파일. 여기서 정의한 대로 앱이 실행되며, 이를 분석하거나 수정하면서 개발을 진행 · java/MainActivity.java : 화면..
2. 안드로이드 기본 구조의 이해 (3) - 리소스 외부화, XML 안드로이드 개발 시 주요 특징 중 하나는, '리소스의 외부화'를 극대화한다는 점입니다. 리소스를 외부화하여, 모듈로서 사용하는 방식은 비단 안드로이드뿐만 아니라 다른 언어나 IDE 등에서 많이 사용되는 기본 원리이긴 합니다. 하지만 안드로이드에서 이러한 리소스 외부화를 강조하는 이유는 무엇일까요? 한번 차근차근 살펴보겠습니다. 일단 여기서 말하는 '외부화'가 진행되는 리소스는 정적인(static) 리소스 입니다. JAVA에서의 static과 혼동하지는 않기를 바랍니다. 여기서 말하는 정적인(static) 리소스는 누가 언제 실행하든 항상 같은 결과가 나오는 콘텐츠를 의미합니다. 대표적인 것이 바로 문자열(String)입니다. 예를 들어서 어떤 장문의 스트링 "안녕하세요, 회원가입을 하려면 .......을..
2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 3 이제까지 안드로이드의 '컴포넌트(component)에 대해서 기본적인 속성들을 살펴보았습니다. 이러한 컴포넌트에는 네 가지 종류가 존재합니다. 세부 사항은 계속 살펴볼 예정이므로, 간단하게 요약해 살펴보겠습니다. 1. Activity(액티비티) : UI 구성을 위한 컴포넌트 2. Service(서비스) : UI 없이 백그라운드에서 장시간 수행되는 컴포넌트 3. ContentProvider(콘텐츠 프로바이더) : 애플리케이션 간 데이터를 공유하기 위한 컴포넌트 4. BroadcastReceiver(브로드캐스트 리시버) : 이벤트 모델로 수행되는 컴포넌트 ○ Activity(액티비티) 가장 기본적으로 사용자 화면을 제공하는 컴포넌트 입니다. 화면을 구성하는 컴포넌트이므로, 자연스럽게 가장 많이 사용하는 컴포..
2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 2 앞서서 우리는 안드로이드드 구조 이해에 중요한 개념인 컴포넌트의 기본 원리를 살펴보았습니다. 이제 이 내용을 바탕으로, 안드로이 앱에서 찾아볼 수 있는 부가적인 특징들을 살펴보도록 하겠습니다. 2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 1 안드로이드의 큰 특징이자, 안드로이드 아키텍처 이해에 있어서 중요한 컴포넌트(component)에 대해서 살펴보도록 하겠습니다. 1. 컴포넌트는 앱의 구성단위이다 컴포넌트는 안드로이드 앱을 구성 nozeroslope.tistory.com ○ 애플리케이션 진입 지점(main 함수 등)이 따로 없다 어떤 앱이 실행되기 위해서 최초로 실행되는 코드 부분 - 즉 main 함수 같은 부분 - 이 컴포넌트의 경우 존재하지 않습니다. JAVA의 경우,..
2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 1 안드로이드의 큰 특징이자, 안드로이드 아키텍처 이해에 있어서 중요한 컴포넌트(component)에 대해서 살펴보도록 하겠습니다. 1. 컴포넌트는 앱의 구성단위이다 컴포넌트는 안드로이드 앱을 구성하는 구성 단위입니다. 안드로이드 앱은, 여러 개의 컴포넌트를 개발자가 작성하고 이를 조합하여 완성하게 되는 개념입니다. 그런데 '컴포넌트'라는 개념 자체가 가시적인 개념이 아니어서 이해가 안 될 수도 있습니다. 2. 컴포넌트의 물리적 단위는 클래스이다 눈치채신 분들도 있겠지만, (광의의 의미에서)컴포넌트는 클래스라는 물리적인 단위로 구분됩니다. 예를 들어, 어떤 하나의 앱이 A.class, B.class, C.class라는 세 개의 클래스로 구성되어 있다면 이 앱은 3개의 컴포넌트 클래스로 구성되어 있다고 말할 ..