(Un) เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Habr เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™ - HabrApp 2.0: เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡

เบ•เบญเบ™เปเบฅเบ‡เปœเบถเปˆเบ‡เบ—เบตเปˆเบญเบดเบ”เป€เบกเบทเปˆเบญเบ เปเบฅเบฐเปœเป‰เบฒเป€เบšเบทเปˆเบญเบžเปเบชเบปเบกเบ„เบงเบ™, เบ‚เป‰เบญเบเป„เบ”เป‰เบเปˆเบฒเบ‡เบœเปˆเบฒเบ™ เบ—เบฒเบ‡เบเบฒเบ™ เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Habr, เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ‡เปเบ™เบดเป‰เบงเบกเบทเบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ, เบซเบ™เบถเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ. เบ—เบตเปˆเบ™เบตเป‰, เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเบฐเปเบ”เบ‡เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™, เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบ—เปˆเบฒเบ™เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เบชเบดเบ”เบ—เบดเปƒเบ™เบเบฒเบ™เบฅเบปเบ‡เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡, เปเบฅเบฐเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบชเบนเบ”เบšเปเปˆเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเบˆเป?

(Un) เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Habr เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™ - HabrApp 2.0: เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡
เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆ: เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบ, เบชเบธเบ, เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡. เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”เบเปˆเบฝเบงเบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡เบชเปเบฒเบฅเบฑเบš Habr?
เปƒเบซเป‰เบ‚เป‰เบญเบเป€เบญเบปเบฒเบžเบฒเบšเบซเบ™เป‰เบฒเบˆเปเป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™.

(Un) เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Habr เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™ - HabrApp 2.0: เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป€เบšเบดเปˆเบ‡เบ„เบทเปเบ™เบงเบ™เบตเป‰ เบกเบฑเบ™ - เบ‚เบญเบ‡. เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ habr.com

เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ "เบ„เบงเบฒเบกเบšเปเปˆเบชเบฐเบ”เบงเบ"

  • เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบซเป‰เบ„เบฐเปเบ™เบ™เบชเบดเปˆเบ‡เบžเบดเบกเบ—เบตเปˆเปƒเบซเป‰เบ„เบฐเปเบ™เบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบ 0
  • เบกเบฑเบ™เบšเปเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเบฐ เป€เปเบต เป„เบ›เบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™ เบ„เบณ เป€เบซเบฑเบ™
  • เปเบšเบšเบชเบณเบซเบผเบงเบ”เปƒเบŠเป‰เบšเปเปˆเป„เบ”เป‰
  • เบชเบนเบ”เบšเปเปˆเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบฎเบนเบšเปเบšเบšเบชเบตเบกเบทเบ” (เบชเบตเบ”เปเบฒเป€เบ—เบดเบ‡เบชเบตเบ”เปเบฒ)
  • เบšเปเปˆเปเบกเปˆเบ™เบšเบธเบเบกเบฒเบเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆ

เปเบกเปˆเบ™เปเบฅเป‰เบง, เปเบญเบฑเบšเบšเปเปˆเป„เบ”เป‰เบญเบฑเบšเป€เบ”เบ”เบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบ”เบทเบญเบ™เบชเบดเบ‡เบซเบฒเบ›เบตเบเบฒเบเบ™เบตเป‰, เปเบ•เปˆเบกเบฑเบ™เบเบฑเบ‡เบšเปเปˆเบ”เบตเบขเบนเปˆ. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เปเบเป‰เป„เบ‚.

เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡. เบŠเบญเบเบซเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡.

Google Query เบ”เปˆเบงเบ™ "habrahabr API" เบกเบฑเบ™เบšเบญเบเบงเปˆเบฒเบกเบฑเบ™เบฅเป‰เบฒเบชเบฐเป„เบซเบกเปเบฅเป‰เบง เบ„เบฑเบ‡เป€เบเบฑเบšเบกเป‰เบฝเบ™ เปƒเบ™ Github, เบšเปเปˆเป„เบ”เป‰เบ›เบฑเบšเบ›เบธเบ‡เบ•เบฑเป‰เบ‡เปเบ•เปˆเบ™เบฑเป‰เบ™เบกเบฒ เบžเบฐเบˆเบดเบ 21 2016, เปเบฅเบฐเบ™เบตเป‰, เบชเปเบฒเบฅเบฑเบšเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบชเบญเบ‡เบ›เบตเป€เบ„เบดเปˆเบ‡.

เบšเปเปˆเบชเบปเบ™เปƒเบˆเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™ PHP, เป€เบฅเบทเปˆเบญเบ™เบฅเบปเบ‡เปเบฅเบฐเบญเปˆเบฒเบ™:

