안녕하세요! 🙋‍♂️🙋‍♂️

이번 글은 Android Studio

처음 접하시는 분들을 위하여 작성해볼까 합니다.

(제가 처음 Android Studio를 처음 열었을 때가 아직도 생생하게 기억나네요 엣 헴..🙃)

 

Android Studio에 대한 기능은 너무 많아서

제가 a부터 z까지 모든 기능에 대하여 알려드리지는 못할 것 같습니다.

(저도 아직 많이 부족합니다 ㅠㅠ)

하지만 제가 처음 Android Studio를 접했을때 막막했던 기억을 떠올리며

정말 아무것도 모르고 처음 접하시는 분들을 위해서

꼭 필요한 정보들을 소개해보려고 합니다.

 

 

 

 

 

✔️ Android Studio Download
✔️ Auto Import / 코드 자동 정렬 

✔️ Project Run(실행), debug(디버그) 하는 방법
✔️ Logcat

✔️ AndroidManifest는 무슨 역할을 하는가
✔️ build.gradle(Project) / build.gradle(Moudle)

 

 


 

AndroidStudio Download

 

우선 가장 중요한 Android Studio를 설치해야 합니다.

설치는 developer 사이트에 들어가서 설치하면 됩니다.

설치 방법은 간단하니 생략하고 넘어가겠습니다.

 

 

Download Android Studio & App Tools - Android Developers

Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today.

developer.android.com

 

 


 

Auto Import / 코드 자동 정렬

 

자 이제 첫 시작을 해보겠습니다.

떨리는 순간이죠!

 

 

우선 간단하게 로그하나를 찍고 실행시켜보겠습니다.

 

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        Log.d("TestLog", "MainActivity onCreate")
    }
}

 

위와 같이 입력하고 나면

처음부터 시뻘건 에러를 만나게 됩니다.

 

 

지금 상황은 Log라는 로그 클래스가 import 되지 않았기 때문에

Log가 어떤 동작을 하는 클래스 인지 알려줘야 합니다.

이때 window는 Alt + Enter / Mac은 option + Enter을 눌러

Auto Import 액션으로 android.util.Log를 import 합니다.

 

import android.util.Log

 

 

코드 자동정렬 기능은

정렬할 코드를 모두 선택 후

window는 Ctrl + Alert + L / Mac은 option + command + L을 통하여

자동 정렬 가능합니다.

 

(왼쪽 이미지) 자동 정렬 전 , (오른쪽 이미지) 자동 정렬 후 

 

 


 

 

Project Run(실행), debug(디버그) 하는 방법

 

 

Android Studio 우측 상단

 

작성한 소스코드를 확인해 보려면 해당 프로젝트를 실행시켜야 합니다.

여기서 실행의 방법이 두 가지가 있습니다.

Run(실행) 방법과

Debug(디버그) 방법

두 가지의 차이는 Debug(디버그) 모드 일 때는 브레이크 포인트와 같은

디버그 툴 사용이 가능한 점이고

Run(실행) 모드에서는 일반 앱 사용과 같이 실행됩니다.

 

 

Debug에 대한 더 자세한 내용 참고

 

[Android] Android Debug Mode 잘 활용하기 (안드로이드 스튜디오 디버깅)

