Slide 1

Slide 1 text

AndroidX と AOSP Cookpad.apk #1

Slide 2

Slide 2 text

About me • Kenji Abe • 2018/07入社 • メディアプロダクト開発部 • Twitter: STAR_ZERO

Slide 3

Slide 3 text

話すこと • AndroidXとAOSPにざっくりと ‣ ソースコードや履歴をみる ‣ コード取得とビルド ‣ パッチについて

Slide 4

Slide 4 text

AndroidX

Slide 5

Slide 5 text

AndroidX • 新しいパッケージ • Support Library, Architecture Componentsなどが移行 • android.supportは28.0.0が最後
 の予定

Slide 6

Slide 6 text

AOSP

Slide 7

Slide 7 text

AOSP • Android Open Source Project • OSやライブラリなどのソースコード • Gerritによるコードレビュー • repoツールによるリポジトリ管理

Slide 8

Slide 8 text

AndroidX + AOSP

Slide 9

Slide 9 text

AndroidXがAOSPに公開 https://android-developers.googleblog.com/2018/07/androidx-development-is-now-even-better.html

Slide 10

Slide 10 text

AndroidX + AOSP • ソースコードが見れる • 変更履歴が見れる • DLして手元でビルド、実行できる • パッチを送れる

Slide 11

Slide 11 text

ソースコードをみる

Slide 12

Slide 12 text

ソースコード https://android.googlesource.com/platform/frameworks/support/

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

変更履歴をみる

Slide 15

Slide 15 text

変更履歴 • gitのログ • Gerritの履歴 ‣ 送られたパッチ ‣ コードレビュー

Slide 16

Slide 16 text

Gerrit https://android-review.googlesource.com/q/status:open

Slide 17

Slide 17 text

Gerrit

Slide 18

Slide 18 text

Gerrit

Slide 19

Slide 19 text

Gerrit

Slide 20

Slide 20 text

コードのダウンロード ビルドと実行

Slide 21

Slide 21 text

コードのダウンロード • repoツールが必要 ‣ https://source.android.com/setup/ build/downloading $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo

Slide 22

Slide 22 text

コードのダウンロード $ repo init \ -u https://android.googlesource.com/platform/manifest \ -b androidx-master-dev $ repo sync -j8 -c

Slide 23

Slide 23 text

ビルドと実行 $ cd frameworks/support $ ./gradlew createArchive // gradle maven { url 'path_to/out/host/gradle/frameworks/support/build/support_repo' }

Slide 24

Slide 24 text

Android Studioで開く frameworks/supportをASで開くだけ

Slide 25

Slide 25 text

いろいろ捗る • ASで開くとコードが読みやすい • 自由に修正できる ‣ ログを埋め込み ‣ コード書き換え • リリース前の機能を試せる

Slide 26

Slide 26 text

パッチ

Slide 27

Slide 27 text

パッチ • 受け付けてくれるパッチ ‣ バグ修正(Issue Trackerが必要) ‣ スペルミス ‣ ドキュメント更新 ‣ カバーできてなかった箇所の新テスト

Slide 28

Slide 28 text

パッチ • パッチはChangeList (CL)と呼ばれる • 1CLで1Commit • パッチの修正は git commit --amend • 参考 ‣ https://qiita.com/yuichi_araki/items/a8db45e5aa1daad8152e

Slide 29

Slide 29 text

パッチを送る $ cd /path_to/frameworks/support/ # ブランチ作成 $ repo start my_patch . # 修正... $ git add . $ git commit # パッチ送信 $ repo upload --current-branch .

Slide 30

Slide 30 text

コントリビュート

Slide 31

Slide 31 text

まとめ

Slide 32

Slide 32 text

まとめ • AndroidXのコード取得とビルドは
 難しくない • 手元で動かせるといろいろ捗る • チャンスがあればコントリビュート

Slide 33

Slide 33 text

おわり