[ANDROID] μ•ˆλ“œλ‘œμ΄λ“œ 4λŒ€ μ»΄ν¬λ„ŒνŠΈ

μ•ˆλ“œλ‘œμ΄λ“œ 4λŒ€ μ»΄ν¬λ„ŒνŠΈλž€?

4λŒ€ μ»΄ν¬λ„ŒνŠΈλŠ” μ•ˆλ“œλ‘œμ΄λ“œ μ•±μ˜ ν•„μˆ˜μ μΈ κΈ°λ³Έ ꡬ성 μš”μ†Œμž…λ‹ˆλ‹€. 각 ꡬ성 μš”μ†ŒλŠ” μ‚¬μš©μžλ“€μ΄ μ•±μœΌλ‘œ λ“€μ–΄μ˜¬ 수 μžˆλŠ” μ§„μž…μ μ΄λ©°, 4λŒ€ μ»΄ν¬λ„ŒνŠΈλŠ” 크게 μ•‘ν‹°λΉ„ν‹°, μ„œλΉ„μŠ€, Broadcast Receiver, μ½˜ν…μΈ  제곡자둜 이루어져 μžˆμŠ΅λ‹ˆλ‹€. 각 μ»΄ν¬λ„ŒνŠΈλ“€μ€ 각기 λšœλ ·ν•œ λͺ©μ μ„ μˆ˜ν–‰ν•˜κ³ , μžκΈ°λ“€λ§Œμ˜ 수λͺ… μ£ΌκΈ°κ°€ μ‘΄μž¬ν•˜μ—¬ κ°œλ°œμžκ°€ 생성 및 μ†Œλ©Έ 방식을 직접 μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.  

μ•‘ν‹°λΉ„ν‹°

  1. μ•‘ν‹°λΉ„ν‹°λŠ” μ‚¬μš©μžμ™€ μƒν˜Έμž‘μš©ν•˜κΈ° μœ„ν•œ μ§„μž…μ μž…λ‹ˆλ‹€.
  2. μ•‘ν‹°λΉ„ν‹°λŠ” UIκ°€ ν¬ν•¨λœ ν™”λ©΄ ν•˜λ‚˜λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. μ—¬λŸ¬ μ•‘ν‹°λΉ„ν‹°κ°€ λͺ¨μ—¬μ„œ μ‚¬μš©μžμ—κ²Œ ν•˜λ‚˜μ˜ 앱을 μ œκ³΅ν•˜μ§€λ§Œ, λͺ¨λ“  μ•‘ν‹°λΉ„ν‹°λŠ” 각자 μ„œλ‘œ λ…λ¦½λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  3. μ΄λŸ¬ν•œ 이유 λ•Œλ¬Έμ— λͺ¨λ°”일 μ•±μ—μ„œ λ‹€λ₯Έ λͺ¨λ°”일 앱이 ν—ˆμš©μ„ ν•œλ‹€λ©΄ κ·Έ 앱이 μ†Œμœ ν•œ μ•‘ν‹°λΉ„ν‹°λ₯Ό 직접 μ‹€ν–‰μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.  

μ„œλΉ„μŠ€

  1. μ„œλΉ„μŠ€λŠ” νŠΉμ •ν•œ λͺ©μ μ„ μœ„ν•΄ λ°±κ·ΈλΌμš΄λ“œμ—μ„œ 앱을 계속 μ‹€ν–‰ν•˜κΈ° μœ„ν•œ λ‹€λͺ©μ  μ§„μž…μ μž…λ‹ˆλ‹€. λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰λ˜λŠ” ꡬ성 μš”μ†Œλ‘œ, μ˜€λž«λ™μ•ˆ μ‹€ν–‰λ˜λŠ” μž‘μ—…μ„ μˆ˜ν–‰ν•˜κ±°λ‚˜ 원격 ν”„λ‘œμ„ΈμŠ€λ₯Ό μœ„ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. 
  2. μ‹œμž‘λœ μ„œλΉ„μŠ€λŠ” μž‘μ—…μ΄ μ™„λ£Œλ  λŒ€κΉŒμ§€ ν•΄λ‹Ή μ„œλΉ„μŠ€λ₯Ό 계속 μ‹€ν–‰ν•˜λΌκ³  μ‹œμŠ€ν…œμ— μ§€μ‹œν•©λ‹ˆλ‹€. λ°±κ·ΈλΌμš΄λ“œμ—μ„œ 일뢀 데이터λ₯Ό λ™κΈ°ν™”ν•˜κ±°λ‚˜ μ‚¬μš©μžκ°€ μ•±μ—μ„œ λ‚˜κ°„ 후에도 μŒμ•…μ„ μž¬μƒν•˜λŠ” λ“±μ˜ μ„œλΉ„μŠ€λ₯Ό 예둜 λ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. 
  3. 라이브 λ°°κ²½ν™”λ©΄, μ•Œλ¦Ό λ¦¬μŠ€λ„ˆ, ν™”λ©΄ 보호기, μž…λ ₯ λ©”μ„œλ“œ, μ ‘κ·Όμ„± μ„œλΉ„μŠ€ 및 μ—¬λŸ¬ 가지 핡심 μ„œλΉ„μŠ€ κΈ°λŠ₯이 λͺ¨λ‘ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ κ΅¬ν˜„ν•˜κ³  μ‹œμŠ€ν…œμ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•  λ•Œ λ°”μΈλ”©ν•˜λŠ” μ„œλΉ„μŠ€λ‘œ λΉŒλ“œλ©λ‹ˆλ‹€.

