์ƒˆ์†Œ์‹

Languages/Android

[Android] ํด๋” ๊ตฌ์กฐ | ์ •์  & ๋™์  ๋ถ„์„

  • -
๋ฐ˜์‘ํ˜•

 

์ธ์‹œํ์–ด ๋ฑ…ํฌ ๊ฐ•์˜ ๋‚ด์šฉ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 


 

ํด๋” ๊ตฌ์กฐ
  • app
    • manifest: ๋ณด์•ˆ ์˜ต์…˜, ์•ˆ๋“œ๋กœ์ด๋“œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ตฌ๋™ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์„ค์ • ๊ฐ’์„ ๊ด€๋ฆฌํ•ด์คŒ. ์ปจํŠธ๋กค ํƒ€์›Œ๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค.
    • java : ํด๋ž˜์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํด๋”์ด๋‹ค.
    • res : Resource ํด๋”๋กœ UI์™€ ๊ด€๋ จ๋œ ํŒŒ์ผ๊ณผ ๋””์ž์ธ ๋ฆฌ์†Œ์Šค, ๋ฌธ์ž์—ด ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํด๋”์ด๋‹ค.
  • Gradle
    • ๋นŒ๋“œ ๋ฐฐํฌ ๋„๊ตฌ(build tool)
    • ์•ˆ๋“œ๋กœ์ด๋“œ๋Š” ์ŠคํŠœ๋””์˜ค(IDE)์™€ ๋นŒ๋“œ ์‹œ์Šคํ…œ์ด ์„œ๋กœ ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ
    • ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋Š” ์ฝ”๋“œ์˜ ํŽธ์ง‘๋งŒ์„ ๋‹ด๋‹นํ•  ๋ฟ, ๋นŒ๋“œ๋Š” Gradle์„ ํ†ตํ•ด ๋ชจ๋‘ ์ˆ˜ํ–‰๋œ๋‹ค.
    • ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚œ๋…ํ™”๋ฅผ ์ง€์›ํ•จ.
    • build.gradle(project Test) -> ์ „์ฒด ์‹œ์Šคํ…œ์— ๊ด€๋ จ๋œ ๊ฒƒ (๊ฐ€์žฅ ์ƒ์œ„์— ์กด์žฌ)
    • build.gradle(Module:app) -> class์— ๊ด€๋ จ๋œ ๊ฒƒ

 

 

์ •์  & ๋™์  ๋ถ„์„
  • ์ •์ ๋ถ„์„ :
    • ์†Œ์Šค๋ฅผ ๋Œ๋ ค์„œ JavaํŒŒ์ผ์„ ๋ณด๋ฉฐ ๋ถ„์„.(tool ์„ ๊น”๊ณ  ์‹คํ–‰ํ•จ) ->apk๋ถ„์„
  • ๋™์ ๋ถ„์„ :
    • ์‹ค์‹œ๊ฐ„ ๋””๋ฒ„๊น…์„ ํ•˜๋ฉด์„œ (์‹คํ–‰ํ•˜๋ฉด์„œ) ๋ถ„์„.(๊ธฐ๊ธฐ๋‚˜ ์• ๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์žˆ์–ด์•ผ ํ•จ) -> ํ–‰๋™๋ถ„์„(๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ), ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ ๋ถ„์„.

 

์—๋ฎฌ๋ ˆ์ด์…˜ & ์‹œ๋ฎฌ๋ ˆ์ด์…˜

์‹œ๋ฎฌ๋ ˆ์ด์…˜ -> ์•ฝ๊ฐ„ ๋ชจ์˜? ์˜ ๋Š๋‚Œ (๊ฐ€์ƒ์œผ๋กœ ์‹คํ–‰์„ ํ•ด๋ณด์•˜๋Š”๊ฐ€?)  : ๊ธฐ๋Šฅ์€ ๊ฐ™์ง€๋งŒ ๋‹ค๋ฆ„.(ex:๋น„ํ–‰๊ธฐ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ)

์—๋ฎฌ๋ ˆ์ด์…˜ -> ๊ธฐ๋Šฅ์„ ๋Œ€์นญ์‹œ์ผœ์คŒ. (ex:๊ฐ€์ƒ๋จธ์‹ , nox)

ko.wikipedia.org/wiki/%EC%97%90%EB%AE%AC%EB%A0%88%EC%9D%B4%ED%84%B0 ์•„๋ž˜ ์ฐธ๊ณ ํ•˜๊ธฐ!

 

์—๋ฎฌ๋ ˆ์ดํ„ฐ

์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. ์—๋ฎฌ์€ ์—ฌ๊ธฐ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋น„๋””์˜ค ๊ฒŒ์ž„์˜ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋Š” ์ฝ˜์†” ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์—๋ฎฌ๋ ˆ์ดํ„ฐ(Emulator)๋Š” ํ•œ ์‹œ์Šคํ…œ์—์„œ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์„

ko.wikipedia.org

 

์žฌ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ• ->ex ์•…์„ฑ์ฝ”๋“œ ๋งŒ๋“ค๊ณ  ์žฌ ์ปดํŒŒ์ผ ํ•˜๋Š” ๊ฒฝ์šฐ

- ์†Œ์Šค ์ž์ฒด๋ฅผ ์žฌ ์ปดํŒŒ์ผ ํ•˜๋Š” ๋ฒ• (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์–ด์•ผ ์ปดํŒŒ์ผ์ด ๋  ์ˆ˜ ์žˆ์Œ)

- smali : ์ปดํŒŒ์ผ์ด ํ•„์š” x (c๋กœ ์น˜๋ฉด ์–ด์…ˆ๋ธ”๋ฆฌ)

 

jd-gui: jar ํŒŒ์ผ ๋ณด๋Š” ์šฉ๋„

bytecodeViewer : dex -> smali, jar ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ

apktools : ๋””์ปดํŒŒ์ผ ํ•  ๋•Œ๋„ ์”€

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.