เบเบณเบฅเบฑเบ‡เบฎเบฑเบš ID เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™

เปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ” เปเบšเบšเบŸเบญเบกเบ™เบตเป‰ เปƒเบ™ Habrahabr, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเบชเบฑเป‰เบ™เป†เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปƒเบซเบกเปˆเปเบฅเบฐเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบตเปˆเบกเบฑเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™ API.

เบšเปเปˆเบกเบตเบ„เปเบฒเบ–เบฒเบก, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบกเบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบˆเบปเบ”เบซเบกเบฒเบ (เบซเบเปเป‰):

เบเบฒเบ™เบ‚เบฝเบ™

เบกเบตเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบš Habr เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PWA. เบกเบตเบซเบผเบฒเบเป€เบซเบ”เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰. 

เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบˆเบฐเปเบˆเป‰เบ‡เบ—เบตเปˆเบชเบธเบ”: เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Android เบšเปเปˆเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ.

เบญเบฑเบ™เบ—เบตเบชเบญเบ‡: เบšเปเปˆเบกเบตเบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบžเบฝเบ‡เบžเปเบเปˆเบฝเบงเบเบฑเบšเบ—เบธเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เบ—เบตเปˆเบกเบฑเบเบˆเบฐเบกเบฒเบ—เบฒเบ‡เบญเบตเป€เบกเบฅเปŒ (เบ„เปเบฒเป€เบซเบฑเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡).

เบญเบฑเบ™เบ—เบตเบชเบฒเบก: เบเบฒเบ™เบเปˆเบญเบเบชเบฐเบซเบผเบฒเบเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™ (เบ•เบฒเบกเบ—เบฑเบ”เบชเบฐเบ™เบฐ) เบเปˆเบฝเบงเบเบฑเบšเบ„เบปเบ™/เบชเบนเบ™เบ—เบตเปˆเบชเบปเบ™เปƒเบˆเบ‚เป‰เบญเบ, เป‚เบ”เบเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบ.

เบ„เปเบฒเบ•เบญเบš, เปเบ™เปˆเบ™เบญเบ™, เบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเบชเบธเบเบซเบผเบฒเบ, เปเบ•เปˆเบขเปˆเบฒเบ‡เบ™เป‰เบญเบเบ”เป‰เบงเบเบ„เบงเบฒเบกเบŠเบทเปˆเบชเบฑเบ”:

เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ API เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เปƒเบ™เบ‚เบฐเบ™เบฐเบ™เบตเป‰. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบกเบตโ€‹เปเบœเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบชเบทเบšโ€‹เบ•เปเปˆโ€‹เบเบฒเบ™โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ” API, เปเบ•เปˆโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบเบฑเบ‡โ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบงเบฑเบ™โ€‹เบ—เบตโ€‹เบ—เบตเปˆโ€‹เปเบ™เปˆโ€‹เบ™เบญเบ™โ€‹เปƒเบ”เป†โ€‹, เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒ เบ•เบญเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบเบณเบฅเบฑเบ‡เบซเบเบธเป‰เบ‡เบขเบนเปˆเบเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบงเบฝเบเบ‡เบฒเบ™เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบญเบทเปˆเบ™เป†.

โ€œเบ•เบปเบเบฅเบปเบ‡, เบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒ! เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบšเบฒเบ‡โ€‹เบขเปˆเบฒเบ‡โ€‹! - เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบšเบญเบโ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹เปเบฅเบฐโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹.

เบชเปˆเบงเบ™เบชเบญเบ‡. เบเบฒเบ™เบ‚เบธเบ”เบ‚เบธเบกเป€เบฅเบดเบ.

เบญเบตเบ‡เบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™, เบ–เป‰เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบเปเบฒเบฅเบฑเบ‡เปเบฅเปˆเบ™, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ API เป„เบ”เป‰, เปเบฅเบฐเบกเบฑเบ™เบ–เบทเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™. เปƒเบซเป‰เบงเบดเป€เบ„เบฒเบฐ.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™, Wireshark เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบšเปเปˆเปเบกเปˆเบ™เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเป€เบˆเบฑเบšเบ›เบงเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡, เป‚เบ”เบเป„เบ”เป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ—เบฅเบฐเบชเบฑเบšเบเบฑเบšเบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เบœเปˆเบฒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบต desktop, เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป:

(Un) เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Habr เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™ - HabrApp 2.0: เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡
เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบˆเบฐเปเบˆเป‰เบ‡

เปเบกเปˆเบ™เปเบฅเป‰เบง, เบ—เบธเบเบขเปˆเบฒเบ‡เบ–เบทเบเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”, เปเบ•เปˆเบ‚เป‰เบญเบเบšเปเปˆเบขเบฒเบเบซเบเบธเป‰เบ‡เบเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบฅเบฑเบš. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบšเบดเปˆเบ‡เบžเบฒเบเปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡.

