Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android Framework Code Readingのしおり ver 1.2

operandoOS
November 10, 2016

Android Framework Code Readingのしおり ver 1.2

Android Framework Code Readingのしおり ver 1.2

operandoOS

November 10, 2016
Tweet

More Decks by operandoOS

Other Decks in Technology

Transcript

  1. Android Framework

    Code Readingͷ͓͠Γ
    ver 1.2

    View Slide

  2. ໨ඪ

    View Slide

  3. ໨ඪ
    • ಡΈ࢝ΊΔʹ͸Ͳ͔͜Β୳ͤ͹͍͍ͷ͔Θ͔Δ
    • Android Frameworkͷίʔυ͕ͳΜͱͳ͘

    ಡΊΔΑ͏ʹͳΔ
    • ΋͏Androidා͘ͳ͍ (ʆŋωŋ´)

    View Slide

  4. ༻ҙ͢Δ΋ͷ

    View Slide

  5. ༻ҙ͢Δ΋ͷ
    • ͓޷ΈͷEditor
    • OpenGrok
    • https://sites.google.com/site/devcollaboration/codesearch
    • ΫιίʔυಡΜͰ΋Ί͛ͳ͍ؾ࣋ͪ
    • جຊ͜Ε͚ͩ

    View Slide

  6. ಡΈ΍͍͢؀ڥΛ࡞Δ
    • FirefoxͷπϦʔܕλϒͱ͍͏֦ு͕Φεεϝ
    • https://addons.mozilla.org/ja/firefox/addon/
    tree-style-tab/
    • ಡΜͰ͍Δίʔυͷϝιουݺͼग़͠ͷ֊૚
    ͱ͔؅ཧ͠΍͍͢

    View Slide

  7. ಡΈ΍͍͢؀ڥΛ࡞Δ
    ͜Μͳײ͡ʔ

    View Slide

  8. OpenGrok

    View Slide

  9. OpenGrok
    • ιʔείʔυΛϒϥ΢βͰӾཡͰ͖Δ΋ͷ
    • method΁ͷϦϯΫͱ͔షͬͯ͋ͬͯศརʂʂ
    • Androidͷιʔείʔυ΋OpenGrokԽͯ͋͠Γ·͢
    • ιʔείʔυखݩʹͳͯ͘΋ಡΊͯศརʂʂ

    View Slide

  10. OpenGrokʹ׳ΕΔ

    View Slide

  11. OpenGrokʹ׳ΕΔ
    • Full SearchΛࢦఆ͢Δ
    • File PathΛࢦఆ͢Δ
    • جຊ্̎ͭͰ͍͍ͩͨOK
    • ࠔͬͨΒHelpΛݟͯ࢖͍ํΛϚελʔ͢Δ
    • http://tools.oesf.biz/android-6.0.0_r1.0/help.jsp

    View Slide

  12. खݩʹίʔυΛμ΢ϯϩʔυ͢Δ
    • શ෦ͷιʔείʔυΛμ΢ϯϩʔυ͢Δͷ͸େม
    • OpenGrok͔ΒFile୯ҐͰμ΢ϯϩʔυͰ͖Δ
    • Α͘ࢀর͢ΔϑΝΠϧ͸μ΢ϯϩʔυ͓ͯ͘͠ͱศར
    • URLͷxrefͱrawʹͯ͠ΞΫηε͢ΔͱBrowser

    ܦ༝Ͱμ΢ϯϩʔυͰ͖Δ͸ͣ

    View Slide

  13. खݩʹίʔυΛμ΢ϯϩʔυ͢Δ
    http://tools.oesf.biz/android-6.0.0_r1.0/xref/
    frameworks/base/core/java/android/app/Activity.java
    http://tools.oesf.biz/android-6.0.0_r1.0/raw/frameworks/
    base/core/java/android/app/Activity.java

    View Slide

  14. ҙ֎ͱखݩʹ͍࣋ͬͯΔιʔείʔυ
    • Android SDK Manager͔ΒऔಘͰ͖Δ΋ͷ
    • /Applications/Android Studio.app/sdk/sources
    • /Applications/Android Studio.app/sdk/extras/
    android/support
    • /Applications/Android Studio.app/sdk/extras/
    android/m2repository/com/android/support

    View Slide

  15. खܰʹಡΊͦ͏ͳͱ͜Ζ
    • frameworks/
    • Android Frameworksશൠͷίʔυ
    • frameworks/base/core/java/
    • Android SDKશൠͷίʔυ

    View Slide

  16. खܰʹಡΊͦ͏ͳͱ͜Ζ
    • packages/apps/
    • γεςϜΞϓϦશൠͷίʔυ
    • http://tools.oesf.biz/android-6.0.0_r1.0/xref/
    packages/apps/Settings/
    • SettingsΞϓϦͷίʔυ(Φεεϝʂ)

    View Slide

  17. ໾ʹཱͪͦ͏ͳϦϯΫ·ͱΊͯ·͢
    https://github.com/AndroidFrameworkCodeReading/
    Android-Framework-Code-Reading

    View Slide

  18. GopenGrok
    https://github.com/operando/gopen-grok
    ίϚϯυϥΠϯ͔ΒOpenGrokͷ

    ݕࡧ͕Ͱ͖Δπʔϧ

    View Slide

  19. GopenGrok
    https://github.com/operando/gopen-grok
    $ gopen-grok -s Activity

    View Slide

  20. GopenGrok
    https://github.com/operando/gopen-grok

    View Slide

  21. GopenGrok Install
    https://github.com/operando/gopen-grok
    $ go get -d github.com/operando/gopen-grok
    $ go install github.com/operando/gopen-grok

    View Slide

  22. LogcatٯҾ͖

    View Slide

  23. LogcatٯҾ͖
    • LogcatʹྲྀΕ͍ͯΔϩά͸ίʔυ্ʹ

    ॻ͍ͯ͋Δ͸ͣ(ಈతͳ΋ͷҎ֎
    • ௐ΂͍ͨػೳͬΆ͍΋ͷ͕ྲྀͯ͠ΔLogcat͔Β
    ಛఆͷΩʔϫʔυͰݕࡧΛ͔͚Δ

    View Slide

  24. LogcatٯҾ͖
    • ྫ͑͹ɺҎԼͷϩάͷgetDirectorySizeͬͯͲ
    ͏΍ͬͯௐ΂ͯΔ͔஌Γ͍ͨʂͱͯ͠…

    View Slide

  25. LogcatٯҾ͖
    • ͡ΌͱΓ͋͑ͣʮgetDirectorySizeʯͬͯ

    ΩʔϫʔυͰOpenGrokݕࡧ͢Δ

    View Slide

  26. ʮgetDirectorySizeʯͷݕࡧ݁Ռ
    ݟࣄʹͦΕͬΆ΋ͷ

    Ҿ͔͔ͬͬͨ

    View Slide

  27. ίʔυΛݟΔͱ͜Μͳײ͡
    • IMediaContaninerServiceͶʔ΁ʔ
    • LogcatʹྲྀΕͯͨͷ͸ 438ߦ໨ͷ΍ͭ

    View Slide

  28. LogcatٯҾ͖
    • ͏·͘ώοτ͢Ε͹࠷ߴͷٕ
    • Ͳͷϩά͕ྑͦ͞͏͔ݟۃΊΔͷ͸৬ਓٕ
    • LogcatʹྲྀΕ͍ͯΔϝοηʔδ͕੩తͳ΋ͷ͔
    ಈతͳ΋ͷ͔൑அ͢Δͷ͸৬ਓٕ

    View Slide

  29. ·ͱΊํ

    View Slide

  30. ͋ͱͰݟฦ͢Α͏ʹ͜͏ॻ͘ͱ͍͍͔΋
    λΠτϧ

    ݟग़͠

    View Slide

  31. ͋ͱͰݟฦ͢Α͏ʹ͜͏ॻ͘ͱ͍͍͔΋
    Θ͔ͬͨ͜ͱΛ

    Օ৚ॻ͖

    View Slide

  32. ͋ͱͰݟฦ͢Α͏ʹ͜͏ॻ͘ͱ͍͍͔΋
    ॏཁͳͱ͜Ζ͸

    ίʔυͷURLͱ࣮ࡍͷίʔυΛ

    ίϐϖͯ͠ॻ͍͓ͯ͘

    View Slide

  33. ͋ͱͰݟฦ͢Α͏ʹ͜͏ॻ͘ͱ͍͍͔΋
    • Markdownͱ͔Ͱద౰ʹॻ͘
    • ίʔυͷURL͸ΊͬͪΌେࣄ
    • ॻ͍ͨΒGithub΍Gistʹஔ͍͓ͯ͘ͱ

    ݕࡧ΋Ͱָ͖ͯ

    View Slide

  34. JobScheduler-Code-Reading
    https://github.com/operando/JobScheduler-Code-Reading
    ·ͱΊํͷࢀߟʹͲ͏ͧʔ

    View Slide

  35. Thanks!!

    View Slide