본문 바로가기
안드로이드 스튜디오

안드로이드 스튜디오:AndroidManifest.xml, Java, Res 폴더 설명

by 질서정연_ 2020. 5. 30.

패키지 명으로 앱을 구분하기 때문에 패키지 명은 고유해야한다. 

androidmanifest는 앱의 지도역할을 한다. 

  • android:allowBackup="true" 앱을 지워도 일정 정보가 백업되어 남아있게 한다. 그래서 앱을 지웠다가 다시 깔아도 나의 정보가 남아 있을 수 있다. 
  • android:icon="@mipmap/ic_launcher" 애뮬레이터 실행 시 메뉴를 누르면 내가 만들지 않았는데도 내가 만든 앱의 아이콘이 생긴다. @태크는 위치를 의미하는데 그래서 res에 들어가면 mipmap이 있고 ic_launcher에 들어가면 앱 아이콘이 있다. 
  • android:label="@string/app_name" 앱의 이름을 뜻한다. 
  • android:roundIcon="@mipmap/ic_launcher_round" 안드로이드는 폰 마다 아이콘 모양이 다 다르다. 그래서 앱이 동그랄 때에는 이 이미지를 참조한다. 
  • android:supportsRtl="true" right to left란 뜻이다. 왼->오 방향으로 읽는 순서를 오->왼으로 바꾸어 나타내준다.
  • android:theme="@style/AppTheme" 앱의 기본값이다. 기본으로 사용하는 테마.
  • <activity android:name=".MainActivity">엑티비티는 안드로이드에서 화면이라고 생각하면 된다. 엑티비티가 하나 있으므로 화면이 하나 있다고 보면 되고 그 화면의 이름은 .MainActivity 이다. 
  • <intent-filter> activity안에 있으므로 activity의 속성이다. 그 속성안에 또 LAUNCHER라는 속성이 있다. 이 속성은 activity를 런쳐로 만들어 주는 속성이다. 런쳐는 앱을 켰을때 최초로 보이는 화면을 의미한다. 앱을 켜자마자 나오는 화면을 지정할 때 런쳐 액티비티를 지정해준다. 

Java세가지 하위 폴더가 있다. 개발할 때에는 ()가 없는 폴더를 쓴다. 

  • 테스트 코드를 작성할 때 아래 두 폴더를 쓴다 .
  • Java(generated)는 직접 작성해서는 안된다. 안드로이드 스튜디오가 자동으로 만들어 주는 코드들이다. 

Res는 resource의 줄임말이다. 앱을 개발하면서 필요한 리소스의 종류들이 하위폴더로 정리되어있다. 

  • 하위폴더 drawable에는 앱에서 사용하는 이미지들이 저장된다. 
  • layout에는 화면을 그릴때 사용되는 xml들이 저장되어있다. 
  • micmap에는 앱의 아이콘이 저장된다. 
  • values는 값들을 모아놓는다. 자주사용하는 값들을 저장할 수 있다. 거기에 또 하위폴더가 있다. colors는 색들을 저장한다. 색에 값 지정해서 그 값 입력하여 그 색을 사용하게 할 수도 있다. (어떤 경로에 있는 것을 사용할 때에는 @로 시작한다. c언어에서 &로 주소를 보내주는 것과 비슷한 맥락인가 보다) ex) @colors/지정한 이름 strings는 반복되거나 긴 문자열을 저장 한 후 불러서 사용할 수 있다. style 안에는 앱 테마가 있다.ex)<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> parent 뒤에걸 상속받아서 앱테마를 만들었다는 말이다. 

gradle scripts

  • 프로젝트와 모듈이 있다. 프로젝트가 모듈보다 더 큰 개념이다. 프로젝트에 앱이 여러개 일 수 있다. 그래서 프로젝트에 있는 내용은 프로젝트 안의 앱들에게 모두 적용되는 내용이다. 모듈.app은 특정 앱에만 적용되는 내용이 담겨있다. gradle이라는 언어도 있는데 이 언어로 만들어진다. build gradle(project,MyApplication)에 코틀린 버전과 ,레퍼지토리,디펜던시(의존성)(우리 프로젝트에 이런것들을 쓴다~라고 적혀있다. )이 담겨있다. 
  • 기본적인 안드로이드 스튜디오에서 제공하는 기능말고 다른걸 쓰고 싶을 때 라이브러리의 도움을 받는데, 라이브러리관리를 그레이들을 통해서 한다. 코틀린이나 xml로 코딩을 하는것을 사람이 알아볼 수 있는 언어이다. 그 파일을 기계어로 바꾸는게 gradle이다. 
  • build gradle(module,app)에는 apply plugin: 'kotlin-android-extensions' 가 있는데 라이브러리를 plugin으로 불러오는 방법도 있다. 디펜던시를 통해 우리 프로젝트로 들어오는 경우도 있다. 
  • android 폴더 compileSdkVersion 29. compile한다는 것이 기계어로 바꾼다는 뜻이다. 컴파일 할 때 sdkversion29기준으로 컴파일 하겠다. 라는 뜻이다. buildToolsVersion "29.0.3". build한다는 것은 컴파일은 최종단계.빌드는 작성한 것을 정리하는 것. 빌드할 때 주석같은 필요없는 부분을 지워버린다. 그래서 앱을 켤 때 빌드->컴파일->앱 작동 순으로 시작된다. applicationId "com.example.app".은 패키지 명이다.(고유해야하는 이름임) minSdkVersion 23.은 이 앱이 실행되려면 앱의 sdk버전이 최소한 23이 되어야한다는 의미이다. versionCode 1(숫자),versionName "1.0" (이름)앱 업데이트를 할 때 이것들이 사용된다. testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"로 내가 작성한 테스트 코드를 돌리겠다는 의미이다. buildTypes은 디버그 타입과 릴리즈 타입이 있는데 보통 릴리즈 타입으로 놓고 작성한다.
  • proguard라는 것은 작성한 코드안에 굉장히 중요한 정보(비밀번호 등)을 앱을 받은 사람이 알아볼 수 없도록 난독화 한다. 
  • settings는 나중에 앱을 하나 더 만들 때 수정할 수 있다.

 

댓글