๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•

๐Ÿš€ Development/Android15

[Android] ๋„คํŠธ์›Œํฌ ์ž‘์—… ์‹œ ๋น„๋™๊ธฐ ์ž‘์—…์ด ํ•„์š”ํ•œ ์ด์œ  + ์ฝ”๋ฃจํ‹ด(coroutine) 1. UI ์ฐจ๋‹จ(Block) ํ˜„์ƒ์˜ ์›๋ฆฌ์™€ ๋ฌธ์ œ์ Android์˜ ์Šค๋ ˆ๋“œ ๋ชจ๋ธAndroid ์•ฑ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ(Main Thread)์—์„œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)์™€ ๊ด€๋ จ๋œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.์˜ˆ: ํ™”๋ฉด์— ๋ฒ„ํŠผ ํ‘œ์‹œ, ์‚ฌ์šฉ์ž์˜ ํด๋ฆญ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ.๋„คํŠธ์›Œํฌ ์ž‘์—…์€ ์ฃผ๋กœ ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์— ์†ํ•˜๋ฉฐ, ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค๋ฅธ ์ž‘์—…(ํŠนํžˆ UI ๊ด€๋ จ ์ž‘์—…)์ด ๋Œ€๊ธฐ ์ƒํƒœ์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.UI ์ฐจ๋‹จ(Blocking)์˜ ์›์ธ๋„คํŠธ์›Œํฌ ์ž‘์—…์€ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•˜๋Š” ๋™์•ˆ ์™ธ๋ถ€ ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.์˜ˆ) ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜, ๋„คํŠธ์›Œํฌ ์ง€์—ฐ(Latency)์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ.์ด ๋™์•ˆ ์•ฑ์€ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜ํ™˜๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ์ด ๋Œ€๊ธฐ ์ž‘์—…์— ๋ฌถ์ด๊ฒŒ ๋˜๋ฉด UI ์—….. 2024. 11. 25.
[Android] startActivityForResult ๋ฉ”์„œ๋“œ๊ฐ€ Deprecated๋œ ์ด์œ ์™€ ํ•ด๊ฒฐ๋ฐฉ์•ˆ + ์นด๋ฉ”๋ผ ์‚ฌ์šฉ ๋ฐ ์ด๋ฏธ์ง€๋ทฐ ์˜ˆ์ œ startActivityForResult๊ฐ€ Deprecated๋œ ์ด์œ startActivityForResult ๋ฉ”์„œ๋“œ๊ฐ€ Deprecated(์‚ฌ์šฉ ์ค‘๋‹จ)๋œ ์ด์œ ๋Š” Activity Result API๋ฅผ ๋„์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.์ƒˆ๋กœ์šด API๋Š” ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜์— ์šฉ์ดํ•˜๋ฉฐ, ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ๋ฅผ Lifecycle-aware ๋ฐฉ์‹์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ํ˜„๋Œ€์ ์ธ Android ๊ฐœ๋ฐœ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.๋” ์•ˆ์ „ํ•œ ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ: startActivityForResult๋Š” ์ฝœ๋ฐฑ์„ onActivityResult๋กœ ์ „๋‹ฌํ–ˆ์ง€๋งŒ, Activity ๋˜๋Š” Fragment๊ฐ€ Lifecycle-aware ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐ ์˜๋„ํ•˜์ง€ ์•Š์€ ๋™์ž‘์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.๋ช…ํ™•ํ•œ ๊ฒฐ๊ณผ ๊ด€๋ฆฌ: ์ƒˆ๋กœ์šด API๋Š” ๋ช…์‹œ์ ์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  Lifecycle .. 2024. 11. 21.
[Android/Kotlin] ์•ˆ๋“œ๋กœ์ด๋“œ ๊ตฌ๊ธ€ ์• ๋“œ๋ชน(admob) ๊ด‘๊ณ  ๋„ฃ๋Š” ๋ฒ• 1. ์• ๋“œ๋ชน ํšŒ์›๊ฐ€์ž… / ์•ฑ ๋“ฑ๋ก ๊ตฌ๊ธ€ ์• ๋“œ๋ชน ํšŒ์›๊ฐ€์ž…์„ ํ•˜๋ฉด ์ฒซ ํŽ˜์ด์ง€์— ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์•ฑ ์ถ”๊ฐ€๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. 2. ์• ๋“œ๋ชน - ๊ด‘๊ณ  ๋‹จ์œ„(์ „๋ฉด, ๋ฐฐ๋„ˆ ๊ด‘๊ณ  ์ถ”๊ฐ€) 3. Android ์ฝ”๋“œ ์ถ”๊ฐ€ build.gradle (Module: app) ๊ตฌ๊ธ€ ์• ๋“œ๋ชน(google admob) dependencies๋ฅผ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค. dependencies { // ์ถ”๊ฐ€ํ•˜๊ธฐ implementation 'com.google.android.gms:play-services-ads:22.6.0' } AndroidManifest.xml AndroidManifest ํŒŒ์ผ์˜ application ํƒœ๊ทธ์•ˆ์— meta-data๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. value ๊ฐ’์— ํ…Œ์ŠคํŠธ ๊ด‘๊ณ  ID๋ฅผ ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ๊ธ€ ์• ๋“œ๋ชน(goo.. 2024. 3. 2.
[Android - Error] Installation did not succeed.The application could not be installed ์—๋Ÿฌ ํ™”๋ฉด ์›์ธ ์ด ์˜ค๋ฅ˜๋Š” APK ์„ค์น˜ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ์˜ค๋ฅ˜๋Š” Android ๋””๋ฐ”์ด์Šค์™€ ์—ฐ๊ฒฐ๋œ ADB(Android Debug Bridge) ์„œ๋น„์Šค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ์• ๋ฎฌ๋ ˆ์ดํ„ฐ์— ์„ค์น˜ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 1. ์• ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— Device Manager์—์„œ ํ•ด๋‹น ์• ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. 2. ํ•ด๋‹น ์• ๋ฎฌ๋ ˆ์ดํ„ฐ > Wipe Data * ์ฃผ์˜ Wipe Data๋Š” ์• ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค. 3. ์ •์ƒ ์ž‘๋™ 2024. 2. 25.
728x90
๋ฐ˜์‘ํ˜•