ARM Reference - ONE-store/inapp-sdk GitHub Wiki

μš©μ–΄μ •λ¦¬

ν•„μˆ˜ μš©μ–΄ μ„€λͺ… λΉ„κ³ 
P-APK ARM이 μ μš©λ˜μ§€ μ•Šμ€ 일반 APK 파일 Plain APK
S-APK ARM μ•”ν˜Έν™”λ₯Ό μ μš©ν•œ APK Secure-APK
SS-APK S-APKλ₯Ό 배포가 κ°€λŠ₯ν•˜λ„λ‘ private key signing ν•œ APK Signed Secure-APK

ARM Reference

ARM κ΅¬μ„±μš”μ†Œ

2μ„ΈλŒ€ ARM 이 적용된 APK(SS-APK)κ°€ μ‹€ν–‰λ˜λ©΄ ν•΄λ‹Ή 단말에 μ„€μΉ˜λ˜μ–΄ μžˆλŠ” ARM Client Service λͺ¨λ“ˆκ³Ό 연동을 ν†΅ν•΄μ„œ μ‚¬μš©μžμ˜ Application μ‹€ν–‰ κΆŒν•œ μ—¬λΆ€λ₯Ό μ²΄ν¬ν•˜κ³ , μ ν•©ν•œ κΆŒν•œμ„ λ³΄μœ ν•œ 경우 ν•΄λ‹Ή Application의 싀행을 ν—ˆκ°€ν•˜κ³  μ‹€ν–‰ κ°€λŠ₯ν•˜λ„λ‘ μ•”ν˜Έν™”λœ μ½”λ“œμ˜ λ³΅ν˜Έν™”λ₯Ό μˆ˜ν–‰ν•œλ‹€. Deviceμ—μ„œ 2μ„ΈλŒ€ ARM 처리λ₯Ό μœ„ν•œ κ΅¬μ„±μš”μ†ŒλŠ” 크게 λ‹€μŒκ³Ό κ°™λ‹€.

  • μ›μŠ€ν† μ–΄ κ°œλ°œμžμ„Όν„° ARM Client Loader
    • Application λ‚΄ ARM 적용 μ‹œ μΆ”κ°€λ˜λŠ” ARM Module
    • ARM Service 와 μ—°λ™ν•˜μ—¬ κΆŒν•œ 체크 및 μ‹€ν–‰ 여뢀에 λ”°λ₯Έ 처리λ₯Ό μˆ˜ν–‰.
  • μ›μŠ€ν† μ–΄ κ°œλ°œμžμ„Όν„° ARM Service v3.0
    • κΆŒν•œμ— λ”°λ₯Έ μ‹€ν–‰ μ œμ–΄λ₯Ό κ΄€λ¦¬ν•˜λŠ” Android Service ν˜•νƒœμ˜ Contents Provider
    • 2μ„ΈλŒ€ ARM 이 적용된 Application μ‹€ν–‰ μ‹œ Application λ‚΄ 적용된 Client Loader 와 μ—°λ™ν•˜μ—¬ κΆŒν•œ 체크 및 μ‹€ν–‰ μ—¬λΆ€ νŒλ³„.

μ›μŠ€ν† μ–΄ 2μ„ΈλŒ€ ARM λ™μž‘ 방식

