ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π±Π°ΠΉΡ ΠΊΠΎΠ΄ Π½Π° Π°Π½Π΄ΡΠΎΠΈΠ΄Π΅
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΠ‘ Android
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π·Π°Π΄Π°ΡΡΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ Android-Π³Π°Π΄ΠΆΠ΅ΡΠ°, Π²Π΅Π΄Ρ ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Β«Π·Π²ΠΎΠ½ΠΈΠ»ΠΊΠ°Β» Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΎ ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΎΠΌ, ΠΈ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΌΠ΅Π΄ΠΈΠ°ΠΏΠ»Π΅Π΅Ρ, Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΠ»Π°Π½ΡΠ΅Ρ.
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΠ²ΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Android.
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Android-ΡΡΡΡΠΎΠΉΡΡΠ² ΡΠ»ΡΡΠ°Π»ΠΈ ΠΎ ΡΠ°ΠΊΠΈΡ ΠΏΠΎΠ½ΡΡΠΈΡΡ , ΠΊΠ°ΠΊ ΠΎΠ΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΈ Π΄Π΅ΠΎΠ΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ°. ΠΠ° Π΄Π°Π½Π½ΡΡ ΡΠ΅ΠΌΡ ΠΌΡ ΡΠΆΠ΅ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ°ΡΡΡ. Π’Π°ΠΊ Π²ΠΎΡ, ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ disabling verify-bytecode, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ°Ρ ΡΠΎ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ (256-512 ΠΠ±Π°ΠΉΡ) ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΡΠΈΡΠ°Π»ΠΎΡΡ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠΉ ΡΠ²ΠΈΠΊ Π°ΠΊΡΡΠ°Π»Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΄Π΅ΠΎΠ΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ, Π½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΈ Π΄Π»Ρ ΠΎΠ΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ. Π‘ΡΠ°Π·Ρ ΠΎΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²Π°ΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ.
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ, Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Root-ΠΏΡΠ°Π²Π° ΠΈ ΠΈΠ½ΡΡΠ°Π»Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Root Explorer, Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ , ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Android Terminal Emulator.
ΠΡΠ°ΠΊ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π±Π΅ΠΊΠ°ΠΏΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ , ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π² Π½Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
setprop dalvik.vm.verify-bytecode false
setprop dalvik.vm.dexopt-flags v=n, o=v
ΠΠ°Π»Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Root Explorer, Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ°ΠΉΠ» build.prop, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ system. ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΠ΄Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ:
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΈΠ· ΡΡΡΠΎΡΠ΅ΠΊ ΡΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΡΠ°ΠΉΠ»Π΅, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²ΡΡΠ΅, Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠ² Π±ΡΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ!
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π», ΠΊΡΠ΄Π° Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ:
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ ΡΠ°Π΄ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π²Π΄ΡΡΠ³ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ²ΠΈΠΊΠ°, ΡΠΎ Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, ΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π²Π²Π΅ΡΡΠΈ ΡΡΠ΄Π° ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
setprop dalvik.vm.verify-bytecode true
ΠΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΡΡΡΡΡΠΉ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ Π·Π°ΠΏΡΡΠΊ Π»ΡΠ±ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΈΠ½ΡΡΡ β Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎΡΡΠΈ ΡΠ°Π΄ΠΈ ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΡΡΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ΅Π΄ΠΊΠΎ. ΠΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΊΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ microSD.
Π§ΡΠΎ Π·Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π±Π°ΠΉΡ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ?
Π‘Π΅ΠΉΡΠ°Ρ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² ΠΊΠ°ΡΠΌΠ°Π½Π΅ Π»Π΅ΠΆΠΈΡ ΠΏΠ»Π°Π½ΡΠ΅Ρ ΠΈΠ»ΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΡΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, ΠΏΡΡΡΡ ΠΈ Π½Π΅ ΡΠ°ΠΌΡΠΉ ΠΌΠΎΡΠ½ΡΠΉ. ΠΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΈΠ»ΠΈ ΡΡΠ΅Π±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΏΠΎΠ»Π½Π΅, Π±Π΅Π· Π²ΡΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΠΎΠΊ ΠΈ ΠΏΠ»ΡΡΠΎΠΊ Ρ Π±ΡΠ±Π½Π°ΠΌΠΈ. Π ΡΠ²ΡΠ·ΠΈ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ², Π΄Π»Ρ Π½ΠΈΡ ΡΡΠ°Π»ΠΈ Π°ΠΊΡΡΠ°Π»ΡΠ½Ρ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΡΠΎ ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ².
ΠΠΈΡΡΡΡ
ΠΠ»Π°Π²Π½Π°Ρ ΡΠ³ΡΠΎΠ·Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ β ΡΡΠΎ Π°ΡΠ°ΠΊΠ° Π²ΠΈΡΡΡΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ Π½Π΅ ΡΡΠΈΡΠ°ΡΡ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°ΠΌ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. Π’Π΅Π»Π΅ΡΠΎΠ½Ρ ΠΈΠ³ΡΠ°ΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΡΡ ΡΠΎΠ»Ρ Π² ΠΆΠΈΠ·Π½ΠΈ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ Π½Π° Π½ΠΈΡ
Ρ
ΡΠ°Π½ΠΈΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΡ ΠΎΠ±ΡΡΠ½ΡΡ
ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² Π΄ΠΎ Π΄Π°Π½Π½ΡΡ
ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ ΠΈΠ»ΠΈ ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ. ΠΡΠ΅ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΡΡΠ°ΡΠ°ΡΡΡΡ ΡΡΠ°ΡΠΈΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ.
Π ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π°Π½ΡΠΈΠ²ΠΈΡΡΡΡ, ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ»Π°ΡΠ½ΡΠ΅ ΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ ΡΠ²ΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ, ΡΠ°ΠΊ ΡΡΠΎ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π·Π½Π°Ρ. ΠΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠ΅Π»Π΅ΡΠΎΠ½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ Π°Π½ΡΠΈΠ²ΠΈΡΡΡΠ°.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π±Π°ΠΉΡ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΊΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ int Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΠΊΠΎΠ΄ Π² ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΠ΅ Java.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π΄ΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅, ΡΡΠΎ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΉΠΌΠ°Π΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ β Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½ Π² ΡΡΠΎΠΌ, Π½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·.
Π ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ, ΡΡΠΎ ΠΏΡΠ½ΠΊΡ Π΄Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°ΡΠΈΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈΠ· Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ². ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΏΠΎΠ±Π°ΠΉΡΠ½ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΡΡΠΏΡΠΈΠ·ΠΎΠ² Π±ΡΡΡ Π½Π΅Π΄ΠΎΠ»ΠΆΠ½ΠΎ. ΠΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π²Π½Π΅Π·Π°ΠΏΠ½Π°Ρ ΡΠΌΠ΅Π½Π° ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ
, Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠ»Π΅Π·Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠ΅Π»Π΅ΡΠΎΠ½ ΠΏΠΎ ΡΠΈΡ
ΠΎΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅.
ΠΠΏΡΡΡ ΠΆΠ΅, Π·Π΄Π΅ΡΡ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π£ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π΅ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡ, Π° ΠΎΠ±ΡΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°ΠΉΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΎ Π΄Π°ΠΆΠ΅ ΡΠ°ΠΊ, ΡΡΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ Π½ΠΈΡΠ΅Π³ΠΎ. Π’Π°ΠΊ ΡΡΠΎ ΡΡΠΎΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ±Π°ΠΉΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π½Π΅Ρ ΡΠ΅ΡΠ°ΡΡ Π²Π°ΠΌ.
ΠΡΠ΅ ΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅
ΠΠΎΠ½ΡΡΠ°Π½ΡΠΈΠ½ ΠΠ²Π°Π½ΠΎΠ²
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠΏΡΡΡΠ°Π½Ρ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅ β ΡΠΏΡΡΡΠ°Π½Ρ Π² ΠΏΡΡΠΌΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΡΠ»ΠΎΠ²Π°. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½Π°Ρ ΠΈΠ΄ΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ USB ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ ART, Π½ΠΎ ΠΊΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, Π·Π΄Π΅ΡΡ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ΅Π»ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π½Π°ΡΡΡΠΎΠ΅ΠΊ. ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ, Π½ΠΎ ΡΠ°Π·Π²Π΅ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π² Π½Π΅Π΄ΡΠ°Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°?
Β«Π Π°Π·Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΒ» ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π² ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅
ΠΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ Π²ΡΡΠ΅, ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΊΡΡΡΡ. ΠΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ», ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΠΉΡΠΈ ΠΈΡ ΠΏΡΠΎΡΡΠΎ, Π° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Ρ Π»ΡΠ΄Π΅ΠΉ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΡΠΎΡΡΡ Π½Π΅ Π½ΡΠΆΠ½Ρ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΡΠ°ΡΡΡΡ Π΄ΠΎ Π½ΠΈΡ , ΠΈΠ΄Π΅ΠΌ Π² ΡΠ°Π·Π΄Π΅Π» Β«ΠΠ± ΡΡΡΡΠΎΠΉΡΡΠ²Π΅Β» ΠΈ ΠΈΡΠ΅ΠΌ ΡΠ°ΠΌ ΠΏΡΠ½ΠΊΡ Β«ΠΠΎΠΌΠ΅Ρ ΡΠ±ΠΎΡΠΊΠΈΒ». ΠΠΎΡΠ»Π΅ ΠΏΡΡΠΈ Π±ΡΡΡΡΡΡ ΡΠ°ΠΏΠΎΠ² ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ β ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΡΠΈΡΠ°Π΅Ρ Π²Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΡΡΠΈΡΡ, Π»Π°Π΄Π½ΠΎ? ΠΡ, ΠΈΠ»ΠΈ Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ β ΡΠΎΠΆΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ. Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π²Π°Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅Π΅ΡΡΡ.
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Π΅Π΅.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ
ΠΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π²ΡΠ΅ ΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½ΠΈ Π½Π° ΡΡΠΎ Π½Π΅ ΡΠ΄Π°Π»ΠΈΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π»Π΅Π·ΡΡ ΡΡΠ΄Π° ΠΈ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ Π½Π° ΠΏΡΠ½ΠΊΡΡ ΠΌΠ΅Π½Ρ ΡΠ°Π΄ΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° β Π½Π΅ Π»ΡΡΡΠ°Ρ ΠΈΠ΄Π΅Ρ. ΠΠΎ Π²ΡΠ΅Π³Π΄Π° ΡΡΠΎΠΈΡ Π·Π½Π°ΡΡ, ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Ρ ΠΎΡΡ Π±Ρ ΠΈ ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎΠ³ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π°.
ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ Π½Π°Ρ ΡΠ°ΡΡΠΊΠ°Π· ΠΏΡΠΎΡΠ²Π΅ΡΠΈΠ» Π²Π°Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ Π²ΠΎΠΏΡΠΎΡΡ ΡΡΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΈ ΠΎΠΏΡΠΈΠΉ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ. ΠΡΡΠ°ΡΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΠ‘ Android, Π½Π°Π±ΠΎΡ ΠΏΡΠ½ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌΠΈ ΠΈ ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Java
May 15 Β· 6 min read
ΠΠ°ΠΆΠ΄ΠΎΠΌΡ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΡΡ ΡΠΎΠ»Ρ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ·ΡΠΊΠ° ΠΈΠ³ΡΠ°Π΅Ρ JVM. ΠΠ΄Π½Π°ΠΊΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ JVM ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ. Π₯ΠΎΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Java ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠΎΠ΄ ΡΡΠ°Π½Π΅Ρ Π»ΡΡΡΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ Π³Π»ΡΠ±ΠΆΠ΅ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅ JVM, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΊ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ JVM.
ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄. ΠΡΠ°ΠΊ, ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π²Π²ΠΎΠ΄Π΅ ΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Java ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ Π²Π»ΠΈΡΠ΅Ρ Π½Π° JVM Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Java?
ΠΡΠ»ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ Π²Ρ ΡΠ»ΡΡΠ°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΏΠΎΠ²Π΅Π΄ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Ρ.
ΠΠ°ΠΊ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄?
ΠΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Java?
ΠΡΠ»ΠΈ Π²Π°ΠΌ Ρ ΠΎΡΠ΅ΡΡΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΠΌ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± β Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ JVM
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΡΡΠΎΠΈΡ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ JVM Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ.
ΠΠ΅ΡΠΎΠ΄Ρ β ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ JVM. Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β ΡΡΠΎ, ΠΏΠΎ ΡΡΡΠΈ, Π½Π°Π±ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ JVM. JVM ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΠ΅ΠΉΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌ Π½Π°Π²Π΅ΡΡ ΡΡΠ΅ΠΊΠ° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π€ΡΠ΅ΠΉΠΌ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°ΡΡΠΈΠ² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΡΡΠ΅ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ². ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ.
ΠΠ°ΡΡΠΈΠ² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΠ°ΡΡΠΈΠ² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ Ρ ΡΠ°Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄.
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°: ΠΎΠ΄ΠΈΠ½ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, Π½ΠΎ ΡΡ ΠΎΠΆΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ.
ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π‘ΡΠ΅ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ²
Π‘ΡΠ΅ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² β ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π²Π½ΡΡΡΠΈ ΡΡΠ΅ΠΉΠΌΠ° ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΡΠ΅ΠΊ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΠΈ Π·Π°Π±ΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π²Π΅ΡΡ Π½Π΅ΠΉ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π»ΠΈΠ±ΠΎ ΡΡΠ°ΡΡΠ²ΡΡΡ Π² ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΡΡΠ΅ΠΊ, Π»ΠΈΠ±ΠΎ Π·Π°Π±ΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° load ΠΈ Π΅Π΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ ΡΠ°Π½ΡΡΠ΅Π³ΠΎΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π² ΡΡΠ΅ΠΊ. ΠΠ½ΡΡΡΡΠΊΡΠΈΡ store ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄
Π Π°Π΄ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²Π³Π»ΡΠ΄Π΅ΡΡΡΡ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΠΏΡΠΎΡΡΠΎΠΉ Java-ΠΊΠ»Π°ΡΡ:
ΠΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°
ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ: ΠΈΠ½Π΄Π΅ΠΊΡΡ, Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° β ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
Π§ΠΈΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡ Π΅Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ°. Π Π»ΡΠ±ΠΎΠΉ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΡ ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ², Π·Π° ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½ΠΎΠ»Ρ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ².
ΠΡΠ²ΠΎΠ΄
ΠΠ°Π΄Π΅ΡΡΡ, Π²Π°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ·Π½Π°ΡΡ ΠΊΠΎΠ΅-ΡΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Java. Π‘ ΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΠΊΠΈΠΌ Π·Π½Π°Π½ΠΈΠ΅ΠΌ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΡΡΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ°ΠΌΠΈΠΌ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ ASM.
Π ΡΡΡΠΊΠΈΠ΅ ΠΠ»ΠΎΠ³ΠΈ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Android-Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄
ΠΡΡΠ°Π²ΠΊΠ° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, ΡΠΎ Π΅ΡΡΡ ΡΠ°ΠΉΠ»Π° ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ.
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π±Π΅Π· ΡΠΊΡΡΡΡΡ ΡΠΎΡΠ΅ΠΊ. ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ²ΠΎΠ΄ΠΎΠΊ Π·Π΄Π΅ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΈΡΠΎΠΊ, ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ:
ΠΠ°ΠΊΠΈΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ?
ΠΡΠΏΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΠΠ)
ΠΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ ΠΌΠ½Π΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ Π·Π½Π°ΠΊΠΎΠΌΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ: Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΈ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ. Π ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ»Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, ΡΡΠΎ ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ΄ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΊΠ»Π°ΡΡΡ. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠ»Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ.
ΠΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠΈ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π΄Π΅ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π½Π°Π΄Π΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΆΡΡΠ½Π°Π»Π° Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΈΠ΄Π΅Π΅ ΠΠΠ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ»Π΅Π΄ΡΠ΅ΡΠ΅ ΠΈΠ΄Π΅Π΅ ΠΠΠ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π² ΠΊΡΡΠΎΡΠΊΠΈ. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ Π² ΡΠ°Π·Π΄Π΅Π», ΠΈ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ AOP ΠΈΠ³ΡΠ°Π»ΠΈ Π²ΡΠ΅ Π²ΠΈΠ΄Ρ Π³Π°Π½Π³ΡΡΠ΅ΡΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΡΠ΅Π΄Π° ΠΊΡΠΎΡΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠ°Ρ ΠΊΠ°ΠΊ Spring. ΠΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Ρ AOP Π±ΡΠ», ΠΊΠΎΠ³Π΄Π° Ρ ΠΈΠ·ΡΡΠ°Π» ΡΡΠ΅Π΄Ρ Spring. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ AOP ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΊΡΠΈ.
ΠΡΠΎΡΠ΅ΡΡ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Android
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Gradle
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Transform API
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π²Π²ΠΎΠ΄ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Transform ΠΠΎ Π²Π΅ΡΡΠΈΠΈ 1.5 ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Gradle Π΄Π»Ρ Android ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π» ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ API ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ, Π° Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 2.0 ΠΎΠ½ Π±ΡΠ» Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² API Gradle.
Gradle 1.5:
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Gradle 2.0:
ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²ΡΡΠ΅ ΠΊΠ°ΡΡΠΈΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»ΡΡΠ°Π΅Π² Transform. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄Π²Π° Π²Ρ ΠΎΠ΄Π°, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Π΅ΠΌ, ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, Π° Π΄ΡΡΠ³ΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ»ΠΊΠΎΠΉ, ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΡΠΈ Π²Ρ ΠΎΠ΄Ρ Π±Π΅Π· Π²ΡΠ²ΠΎΠ΄Π° Π² Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ Instant Run, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡΠΌΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ ΠΊΠΎΠ΄Ρ. ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΎΡΠ΅Π½Ρ ΡΠ΅ΡΠΊΠΈΠ΅. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ CLASSES (0x01) ΠΈ RESOURCES (0x02), ΡΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΡΠΈΠΏΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Transform Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° Transform Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΡΠ΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°, ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ TransformManager.SCOPE_FULL_PROJECT Π΄Π»Ρ Scope. ΠΊΠΎΡΠΎΡΡΠΉ
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎΠ³Π΄Π° ΠΌΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ / ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ / Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Transform:
ΠΠ±ΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ²ΠΎ: Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ:
ΠΠ»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ transform, ΡΡΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ outProvider. Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠΈΡΡΠ½ΠΎΠΊ Π½ΠΈΠΆΠ΅ Π΄Π»Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
ΠΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ ΠΏΠΎΠ·ΠΆΠ΅. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΄ΠΈΠ½ transformJar ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ, Π° Π΄ΡΡΠ³ΠΎΠΉ transformDirectory. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ASM Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°.
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ Π² ΠΏΠ»Π°Π³ΠΈΠ½Π΅ Gradle
ΠΠ°ΠΉΡ-ΠΊΠΎΠ΄ Java
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Java-ASM
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ASM?
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎΠΈΡ Π²ΡΠ±ΡΠ°ΡΡ ASM Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°?
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠΈ ΠΏΡΠΎΠ²Π΅Π»ΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Netease
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π²ΡΡΠ΅, ASM Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ»ΠΊΠ° Π²ΡΡΠΎΠΊΠΎΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΡΡΠΎΠ²Π½Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ Π²Π°ΠΆΠ½Π΅Π΅.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π±Π°Π·ΠΎΠ²ΡΠΉ API
(1) ClassVisitor Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ
ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, ClassVisitor ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΡΠΎ ΠΈ Ρ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΡΠ°ΡΡΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ: | visitField | visitMethod) * visitEnd
public abstract class ClassVisitor <
(2) ClassReader class
(3) ΠΠ»Π°ΡΡ ClassWriter
οΌ4οΌMethodVisitor & AdviceAdapter
MethodVisitor ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ, ΠΈ ΠΊΠΎΠ³Π΄Π° ClassReader ASM ΡΠΈΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄, ΠΎΠ½ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ MethodVisitor Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
AdviceAdapter ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ MethodVisitor. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ AdviceAdapter ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΈΠ· Π½ΠΈΡ
ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
(5) ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ FieldVisitor
FieldVisitor ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ, ΠΈ ΠΊΠΎΠ³Π΄Π° ClassReader ASM ΡΠΈΡΠ°Π΅Ρ Field, ΠΎΠ½ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ FieldVisitor Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π° MethodVisitor, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Ρ Π·Π΄Π΅ΡΡ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
Π ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Π½Π΅ΡΠ΅Π³ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ:
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ASM4.pdf
https://www.ibm.com/developerworks/cn/java/j-lo-asm30/
https://www.jianshu.com/p/905be2a9a700
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ ASM, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΉΠ» ΠΊΠ»Π°ΡΡΠ°, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ
ΠΡΠ΄ΠΈ Π²ΡΠ΅Π³Π΄Π° Π»Π΅Π½ΠΈΠ²Ρ, ΠΏΡΡΠ°ΡΡΡΡ Π½Π°ΠΉΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ»ΡΠΊΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ Idea.ASM Bytecode Outline
ASM Bytecode Outline
Π‘ΠΌ. Https://blog.csdn.net/ouyang_peng/article/details/100566678 Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠ»Π°Π³ΠΈΠ½ ASM Bytecode Outline, ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Java-ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ASM, Π·Π°ΡΠ΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ°, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ASM, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ Π² ΠΏΠ»Π°Π³ΠΈΠ½, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³ Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ»Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠ°ΡΡΠΈΡΠΌΠΈ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΏΠ»Π°Π³ΠΈΠ½Π΅ Gradle.
TraceLog
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Gradle + ASM ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ ΡΠΎΠΉ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΡΡΠΎ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° hugo JakeWharton.ΠΡ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π°Π½Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΠ΅ΡΠ°ΡΠ°ΡΡΡΡ Π² Logcat, ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
ΠΠ΅ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° 3 ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠ°Ρ ΡΡΠΎΡΠΎΠ½Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ @TraceLog. ΠΠΎΠ΄ΡΠ»Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Gradle. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠ΅ΡΠ°ΡΡ ΠΆΡΡΠ½Π°Π»Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ Π±ΠΈΠ·Π½Π΅ΡΠΎΠΌ, ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ°ΡΠΈ ΠΆΡΡΠ½Π°Π»Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠΎΠ΄ΡΠ»Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΎΠΏΠΈΡΠ°Π΅ΡΡΡ Π½Π° traceLibrary ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ Π² traceLibrary Π΄Π»Ρ ΠΏΠ΅ΡΠ°ΡΠΈ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΠΏΡΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠ².
apply plugin: βgroovyβ
// ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΎΡ ΠΏΠ»Π°Π³ΠΈΠ½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ uploadArchives
apply plugin: βmavenβ
dependencies <
// ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Gradle SDK
compile gradleApi()
// ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Groovy SDK
compile localGroovy()
implementation βcom.android.tools.build:gradle:3.5.2β
implementation βorg.ow2.asm:asm-all:5.2β
>
sourceCompatibility = β1.8β
targetCompatibility = β1.8β
uploadArchives <
repositories.mavenDeployer <
pom.version = β1.0.0β
pom.artifactId = βtracePluginβ
pom.groupId = βcom.example.watson.pluginβ
repository(url: βfile:///D:/repository/β)
>
>
TracePlugin.groovy
class TracePlugin implements Plugin<
class TraceTransform extends Transform <
class TraceVisitor extends ClassVisitor <
class TraceMethodVisitor extends AdviceAdapter <
2. Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ
ΠΠΈΠ΄Π½ΠΎ, ΡΡΠΎ TraceMethodVisitor ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Gradle Π±ΡΠ΄Π΅Ρ Π²ΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΈ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
apply plugin: βcom.android.libraryβ
android <
compileSdkVersion 29
buildToolsVersion β29.0.2β
dependencies <
compile βorg.ow2.asm:asm-all:5.2β
>
MethodCache.java
public class MethodCache <
public class MethodInfo <
public class Printer <
private static final String TAG = βTraceLogβ;
>
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ:
@Target(ElementType.METHOD)
public @interface TraceLog <
>
2. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
(1) ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² gradle.build ΠΏΡΠΎΠ΅ΠΊΡΠ°:
buildscript <
repositories <
maven <
url uri(βD:/repositoryβ)
>
>
dependencies <
classpath βcom.example.watson.plugin:tracePlugin:1.0.0β
>
>
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ Π·Π΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΎΠΉ, Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° Π½Π΅Π³ΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ
(2) ΠΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΊ build.gradle Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅:
apply plugin: com.example.watson.plugin.TracePlugin
Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
implementation project(β:tracelibraryβ)
ΠΠ΄Π΅ΡΡ Ρ Π½Π°ΠΏΡΡΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ° aar ΠΈΠ»ΠΈ Π·Π°Π³ΡΡΠΆΠ΅Π½ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
(3) ΠΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°ΠΌΠ΅ΡΠΊΠΈ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @TraceLog ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ
public class MainActivity extends AppCompatActivity <
private static final String TAG = βMainActivityβ;
ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡΠΈ ΡΠ°ΠΉΠ»-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ Π²ΠΏΠ»Π΅ΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄: