Intro
Π‘ΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ
Component
Action
Extra data
ΠΠ»Ρ ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² IPC Π΄Π»Ρ:
ΠΠ°ΠΏΡΡΠΊΠ° Activity (ΠΎΠ±ΡΡΠ½ΠΎ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° UI)
Broadcast ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ°ΠΏΡΡΠΊ/ΠΎΡΡΠ°Π½ΠΎΠ² ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌΠΈ Π² background'Π΅
ΠΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΡΠ΅ΡΠ΅Π· ContentProvider
ΠΊΠ°ΠΊ callback Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ
Public and private component
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π· Intents, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ public ΠΈΠ»ΠΈ private. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ intent-filter, ΠΈ Π»Π΅Π³ΠΊΠΎ, ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±ΡΡΡ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡ public. Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ, Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΊΠ°ΠΊ android: exported = false
.
Public ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΊΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π»ΡΠ±ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½ΠΈΠΌ Π΄ΠΎΡΡΡΠΏ. ΠΡΠ»ΠΈ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅.
ΠΠ°Π½Π½ΡΠ΅, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΡΡΠ΅Π½Ρ.
Inter-app and Intra-app communications
Inter-app - ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Intra-app - Π΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Explicit and Implicit
Explicit - ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Implicit - ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ, intent-filter ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅ (ΠΈ ΡΠΎΠΎΡΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅). Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ Π²ΡΠ±ΠΎΡ, ΠΊΠ°ΠΊΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ½ΡΠ΅Π½Ρ. Implicit intent Π½Π΅Π»ΡΠ·Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ!
Π§ΡΠΎ Π±Ρ implicit intent ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ (ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅Π½ΡΡ), Π² Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π° category="android.intent.category.DEFAULT"
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ Π½ΠΈΡ ΡΡΠΎΠΈΡ Broadcast Intent - ΡΡΠΎΡ ΡΠΈΠΏ ΠΈΠ½ΡΠ΅Π½ΡΠΎΠ² Π΄ΠΎΠΉΠ΄Π΅Ρ Π²ΡΠ΅ΠΌ ΡΠ°ΡΠ³Π΅ΡΠ°ΠΌ, Π° Π½Π΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌΡ.
Security Mistakes
ΠΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· BroadcastIntent ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Explicit Intents
ΠΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ intent-filter Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²: Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΡΡΠ³ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π²Π°ΡΠΈ ΠΈΠ½ΡΠ΅Π½ΡΡ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ ΡΠ΅ΡΠ΅Π· broadcastintent?)
ΠΡΠΈΠΌΠ΅ΡΡ
ΠΠ°ΠΏΡΡΠΊ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Last updated