ARM ν…ŒμŠ€νŠΈ 체크리슀트

  • Application 을 μ‹€ν–‰ν•˜μ—¬ 정상 μž‘λ™ν•˜λŠ”μ§€ 확인
  • Application 졜초 μ‹€ν–‰ μ‹œ(1회)μ—λŠ” Network 접속이 κ°€λŠ₯ν•΄μ•Ό ν•œλ‹€.
  • SS-APK λ₯Ό μƒμ„±ν•œ 개발자 κ³„μ •μ˜ β€œARM Test 단말 관리”에 ν¬ν•¨λœ 단말일 κ²½μš°μ—λ§Œ 정상 μž‘λ™ν•œλ‹€.
  • μ •μƒμ μœΌλ‘œ μ‹€ν–‰ λ˜μ§€ μ•ŠλŠ” 경우
    • ARM Test 단말 관리에 λ²ˆν˜Έκ°€ λ“±λ‘λ˜μ—ˆλŠ”μ§€ 확인
    • ARM 적용 및 μ„œλͺ… μž‘μ—…κΉŒμ§€ μˆ˜ν–‰ν•œ APKκ°€ λ§žλŠ”μ§€ 확인
    • μƒν’ˆ λ“±λ‘λ˜μ–΄ β€œνŒλ§€ 쀑” μƒν’ˆ 인지, 단말 관리 λ²ˆν˜Έκ°€ β€œμƒμš©β€ 인지 확인
    • 이외 κ°€μ΄λ“œ λ¬Έμ„œμ— 따라 μˆ˜ν–‰λ˜μ§€ μ•Šμ€ μž‘μ—…μ΄ μžˆλŠ”μ§€ 확인 ν•˜μ—¬ 이상이 없을 μ‹œ Q&Aλ₯Ό 톡해 문의
  • 검증 μ‹œ μ£Όμ˜μ‚¬ν•­.
    • κ°œλ°œμžλŠ” ARM Test 단말 번호 등둝, μ €μž₯ ν›„ μ„€μΉ˜ν•œ Application 의 정상 λ™μž‘ μ—¬λΆ€λ§Œ ν™•μΈν•˜λ©΄ λœλ‹€. (성곡 μ—¬λΆ€λ§Œ 확인, μ‹€νŒ¨ Case 검증 λΆˆν•„μš”)
    • ARM Test 번호둜 λ“±λ‘λœ λ‹¨λ§μ—μ„œλŠ” SS-APK μ‹€ν–‰ μ‹œ 맀번 λΌμ΄μ„ μŠ€λ₯Ό λ°œκΈ‰ν•œλ‹€.
    • ARM Test 번호둜 λ“±λ‘λœ μ •λ³΄λŠ” 검증 μš©λ„λ‘œλ§Œ μ‚¬μš©ν•˜λ©° λˆ„μΆœλ˜κ±°λ‚˜ μ˜€λ‚¨μš© λ˜μ§€ μ•Šλ„λ‘ μ£Όμ˜ν•œλ‹€.

ARM μš”κ΅¬ ꢌμž₯사항 및 μ œν•œμ‚¬ν•­

  1. Application λ‚΄ μ•”ν˜Έν™”/λ³΅ν˜Έν™” 기반의 λ³΄μ•ˆ μ†”λ£¨μ…˜ 적용 μ‹œ μ›μŠ€ν† μ–΄ κ°œλ°œμžμ„Όν„° 2μ„ΈλŒ€ ARM 이 ν˜Έν™˜λ˜μ§€ μ•Šμ„ 수 μžˆλ‹€. (ex. HoseDex2Jar)
  2. κ°œλ°œμžκ°€ Signing 을 직접 μˆ˜ν–‰ν•˜λŠ” 경우, SS-APK λ₯Ό λ“±λ‘ν•˜λŠ” κ³Όμ •μ—μ„œ signing & zipalign μ™Έ 좔가적인 APK 변경은 ꢌμž₯ν•˜μ§€ μ•ŠλŠ”λ‹€.
  3. ARM 적용 μ‹œ APK λ‚΄λΆ€ μ•”ν˜Έν™” 적용으둜 μΈν•˜μ—¬ APK 파일 정보변경이 λ°œμƒν•˜λ―€λ‘œ μƒν’ˆ λ‚΄ μœ„/λ³€μ‘° 방지λ₯Ό μœ„ν•œ APK 물리적인 파일 정보λ₯Ό ν™•μΈν•˜λŠ” κΈ°λŠ₯이 적용된 경우 μ˜€λ™μž‘ ν•  수 μžˆλ‹€. (파일 μ‚¬μ΄μ¦ˆ, CRC, Code-Signing 체크 λ“±)
  4. Code-Signing 을 μ²΄ν¬ν•˜λŠ” 둜직이 Shared-Library(SO) 에 κ΅¬ν˜„λœ 경우 μ•„λž˜μ™€ 같은 λ°©μ‹μœΌλ‘œ 적용 κ°€λŠ₯
  • P-APK 개발 μ‹œ μ²΄ν¬λ‘œμ§μ„ SO 에 κ΅¬ν˜„
  • P-APK 에 ARM 을 μ μš©ν•˜μ—¬ S-APK λ‹€μš΄λ‘œλ“œ
  • S-APK λ₯Ό Code-Signing, Zip-Align ν•˜μ—¬ SS-APK μ œμž‘
  • Code-Signing 체크 λ‘œμ§μ„ μˆ˜μ •ν•˜μ—¬ SO μž¬λΉŒλ“œ
  • SS-APK 내에 있던 SO νŒŒμΌμ„ μž¬λΉŒλ“œλœ SO 파일둜 ꡐ체
  • μˆ˜μ •ν•œ SS-APK λ₯Ό λ‹€μ‹œ Code-Signing, Zip-Align
  • μ΅œμ’… μž‘μ—…μ΄ μ™„λ£Œλœ SS-APK λ₯Ό μ›μŠ€ν† μ–΄ κ°œλ°œμžμ„Όν„°μ— μƒν’ˆ 등둝