業務でandroidのソースコードを読まなければならなかったときに学んだ、
効率的なソースコードの読み方のメモ。
動的な解析と静的な解析
ソースコードの解析には、動的な解析と静的な解析がある。
動的な解析とはデバッガなどでプログラムを実行させながら流れを解析する方法で、
静的な解析とは実際のソースコードを読んでいく方法。
最初は動的な解析からはじめると効率的に読むことができる。
androidではlogcatと呼ばれるログ出力関数が用意されていて、
プログラムを実行するとソースコードに埋め込まれたログが出力される。
また、開発環境ではなく実際の端末で実行されたログであれば、
以下のadbコマンドでlogcatを取得することができる。
$adb logcat -v time > logcat.txt
ただこのlogcatには読みたいプログラム以外にも端末で動いているものの全ての
ログが出力されるので、grepなどで必要な箇所だけ切り出してあげると見やすくなる。
まとめると
まずはプログラムを動かしてみて、出力されるlogcatからそのログが出力されている
コードの箇所を探していって、流れを組み立てるとよい。
その後、組み立てられたクラスの流れができるので、そこから静的解析として
クラスごとにソースを読んでいけば大まかに内容をつかむことができる。