[์ƒˆ์‹น ์•ˆ๋“œ๋กœ์ด๋“œ-2] ์•ฑ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜์ž
๋ฐ˜์‘ํ˜•

 

 

 

3๊ฐ•. ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜

 


 

https://developer.android.com/studio/install?hl=ko

 

Android ์ŠคํŠœ๋””์˜ค ์„ค์น˜  |  Android Developers

Windows, macOS ๋˜๋Š” Linux์—์„œ Android ์ŠคํŠœ๋””์˜ค๋ฅผ ์„ค์ • ๋ฐ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

developer.android.com

 

AVD ์ฒดํฌ ํ•ด์ œ ํ•˜์ง€ ๋ง๊ณ  ๊ฐ™์ด ์„ค์น˜ํ•˜๊ธฐ

 

์ดˆ๊ธฐ ์„ค์ • - ์ด์ „์— ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋ฅผ ์„ค์น˜ํ•œ ์ ์ด ์žˆ๊ณ , ์…‹์—… ํŒŒ์ผ์ด ๋‚จ์•„ ์žˆ๋‹ค๋ฉด ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ •ํ•˜๋ฉด ๋˜๊ณ 
์ด์ „์— ์„ค์น˜ํ•œ ์  ์—†๊ฑฐ๋‚˜ ์ ์šฉํ•œ ์  ์—†๋‹ค๋ฉด 'Do not import settings'

Install Type์€ ๊ทธ๋ƒฅ ๊ธฐ๋ณธ์ ์œผ๋กœ Standard,
์ด๋ฏธ ์„ค์น˜ํ•œ ์ ์žˆ๋‹ค๋ฉด Custom์œผ๋กœ ์„ค์น˜ ํด๋” ์ง€์ •ํ•ด์ฃผ๋Š” ์ •๋„์ž„

 

 


 

4๊ฐ•. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ๊ตฌ์„ฑ์š”์†Œ

 


 

 

4-1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

 

(1) New Project ํด๋ฆญ
(2) Phone and Tablet - Empty Activity ํด๋ฆญ

 

Name: ๋ณธ์ธ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ ๋งˆ์Œ๋Œ€๋กœ ์ •ํ•˜๊ธฐ
Package name: (์ค‘์š”) ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹๋ณ„์ž ๋ฌธ์ž์—ด์ด ๋จ. ์œ ์ผ๋ฌด์ดํ•œ ๋‹จ์–ด๋กœ ์ง€์ •ํ•˜๊ธธ ์ถ”์ฒœ
                          ์˜ˆ: com.jin.sesac1
Save location: ํด๋” ์ง€์ •
Minimum SDK: ํŠน์ • API ์ง€์ •
Language: ๊ฐ•์˜๋Š” Kotlin์œผ๋กœ ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— Kotlin์œผ๋กœ ์„ค์ •

 

 

4-2. ๋ชจ๋“ˆ ๊ตฌ์„ฑ

 

์œ„์™€ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‚˜๋ฉด ์ž๋™์œผ๋กœ ํ”„๋กœ์ ํŠธ ํด๋”์— ํŒŒ์ผ๋“ค์ด ์ƒ๊น€.

(1) ํ”„๋กœ์ ํŠธ = ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์˜ ๊ณตํ†ต ๊ด€๋ฆฌ ๋‹จ์œ„
(2) ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๋ฉด app์ด๋ผ๋Š” ๋ชจ๋“ˆ ํ•˜๋‚˜๊ฐ€ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์ง. ์›ํ•œ๋‹ค๋ฉด ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋„ ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ
     ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“œ๋ ค๊ณ  ํ•˜๋Š” ์•ฑ ํ•˜๋‚˜๋Š” ๋ชจ๋“ˆ ํ•˜๋‚˜๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ๋จ (์•„๋‹ˆ๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ฑ๊ฒฉ์˜ ๋ชจ๋“ˆ์ผ ์ˆ˜๋„ ์žˆ์Œ)
(3) app -> src -> main ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋“  ๋ชจ๋“  ๊ฒƒ์— ๊ด€๋ จ์ด ์žˆ์Œ. ๋‚˜๋จธ์ง€๋Š” ๊ทธ๋ƒฅ ์ž๋™ ์ƒ์„ฑ
๋”ฐ๋ผ์„œ ๋‚ด๊ฐ€ ๋งŒ๋“  ์ฝ”๋“œ๋‚˜ ํŒŒ์ผ๋“ค ๋ณด๋ ค๋ฉด main์—์„œ๋ถ€ํ„ฐ ๋ณด์•„์•ผ ํ•จ

 

 

๋ณด์‹œ๋‹ค์‹œํ”ผ ์‹ค์ œ ํƒ์ƒ‰์ฐฝ์˜ ํŒŒ์ผ๊ตฌ์กฐ์™€, ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ์˜ ํŒŒ์ผ๊ตฌ์กฐ๊ฐ€ ์กฐ๊ธˆ ๋‹ค๋ฆ„
๊ฐœ๋ฐœ์ž์™€ ๊ด€๋ จ์ด ์—†๋Š” ๋นŒ๋“œํˆด๋งŒ์„ ์œ„ํ•œ ํด๋”, ํŒŒ์ผ๋“ค์€ ์ž๋™์œผ๋กœ ์ˆจ๊ฒจ์ฃผ๋Š” ํŽธ
๋”ฐ๋ผ์„œ ์—ฌ๊ธฐ์„œ ๋ณด์—ฌ์ฃผ๋Š” ๊ฑด ๊ฐœ๋ฐœ์ž์™€ ์ง๊ด€๋œ ํด๋”/ํŒŒ์ผ๋งŒ ๋ณด์—ฌ์ค€๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ.

(1) ํƒ์ƒ‰์ฐฝ์—์„œ appํด๋” ์•ˆ์— ์žˆ๋Š” 'build.gradle.kts'์„ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ๋Š” ๋ณ„๋„๋กœ 'Gradle Scripts'๋กœ ํ‘œํ˜„
  build.gradle : ๋นŒ๋“œ ํ™˜๊ฒฝ ํŒŒ์ผ. ์šฐ๋ฆฌ๋Š” ๋นŒ๋“œ ํˆด์—๊ฒŒ ์ด๋Ÿฐ ์‹์œผ๋กœ ๋นŒ๋“œ๋ฅผ ํ•ด์ค˜๋ผ๊ณ  ๋ช…์‹œํ•˜๋Š” ๊ฒƒ.
                         ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž์ฃผ ์—ด์–ด์„œ ์ˆ˜์ •์„ ํ•˜๊ฒŒ ๋จ

(2) AndroidManifest.xml : ์•ฑ์˜ ๋ฉ”์ธ ํ™˜๊ฒฝ ํŒŒ์ผ. ์ค„์—ฌ์„œ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์ด๋ผ๊ณ  ๋งŽ์ด ๋งํ•จ. ์›Œ๋‚™ ์ค‘์š”ํ•œ ํŒŒ์ผ
                                            ๊ฐœ๋ฐœ์„ ํ•˜๋ฉฐ ์ด ํŒŒ์ผ ์—ด์–ด์„œ ๋ถ„์„/์ถ”๊ฐ€ ๊ต‰์žฅํžˆ ๋งŽ์ด ํ•˜๊ฒŒ ๋จ. ์™ธ์šฐ๊ธฐ ์‹ซ์–ด๋„ ์™ธ์›Œ์ง

(3) res : ๋ฆฌ์†Œ์Šค ํด๋”. ์•ˆ๋“œ๋กœ์ด๋“œ์˜ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋Š” res ํด๋” ๋ฐ‘์— ๋“ค์–ด๊ฐ
              drawable - ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๋ถ€๋ถ„
              layout - UI๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ xml์ด ๋“ค์–ด๊ฐ€๋Š” ๋ถ€๋ถ„
              mipmap - ์•ฑ์˜ ์•„์ด์ฝ˜ ์ด๋ฏธ์ง€
              values - ๋ฌธ์ž์—ด ๋“ฑ๋“ฑ์˜ ๊ฐ’
              (+) ์ด 4๊ฐœ๋ณด๋‹ค ๋ฆฌ์†Œ์Šค ํด๋” ์ข…๋ฅ˜๋Š” ํ›จ์”ฌ ๋งŽ๊ณ , ๋‚˜์ค‘์— ๋‹ค๋ฃฐ ๊ฒƒ.