Decompiled .apk, เปƒเบซเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบšเบดเปˆเบ‡. API เบ•เป‰เบญเบ‡เบเบฒเบ™เบซเบเบฑเบ‡? เบชเบดเบ”, endpoint, เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบšเปˆเบญเบ™เบ—เบตเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ›. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™ http(s), เปƒเบซเป‰เบžเบฐเบเบฒเบเบฒเบกเบŠเบญเบเบซเบฒ "https://":

เปƒเบ™เป„เบŸเบฅเปŒ AuthLinkManager.smali เบžเบงเบเป€เบฎเบปเบฒเบŠเบญเบเบซเบฒ

.field OAUTH:Ljava/lang/String; = "https://habrahabr.ru/auth/o/%s/"
.field OAUTH_PARAMS:Ljava/lang/String; = "?client_id=%s&response_type=token&redirect_uri=%s"
.field OAUTH_REDIRECT_URL:Ljava/lang/String; = "http://cleverpumpkin.ru"

เบ™เบตเป‰เปเบกเปˆเบ™เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡ virtual Android (Dalvik VM), เบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบกเบฐเบ™เบธเบ”, เปเบ•เปˆเบเบฑเบ‡เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ‚เปˆเบฒเบงเบชเบฒเบ™. เบชเบฒเบกเบ•เบปเบงเบ„เบปเบ‡เบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เป‚เบ”เบเป€เบ™เบทเป‰เบญเบซเบฒเปเบฅเบฐเบŠเบทเปˆเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ GitHub, เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เบกเบต token เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™. GET.

เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ•เบทเปˆเบกเบญเบตเบ. เป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบ•เปเปˆเป„เบ›เปƒเบ™เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเปเบกเปˆเบ™ NetworkModule.smali:

const-string v0, "https://habr.com/api/v1/"

เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบˆเบฐเป„เบ›เบเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ‚เบญเบ‡เบ—เปˆเบฒเบ™!

เบชเปเบฒเบฅเบฑเบšเบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเบ‚เบฝเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบชเบดเปˆเบ‡เบ”เบฝเบงเบ—เบตเปˆเบˆเบฐเบ„เบดเบ”เบญเบญเบ - client_id, เป€เบŠเบดเปˆเบ‡เบชเปˆเบงเบ™เบซเบผเบฒเบเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเบฅเบฐเบšเบธเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบชเปเบฒเบฅเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบเบฒเบ™เบŠเบญเบเบซเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบ™เบตเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบšเปเปˆเป„เบ”เป‰เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบŠเบญเบเบซเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡ ...

เปเบ•เปˆเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เปƒเบ™เป„เบŸเบฅเปŒเบซเบ™เบถเปˆเบ‡เบ•เบฒเบ‚เบญเบ‡เบ‚เป‰เบญเบเป„เบ”เป‰เบˆเบฑเบšเบšเบฒเบ‡เบชเบฒเบเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ:

