[Android] Android Studio 프로젝트 구조

Minji Jeong·2022년 4월 26일
1

Android

목록 보기
5/39
post-thumbnail

😒 Android mode? Project mode?

평소 나는 안드로이드 프로젝트 구조에 대해 별 다른 의심을 하지 않고 바로바로 개발하기 바빴는데, 최근 인프런 강의에서 Clean Architecture에 대해 배우면서 프로젝트 구조에 대해 어느정도 개념을 잡아놔야 한다는 생각을 했고(꼭 그렇지 않더라도 이건 기본이지 않은가?! :P), 그에 따라서 공부하게 되었다.

먼저, 안드로이드 프로젝트 구조는 기본적으로 다음 두 가지 모드를 제공한다. 나는 모듈별 스크립트 파일을 한 번에 볼 수 있는 안드로이드 모드를 선호하는 편이다. 일단 두 가지 모드에 대해 알아보고, 프로젝트 하위에 있는 각종 파일들에 대해 확인해보자.

🟢 Android mode


모듈 및 파일 형식별로 프로젝트 파일/폴더를 분류해서 프로젝트에서 수정하지 않는 파일/폴더를 제외하고 보여주는 모드이다. 프로젝트의 모든 빌드 관련 구성 파일을 app과 같은 계층인 최상위 계층의 Gradle Script 그룹에 표시한다.

🔵 Project mode

안드로이드 모드와는 달리, 실제 프로젝트의 계층 구조를 반영하여 전체 프로젝트와 모듈별로 파일/폴더를 나누어서 보여준다. 따라서 안드로이드에서 보여주지 않는 외부 라이브러리 같은 프로젝트의 파일/폴더까지 모두 확인이 가능하다.

앞서 나는 안드로이드 모드를 더 선호하는 편이니, 안드로이드 모드 기준으로 app 모듈 하위에 있는 각종 폴더 및 파일들에 대해 기술해보겠다.

1. manifest
AndroidManifest.xml을 포함하며, 메니페스트 파일에는 안드로이드 시스템이 앱을 실행하기 위해 필요한 정보들이 정의되어있다.
2. java
jUnit 테스트 코드를 비롯한 자바 소스 코드 파일을 포함하는 그룹이다.
3. res
코드가 아닌 모든 리소스(XML, UI 문자열, 비트맵 이미지 등)을 포함하는 그룹이다.

Gradle Scripts

1. build.gradle(Project)
모든 모듈에 적용되는 빌드 구성을 정의한다.

2. build.gradle(Module)
각 모듈마다의 빌드 구성을 정의하는 파일로, 각 모듈마다 하나씩 존재한다.

3. gradle-wrapper.properties(Gradle Version)
GRADLE_USER_HOME에 찾는 gradle이 있는지 확인하며, 만약 존재한다면 해당 gradle을 사용하고, 존재하지 않는다면 wrapper는 해당 파일을 다운받는다.


4. proguard-rules.pro
코드 난독화 도구를 설정한다.

5. gradle.properties
프로젝트 범위의 Gradle 설정을 구성할 수 있다.(ex Gradle 데몬의 최대 힙 크기 지정 가능)

6. settings.gradle
프로젝트에 포함된 모듈을 등록/관리한다

7. local.properties(SDK Location)
안드로이드 SDK 경로를 관리한다.

References

https://velog.io/@sery270/Android-Studio-Android-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EA%B5%AC%EC%A1%B0
https://darkstart.tistory.com/203
https://developer.android.com/studio/build?hl=ko
https://curryyou.tistory.com/368

profile
Mobile Software Engineer

0개의 댓글