(4) MainActivity.kt : ์•กํ‹ฐ๋น„ํ‹ฐ ํด๋ž˜์Šค. javaํด๋” ์•„๋ž˜์— ์žˆ๋Š” ์ฝ”ํ‹€๋ฆฐ ํŒŒ์ผ. 

์ด๊ฑฐ ์ด์™ธ์—๋„ ํ›จ์”ฌ ๋” ๋งŽ์€ ์ข…๋ฅ˜๊ฐ€ ์žˆ์ง€๋งŒ, ์ผ๋‹จ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ๋งŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€๊ธฐ

 


 

5๊ฐ•. AVD ์„ค์ • ๋ฐ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ…Œ์ŠคํŠธ

 


 

๊ฐ€์ƒ ๋””๋ฐ”์ด์Šค์ธ AVD๋ฅผ ์„ค์ •ํ•˜๊ณ  ๊ทธ AVD๋ฅผ ๊ตฌ๋™์‹œ์ผœ์„œ ์•ฑ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ
AVD: ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐ€์ƒ ๋””๋ฐ”์ด์Šค = Android Virutal Device = ์—๋ฎฌ๋ ˆ์ดํ„ฐ

โ˜… ์ด์ „์— ํ•„์ˆ˜๋กœ ์„ค์ •ํ•ด์•ผ ํ•  ๊ฒƒ
File - Settings - Editor - General - Auto Import ์„ค์ •
์›๋ž˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ํŠน์ • ํด๋ž˜์Šค๋ฅผ ์ž…๋ ฅํ•˜๊ฒ ๋‹ค๊ณ  ํ•˜๋ฉด ์œ„์— ์ž„ํฌํŠธ ๊ตฌ๋ฌธ์„ ์จ์ค˜์•ผ ํ•˜๋Š”๋ฐ ๋„ˆ๋ฌด ๊ท€์ฐฎ์•„์„œ,
๋‹จ์ถ•ํ‚ค ๋ˆ„๋ฅด๋Š” ๊ฒƒ๋„ ๋งŽ์ด ๋ถˆํŽธํ•˜๋‹ˆ ์ž๋™์œผ๋กœ ๊ทธ ๊ตฌ๋ฌธ์„ ์จ์ฃผ๊ฒŒ ํ•˜๋Š” auto import๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒŒ ํ•„์š”
Kotlin - ์ฒดํฌ๋ฐ•์Šค 2๊ฐœ ๋ชจ๋‘ ์„ ํƒํ•˜๊ธฐ

 

 

AVD Manager (์ง€๊ธˆ์€ Device Manager๋กœ ๋ฐ”๋€ ๋“ฏ)

(1) +๋ฅผ ๋ˆŒ๋Ÿฌ ํ•˜๋“œ์›จ์–ด ํ•˜๋‚˜์˜ ๋””๋ฐ”์ด์Šค๋ฅผ ์„ ํƒํ•ด์„œ ์„ค์ •
(2) system Image ์„ ํƒ - ํŠน์ • ๋ฒ„์ „์˜ AVD๋ฅผ ๋งŒ๋“ค๊ฒ ๋‹ค ํ•˜๋ฉด ํ•ด๋‹น ๋ฒ„์ „์˜ ๋‹ค์šด๋กœ๋“œ ๋งํฌ๋ฅผ ํด๋ฆญํ•ด์„œ ๋‹ค์šด ๋ฐ›์€ ๋’ค ์„ค์ • ํ•ด์ฃผ์–ด์•ผ ํ•จ (๋‹ค๋งŒ ํ•˜๋‚˜ํ•˜๋‚˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋„ˆ๋ฌด ํฌ๊ณ , AVD๋Š” ์–ด์ฐจํ”ผ ํ…Œ์ŠคํŠธ์šฉ๋ฐ–์— ์•ˆ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ช‡ ๊ฐœ๋งŒ ํ•ด๋ณผ ๊ฒƒ)
(3) Verify Configuration: ๋ถ€๊ฐ€ ์„ค์ •, ๊ทธ๋‹ฅ ์ค‘์š”ํ•œ ๊ฑด ์—†์Œ