const-string p8, "log-tag"
invoke-static {p8, p2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

เบ™เบตเป‰, เบ•เบฒเบกเบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเปƒเบˆ, เปเบกเปˆเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบšเบฑเบ™เบ—เบถเบ. เปเบ•เปˆเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเปเบกเปˆเบ™เบซเบเบฑเบ‡?

เบชเปˆเบงเบ™เบชเบฒเบก. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เป„เบกเป‰เบ—เปˆเบญเบ™!

เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ adb logcat เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบšเบฑเบ™เบ—เบถเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ.

(Un) เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Habr เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™ - HabrApp 2.0: เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡

เป‚เบ”เบเบšเปเปˆเบ„เบฒเบ”เบ„เบดเบ”, เบšเบฑเบ™เบ—เบถเบเป„เบ”เป‰เบเบฒเบเบกเบฒเป€เบ›เบฑเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบซเบผเบฒเบเบเบงเปˆเบฒเบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰.

เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™ client_idเปเบ•เปˆ เป‚เบ—เป€เบ„เบฑเบ™ เบœเบนเป‰โ€‹เปƒเบŠเป‰ / เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹, เปเบฅเบฐโ€‹ เป€เบ‚เบปเป‰เบฒโ€‹เบชเบนเปˆโ€‹เบฅเบฐโ€‹เบšเบปเบš ะธ เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™ เปƒเบ™โ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เปเบˆเป‰เบ‡โ€‹!

เบšเบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบตเบชเบปเบกเบฎเบนเป‰เบฎเปˆเบงเบกเบ„เบดเบ”เบเบฒเบ™เบกเบตเบžเบฝเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบ—เบถเบเบšเปเปˆเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบซเบเบฑเบ‡, เป€เบžเบฒเบฐเบงเปˆเบฒเบšเบฑเบ™เบ—เบถเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰เบ”เป‰เบงเบเบชเบดเบ”เบ—เบดเบ‚เบญเบ‡เบฎเบฒเบ เบซเบผเบทเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบœเปˆเบฒเบ™เบ—เบฒเบ‡. adb. เปเบ•เปˆเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเปƒเบ™เบšเบฑเบ™เบ”เบฒเบ„เบปเบ™เบ—เบตเปˆเบญเปˆเบฒเบ™ Habr เบกเบตเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ Android เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบเบฒเบ™เปเบเป‰เบšเบฑเบ™เบซเบฒ, เบ™เบตเป‰เบเบฒเบเป€เบ›เบฑเบ™เบšเบฑเบ™เบซเบฒ.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, "เบเบฒเบ™เบชเบฒเบเป„เบŸเบŸเบฃเบต" เบขเบนเปˆเบชเบฐเบซเบ™เบฒเบกเบšเบดเบ™เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบฅเบฑเบเบšเบฑเบ™เบŠเบต, เปเบ•เปˆเบงเปˆเบฒเปƒเบœเบ•เป‰เบญเบ‡เบเบฒเบ™เบกเบฑเบ™?
เบˆเบฒเบเบšเบฑเบ™เบ—เบถเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบชเบฐเบเบฑเบ”:

  • client_id ะธ apikeyเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ api;
  • URL เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰ (เปเบ›เบ, เปเบ•เปˆเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบ™เบตเป‰, เบšเบฒเบ‡เบ—เบตเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบšเป?)

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบกเบฑเบ™เป€เบเบตเบ”เบ‚เบถเป‰เบ™. เบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบ„เบปเป‰เบ™เบ„เบงเป‰เบฒเบ™เป‰เบญเบเป†เบ™เบตเป‰, เบงเบฝเบเบ‡เบฒเบ™เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆเปเบฅเป‰เบงเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ - เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบกเบทเบ–เบทเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบ‡. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ‚เปเปƒเบซเป‰เบœเบนเป‰เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบŠเปˆเบงเบเบ‚เบฝเบ™เบ‚เปเป‰เบ„เบงเบฒเบก, เปเบฅเบฐเบ—เบธเบเป†เบ„เบปเบ™ - เบ—เบตเปˆเบˆเบฐเบฅเบปเบ‡เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡ (เป€เบžเบฒเบฐเบงเปˆเบฒเบ‚เป‰เบญเบเบขเบฒเบเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบกเบตเปƒเบœเบ•เป‰เบญเบ‡เบเบฒเบ™เบ™เบตเป‰).

เบ‚เบญเบšเปƒเบˆเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเบ‚เบญเบ‡เบ—เปˆเบฒเบ™!

เบžเบฝเบ‡เปเบ•เปˆเบœเบนเป‰เปƒเบŠเป‰เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเปƒเบ™เบเบฒเบ™เบชเปเบฒเบซเบผเบงเบ”. เป€เบ‚เบปเป‰เบฒโ€‹เบชเบนเปˆโ€‹เบฅเบฐโ€‹เบšเบปเบšเบเบฐเบฅเบธเบ™เบฒ.

เป€เบˆเบปเป‰เบฒเปƒเบŠเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบกเบทเบ–เบท Habr เบšเป?

  • เปเบกเปˆเบ™เปเบฅเป‰เบง, เบ‚เป‰เบญเบเปƒเบŠเป‰เบกเบฑเบ™, เบ‚เป‰เบญเบเบกเบตเบ„เบงเบฒเบกเบชเบธเบเบเบฑเบšเบกเบฑเบ™

  • เปเบกเปˆเบ™เปเบฅเป‰เบง, เบ‚เป‰เบญเบเปƒเบŠเป‰เบกเบฑเบ™, เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบšเปเปˆเบชเบฐเบ”เบงเบ

  • เบšเปเปˆ, เบ‚เป‰เบญเบเปƒเบŠเป‰เป€เบงเบตเบŠเบฑเบ™เป€เบงเบฑเบšเบขเบนเปˆเปƒเบ™เป‚เบ—เบฅเบฐเบชเบฑเบšเบ‚เบญเบ‡เบ‚เป‰เบญเบ

  • เบšเปเปˆ, เบ‚เป‰เบญเบเปƒเบŠเป‰ Habr เบˆเบฒเบเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ

357 เบœเบนเป‰เปƒเบŠเป‰เบฅเบปเบ‡เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡. 30 เบœเบนเป‰เปƒเบŠเป‰เบ‡เบปเบ”.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™