안드로이드 스튜디오 디버깅 어떻게 사용하고 계신가요?? 🧑‍💻🧑‍💻 via GIPHY 혹시 디버깅 모드 🔴 'Break Point'(중단점) 생각하고 계신가요?? (저도 디버깅 모드 사용하면 브레이크 포인트만

salmonpack.tistory.com

 

sync gradle file 

위와 같은 코끼리 모양의 아이콘이 보이시나요?

(코끼리를 보니 필라이트가 생각나네요 개인적으로 저는 맥주 필라이트를 좋아합니다 ^^ 🐘)

sync gradle file은 프로젝트에 적용된

외부 라이브러리 파일을 갱신시켜주는 기능을 합니다.

 

 

build Project

 

안드로이드 스튜디오 상단 툴에 보시면 'Build' > 'Rebuild Project' / 'Clean Project'

확인하실 수 있습니다.

앞으로 안드로이드 스튜디오 작업을 하시면서 자주 찾게 되실 겁니다.

'Clean Project'는 해당 프로젝트를 한번 새로고침 해주신다고 생각하시면 됩니다.

'Rebuild Project'는 작업된 프로젝트 파일을 build 시킵니다.

 

여기서 build 시킨다는 의미는 작업된 소스 코드를 바탕으로 

내부적으로 세팅값과 필요한 객체와 로직들을 모두 실행시켜 

앱이 모바일에 실행 직전까지를 의미한다고 생각해도 될 것 같습니다.

 

위에서 보셨던 Run(실행)을 할 때

기본적으로 build > 앱 리소스를 모바일에 저장 > 앱 실행

과정이라고 보시면 됩니다.

 

 

안드로이드 스튜디오 툴이 생각보다 무겁고 자잘한 버그들이 존재하기 때문에

어제까지 정상적으로 작동하던 소스코드가 오늘 build 진행하면 에러가 나는 경우가 있습니다.

이때는 위에서 봤던 sync gradle file / clean project / rebuild project 기능을 실행시켜주시면

대부분 해결되는 경우가 종종 있습니다.

(처음 앱 개발을 시작할 때 위와 같은 상황 때문에 하루 종일 삽질한 기억이... 아직도...)

 

 

 

 


 

 

AndroidManifest.xml

 

프로젝트를 생성하면 저희를 가장 먼저 반겨주는 파일이

'AndroidManifest'와 'MainActivity' 파일입니다.

딱 봐도 'MainActivity'는 앱의 메인 화면인 것 같고요

'AndroidManifest'는 어떤 파일일까요?

 

AndrodManifest.xml

 

모든 앱 프로젝트 루트 디렉터리에 'AndroidManifest.xml' 파일이 존재해야 합니다.

'AndroidManifest.xml' 파일은 여러 가지 기능을 하지만

주요 기능을 살펴보겠습니다.

 

 

✔️ 앱의 패키지 이름

  • Android 빌드 도구는 프로젝트를 빌드할 때 패키지 이름으로 코드 엔터티의 위치를 확인합니다.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="kiu.dev.my_calculator"> // package=프로젝트 패키지 네임 정의

 

안드로이드 패키지명 변경 

 

[Android] 패키지명 변경 (AndroidStudio PackageName)

테스트로 작업하던 프로젝트를 그대로 가지고 새로운 프로젝트를 구상한다던가 기존 프로젝트를 가지고 리펙토링을 진행할 때 또는... (아무튼 언젠가 작업을 하다 보면...) via GIPHY Android Studio에

salmonpack.tistory.com

 

✔️ 앱의 구성 요소 등록

  • Activity, Services, Broadcast Receiver, 콘텐츠 제공자 등 구성 요소가 어떻게 시작되는지 설명하는 인텐트 필터와 같은 기능을 선언 가능
<!-- 메인 엑티비티 -->
<activity
    android:name=".MainActivity"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

<!-- FCM Push 서비스 등록 -->
<service android:name=".service.FirebaseMessagingService"
    android:exported="true">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT"/>
    </intent-filter>
</service>

<!-- Kakao SDK AppKey 등록 -->
<meta-data
    android:name="com.kakao.sdk.Appkey"
    android:value="@string/kakao_app_key"/>

 

App DeepLink 관련 정의도

AndroidManifest에서 등록합니다.

 

 

Android Deep Link 설정 및 adb 테스트 방법

🌈🌈 상상을 해봅시다. via GIPHY 배민이나 쿠팡에서 원하는 뭔가를 구매하려고 합니다. 💸💸 원하는 상품을 신중하게 선택하고 결제를 진행해야겠죠! 결제를 할 때 대부분 어떻게 진행되나요?

salmonpack.tistory.com

 

 

✔️ 앱 권한

  • 앱이 시스템 또는 다른 앱의 보호된 부분에 액세스 하기 위해 필요한 권한 정의
<manifest ... >
	<uses-permission android:name="android.permission.INTERNET"/>
	<uses-permission android:name="android.permission.CAMERA"/>
    ...
<manifest/>

 

✔️ 기기 호환성

  • GooglePlay에서 설치할 수 있는 기기의 종류 선언

예를 들면 나침판 센서 태그를 추가하여

앱 타깃 조건을 추가할 수 있습니다.

<manifest ... >
    <uses-feature android:name="android.hardware.sensor.compass"
                  android:required="true" />
    ...
</manifest>

 

 


 

build.gradle

 

 

그다음으로 처음 접하면 조금 당황스러운 build.gradle 입니다.

왜 같은 이름의 파일이 두 개 연속으로 존재하는 걸까?

처음에는 이해하지 못하고 그저 외부 라이브러리를 등록하기 위하여 접근했었습니다.

 

 

build.gradle

 

 

 

빌드 구성  |  Android 개발자  |  Android Developers

Android 빌드 시스템은 앱 리소스 및 소스 코드를 컴파일하고 개발자가 테스트, 구축, 서명 및 배포할 수 있는 APK로 패키징합니다.

developer.android.com

 

build gradle

작성한 소스 코드와 의존성 라이브러리들을 묶어서 APK 또는 Andriod App Bundle 등 배포 가능한 형태로 패키징 해주는 빌드 배포 도구(Build ToolKit)입니다.

Gradle은 안드로이드 스튜디오와 독립적으로 실행됩니다.

안드로이드 스튜디오에는 별도의 빌드 배포 기능을 지원하지 않기 때문에 Gradle를 채택하고 있습니다.

 

 

그런데 왜 build gradle은 같은 이름의 두 개의 파일이 존재할까요?

자세히 살펴보시면 (Project: ...) , (Module: ...) 

 

✔️ build.gradle(project)

프로젝트 모든 모듈에 적용되는 빌드 구성을 정의합니다.

 

✔️ build.gradle(module)

build.gradle(module) 파일이 위치해 있는 특정 모듈의 빌드 구성을 정의합니다.

 

 

많이 혼란스러우시죠??

😵‍💫😵‍💫😵‍💫

 

여기서 앞으로 자주 사용해야 할 부분은 build.gradle(module) 부분입니다.

외부 라이브러리 삽입을 할 부분이죠.

외부 라이브러리는 bulid.gradle라고 간단하게 봐주시면 될 것 같습니다.

 

예를 들어보죠

Android 앱 개발에서 가장 많이 사용되는

'Retrofit'!!

(Android에서 REST API 통신을 도와주는 라이브러리 입니다!)

 

Retrofit2 라이브러리 적용 방법

 

 

Retrofit 공식 홈페이지에서 해당 라이브러리 적용 방법을 알려주고 있습니다.

그렇다면 적용해볼까요?

 

 

build.gradle(Moudle: ...)

...

dependencies {

    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.5.1'
    implementation 'com.google.android.material:material:1.7.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.4'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0'

    // retrofit2
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
}

 

build.gradle&nbsp; Sync Now

 

build.gradledependencies 부분을 수정하니 위와 같이 Android Studio에서 

Gradle file을 수정한다면 반드시 sync가 필요하다고 합니다.

필요하다고 하니 저희는 'Sync Now' 버튼만 클릭해주면

해당 라이브러리 경로를 찾아가 필요한 정보를 로드시켜 준비를 해줍니다.

 

 

 

여기까지 간단하게 Android Studio 처음 시작할 때

필요한 정보와 기능들에 대해 알아봤습니다.  💁‍♂️💁‍♂️

 

 

 

 


여기까지 저의 긴 글을 읽어주셔서 감사합니다.

제가 습관적으로 코딩을 하는 그날까지 습관적으로 코딩을 하기 위해 글 작성을 꾸준하게 해보겠습니다.

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기