=> ํ•ด๋‹น OS๊ฐ€ ๋“ค์–ด๊ฐ„ ํ•˜๋“œ์›จ์–ด ๊ฐ€์ƒ ๋ชจ๋ฐ”์ผ์ด ์ƒ๊น€

๋งŒ๋“ค์–ด ์ง€๊ณ  ๋‚œ ๋’ค์—” ์žฌ์ƒ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ํ•˜๋“œ์›จ์–ด๋ฅผ Launchํ•ด๋ณด๋ฉด ๋จ
(์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ๋‚ด Logcat ์ฐฝ์— ์šฐ๋ฆฌ๊ฐ€ ๊ตฌ๋™์‹œํ‚จ ๋””๋ฐ”์ด์Šค ๋ชฉ๋ก์ด ๋‚˜์™€์•ผ ํ•˜๊ณ , ๊ทธ ๋กœ๊ทธ๊ฐ€ ์ถœ๋ ฅ์ด ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ
๊ทธ๋ž˜์•ผ๋งŒ AVD๊ฐ€ ์ธ์ง€๊ฐ€ ๋œ ๊ฒƒ์ด๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ)

๊ตฌ๋™๋œ AVD

 

์ด ์ƒํƒœ์—์„œ ๋ชจ๋“ˆ๋ช…์„ ์„ค์ •ํ•˜๊ณ  RUN๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด App์ด ๋นŒ๋“œ๋˜๊ณ  ์‹คํ–‰ ๋จ

 

 


 

6๊ฐ•. ํฐํ…Œ์ŠคํŠธ

 


 

AVD ํ…Œ์ŠคํŠธ๋„ ์ข‹์ง€๋งŒ, ๊ฒฐ๊ตญ ๊ถ๊ทน์ ์œผ๋กœ ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๋Š” ์ง€ ํ™•์ธํ•ด์•ผ ํ•˜๊ธฐ์— ํฐํ…Œ์ŠคํŠธ๋Š” ์ค‘์š”ํ•˜๊ณ , ๊ผญ ํ•„์š”ํ•จ

์•„๋ž˜์™€ ๊ฐ™์€ ์‚ฌ์ „ ์ค€๋น„์‚ฌํ•ญ์ด ํ•„์š”ํ•จ
(1) ๊ฐœ๋ฐœ์ž ์ปดํ“จํ„ฐ : Android Driver ์„ค์น˜ (๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์•„๋‹ˆ๋ผ, ์Šค๋งˆํŠธํฐ ์ œ์ž‘์‚ฌ์˜ ๋“œ๋ผ์ด๋ฒ„ - ์‚ผ์„ฑ)
(2) ํ…Œ์ŠคํŠธ ํฐ : USB Debugging ํ—ˆ์šฉ (๋Ÿฐํƒ€์ž„ ๋กœ๊ทธ๊ฐ€ usb์žญ์„ ํ†ตํ•ด ๋„˜๊ฒจ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ค์ •. ๊ฐœ๋ฐœ์ž๋ชจ๋“œ์—์„œ ์„ค์ •)

https://developer.samsung.com/android-usb-driver

 

 

์Šค๋งˆํŠธํฐ์„ ์ปดํ“จํ„ฐ์— ์ •์ƒ์ ์œผ๋กœ ์—ฐ๊ฒฐ, ๋””๋ฒ„๊น… ํ›„์—๋Š” AVD ๊ตฌ๋™ ๋ฐฉ๋ฒ•๊ณผ ๋˜‘๊ฐ™์ด,
๋””๋ฐ”์ด์Šค๋ฅผ ์‹ค์ œ ๋””๋ฐ”์ด์Šค๋ช…์œผ๋กœ ์„ ํƒํ•˜๊ณ  Run๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋จ (์‹ค์ œ ์ธ์Šคํ†จ ํ›„ ์‹คํ–‰๋จ)

๋ฐ˜์‘ํ˜•
 ๐Ÿ’ฌ C O M M E N T