-
[AOS] ์๋๋ก์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐํ๊ธฐ 12022. 10. 2. 13:54๋ฐ์ํ๐ข๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐํด.๋ค...?๐ถ๐ข๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐํ๋ผ๊ณ .๊ทธ๊ฒ ๋ญ๋ฐ... ์ด๋ป๊ฒ ํ๋๊ฑด๋ฐ...!๐ถ
๋ชจ๋ฐ์ผ ๊ฐ๋ฐ์๋ก ์ฒซ ์ ์ฌํ๊ณ ๋นํฉ์ค๋ฌ์ ๋ ๊ฑด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์ด์๋ค.
ํญ์ ์คํ์์ค๋ก ๊ณต์ ๋์ด ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋์ด์จ๋ณด๊ธฐ๋ง ํ์ง ์ง์ ๊ฐ๋ฐ์ ์ํด๋ดค์๊ณ ๋ ๋ด๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ๊ฒ ๋ ์ค๋ ๋ชฐ๋๋ค.
์ง๊ธ ์๊ฐํด๋ณด๋ฉด ๋น์ฐํ ํ์ฌ์์๋ ์์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํด ์ฌ์ฉํ ํ ๋ฐ ์ ์๊ฐ์ ๋ชปํ์์๊น...
์๋ฌดํผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์ ์ค๋ฌด ํ๋ก์ ํธ์ ํ๋ถ ์์ค ํ๋ก์ ํธ ๊ฒฝํ์ ์ฐจ์ด๋ฅผ ๋๋ผ๊ฒ ๋ ๊ณ๊ธฐ ์ค ํ๋์๋ค.
๊ทธ๋์! ์ด๋ฒ ๊ธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์ ์ํ ์ด๊ธฐ ์ค์ ๊ณผ ๊ฐ๋ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์ฉํด๋ณด๊ธฐ์ ๊ดํ ๊ธ์ด๋ค.
์๋๋ก์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ ์ธํ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์ ์ํด ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด์ค๋ค.
์ค๋ฅธ์ชฝ ์๋จ New Project ํด๋ฆญ
์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํด ํญ์ Empty Activity๋ฅผ ์ ํํ๋ ์ด์ ๊ณผ ๋ค๋ฅด๊ฒ ๊ณผ๊ฐํ No Activity๋ฅผ ์ ํํด์ค๋ค.
๊ทธ ํ ๋์ค๋ ํ๋ก์ ํธ ์ด๋ฆ, ํจํค์ง๋ช , ํ๋ก์ ํธ ์์น ๋ฑ ์ค์ ํด์ฃผ๋ฉด ํ๋ก์ ํธ ์์ฑ ์.
์ด๋ ๊ฒ ๊ฐ๋จํ ๋๋๋ฉด ์ข๊ฒ ์ง๋ง build.gradle ์ค์ ์ด ํ์ํ๋ค.
plugins { id 'com.android.application' id 'kotlin-android' }
๐๐ป
plugins { id 'com.android.library' id 'kotlin-android' }
App ์์ค์ build.gradle์์ ์๋จ์ application์ผ๋ก ๋์ด์๋ ํ๋ฌ๊ทธ์ธ ๋ถ๋ถ์ library๋ก ๋ณ๊ฒฝํด์ค๋ค.
android { ... defaultConfig { applicationId "xxx.xxxx.xxxxxx" ... } }
๐๐ป
android { ... defaultConfig { ... } }
๊ทธ๋ฆฌ๊ณ defaultConfig ๋ถ๋ถ์ applicationId๋ฅผ ๊ณผ๊ฐํ ์ญ์ ํ๋ค.
gradle ์ ์ฉ์ ์ํด ์๋จ์ Sync Now๋ฅผ ๋๋ฅด๋ฉด ์ค์ ๋!
์๋๋ก์ด๋ ์ปค์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉํ๊ธฐ์ด์ ์ด์ฐ ์ ์ฐ ๊ฐ๋ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์ฉํด๋ณด์!
๊ฐ๋ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจํค์ง ํ์ผ์ธ aar ํ์ผ์ ์์ฑํด์ผ ํ๋ค.
์๋๋ก์ด๋ ์คํ๋์ค ์ฐ์ธก ์๋จ์ ์ฝ๋ผ๋ฆฌ ๊ทธ๋ฆผ๊ณผ ํจ๊ป ์๋ Gradle์ ๋๋ฌ๋ณด๋ฉด Tasks์ app์ด, ๋๋ app๋ง ๋ฌ๋ค.
์ค๋ฅธ์ชฝ ์๋จ ์ฝ๋ผ๋ฆฌ๋ฅผ ๋๋ฌ์ค๋ค.
์ด๋ฐ ํ์คํฌ ๊ฒ์์ฐฝ์ด ๋จ๋๋ฐ as๋ assemble์ ๊ฒ์ํด์ ๋๋ฌ์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ผ ์ด๋ ๊ฒ assemble๊ณผ assembleRelease๊ฐ ๋จ๋๋ฐ ๋ ์ค ์๋ฌด๊ฑฐ๋ ๋๋ฌ๋ ๋๋ค.
assemble์ release aarํ์ผ๊ณผ debug aar ํ์ผ์ ์์ฑํด์ค๋ค.
assembleRelease๋ release aarํ์ผ๋ง ์์ฑํด์ค๋ค.
๋ง์ฝ assemble์ด ์๋ฌ๋ค๋ฉด ์๋จ Android Studio ๋ฉ๋ด์์ Preferences์ ๋ค์ด๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ ๋งจ ์๋ Experimental์์ "Do not build Gradle task list during Gradle sync" ์ฒดํฌ๋ฅผ ํด์ ํด์ฃผ๊ณ Apply - OK
๊ทธ๋ฆฌ๊ณ ๋ค์ Gradle Task ๊ฒ์!
๋ฌด์ฌํ ๋ง์ณค๋ค๋ฉด ์์์ ํด์ ํ๋ ์ฒดํฌ๋ฅผ ๋ค์ ์ค์ ํด์ฃผ๋ ๊ฒ์ด ์ข๋ค.
์์ฑ๋ aar ํ์ผ์ ํด๋น ํ๋ก์ ํธ ํด๋์ app / build / outputs / aar ๊ฒฝ๋ก์ ์๋ค.
ํด๋น ๊ฒฝ๋ก์์ ์ฐพ์ aarํ์ผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ดํ๋ฆฌ์ผ์ด์ ํ๋ก์ ํธ์ libs ํด๋์ ๋ฃ์ด์ค๋ค.
์ ๋ง ๋ง์ง๋ง์ผ๋ก app ์์ค์ build.gradle ํ๋จ์ dependencies์ ์์ฑํ aar ํ์ผ ์ด๋ฆ์ ๋ฃ์ด implementation์ ์ค์ ํด์ฃผ๋ฉด ๋๋ค.
dependencies { implementation(name:'์์ฑ๋ aar ํ์ผ ์ด๋ฆ', ext:'aar') }
ํ์ง๋ง ์ด๋ฐ ๋ฐฉ๋ฒ์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ import ํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋์ด์ ์์ ํ ํ์์์ด ๊ฐ๋ฐ๋์์ ๋ ์ถ์ฒํ๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ ๋๋ฉด ๋ค์ aar ํ์ผ์ ์์ฑํ๊ณ ์์ ๋ aarํ์ผ์ ์ดํ๋ฆฌ์ผ์ด์ ํ๋ก์ ํธ์ libs ํด๋์ ๋ฃ๋ ์์ ์ ๋ฐ๋ณตํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ณดํต ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฝ๋๋ฅผ ์ดํ๋ฆฌ์ผ์ด์ ํ๋ก์ ํธ์ ๋์ด์ ๊ฐ์ด ์์ ๊ฐ๋ฐํ๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฝ๋๊ฐ ์ดํ๋ฆฌ์ผ์ด์ ํ๋ก์ ํธ์์ ๋๊ธฐํ๋์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํจ๊ป ์์ ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ ๋ค์ ๊ธ์์ ๋ค๋ฃฐ ์์ ์ด๋ค.
๋ฐ์ํ'๐ฐ Android ๐ญ > ๐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AOS] Android Proguard ์ค์ (0) 2023.02.11 [AOS] AAR to JAR (0) 2022.10.22 [AOS] ์๋๋ก์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐํ๊ธฐ 2 (1) 2022.10.03