Broadcast Receiver

  1. Broadcast ReceiverλŠ” μ‹œμŠ€ν…œμ΄ 정기적인 μ‚¬μš©μž 흐름 λ°–μ—μ„œ 이벀트λ₯Ό 앱에 μ „λ‹¬ν•˜λ„λ‘ μ§€μ›ν•˜λŠ” ꡬ성 μš”μ†Œλ‘œ, 앱이 μ‹œμŠ€ν…œ μ „μ²΄μ˜ Boradcast μ•Œλ¦Όμ— 응닡할 수 있게 ν•©λ‹ˆλ‹€.
  2. Boradcast Receiver도 μ•±μœΌλ‘œ λ“€μ–΄κ°ˆ 수 μžˆλŠ” 또 λ‹€λ₯Έ λͺ…ν™•ν•œ μ§„μž…μ μ΄κΈ° λ•Œλ¬Έμ— ν˜„μž¬ μ‹€ν–‰λ˜μ§€ μ•Šμ€ 앱에도 μ‹œμŠ€ν…œμ΄ Broadcastλ₯Ό 전달할 수 μžˆμŠ΅λ‹ˆλ‹€.
  3. 예λ₯Ό λ“€μ–΄ 앱이 μ‚¬μš©μžμ—κ²Œ  μ˜ˆμ •λœ μ΄λ²€νŠΈμ— λŒ€ν•΄ μ•Œλ¦¬λŠ” μ•Œλ¦Όμ„ κ²Œμ‹œν•˜κΈ° μœ„ν•œ μ•ŒλžŒμ„ μ˜ˆμ•½ν•  경우, κ·Έ μ•ŒλžŒμ„ μ•±μ˜ Broadcast Receiver에 μ „λ‹¬ν•˜λ©΄ μ•ŒλžŒμ΄ 울릴 λ•ŒκΉŒμ§€ 앱을 μ‹€ν–‰ν•˜κ³  μžˆμ„ ν•„μš”κ°€ μ—…μŠ΅λ‹ˆλ‹€.
  4. λŒ€λ‹€μˆ˜ BroadcastλŠ” μ‹œμŠ€ν…œμ—μ„œ λ°œμƒν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 화면이 κΊΌμ‘Œκ±°λ‚˜ 배터리가 λΆ€μ‘±ν•˜κ±°λ‚˜ 사진을 μΊ‘μ²˜ν–ˆλ‹€κ³  μ•Œλ¦¬λŠ” Broadcastκ°€ λŒ€ν‘œμ μž…λ‹ˆλ‹€.
  5. 앱도 Broadcastλ₯Ό μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 에λ₯Ό λ“€μ–΄ λ‹€λ₯Έ μ•±μ—κ²Œ 일뢀 데이터가 기기에 λ‹€μš΄λ‘œλ“œ λ˜μ—ˆκ³  이λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€λŠ” 것을 μ•Œλ¦¬λŠ” 데 μ‚¬μš©ν•©λ‹ˆλ‹€.
  6. Broadcast RecevierλŠ” κ·Έμ € λ‹€λ₯Έ μ»΄ν¬λ„ŒνŠΈλ‘œμ˜ κ²Œμ΄νŠΈμ›¨μ΄μΈ κ²½μš°κ°€ 더 보편적이고, κ·Ήμ†ŒλŸ‰μ˜ μž‘μ—…λ§Œ μˆ˜ν–‰ν•˜λ„λ‘ λ§Œλ“€μ–΄μ§‘λ‹ˆλ‹€.

μ½˜ν…μΈ  제곡자

  1. μ½˜ν…μΈ  μ œκ³΅μžλŠ” 파일 μ‹œμŠ€ν…œ, SQLite DB, μ›Ήμƒμ΄λ‚˜ 앱이 μ—‘μ„ΈμŠ€ν•  수 μžˆλŠ” λ‹€λ₯Έ λͺ¨λ“  영ꡬ μ €μž₯ μœ„μΉ˜μ— μ €μž₯ κ°€λŠ₯ν•œ μ•± λ°μ΄ν„°μ˜ κ³΅μœ ν˜• 집합을 κ΄€λ¦¬ν•©λ‹ˆλ‹€.
  2. λ‹€λ₯Έ 앱은 μ½˜ν…μΈ  제곡자λ₯Ό 톡해 ν•΄λ‹Ή 데이터λ₯Ό κ°€μ Έμ˜€κ±°λ‚˜, μ½˜ν…μΈ  μ œκ³΅μžκ°€ ν—ˆμš©ν•  경우 μˆ˜μ •λ„ κ°€λŠ₯ν•©λ‹ˆλ‹€.
  3. 예λ₯Ό λ“€μ–΄ AndroidλŠ” μ—°λ½μ²˜ 정보에 λŒ€ν•œ μ½˜ν…μΈ  제곡자λ₯Ό μ œκ³΅ν•˜λŠ”λ°, κΆŒν•œμ„ 가진 앱이라면 컨텐츠 제곡자λ₯Ό 톡해 μΈλ¬Όλ“€μ˜ μ—°λ½μ²˜ 정보λ₯Ό 가져와 앱듀을 μœ„ν•΄ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.