そのような理由から、普段からソースコードは手作業で追いかけているわけですが、この場合、主にgrepを使う事になります。
ただし、ファイル数が多かったりディレクトリが深くなったりすると、find等もいろいろ組み合わせ結構コマンドを打つのも手間になったりします。
そんなgrepに関して、Androidのbuild/envsetup.shの中に、少しだけ便利になる関数が定義されています。それは
cgrep PATTERN
jgrep PATTERN
resgrep PATTERN
sgrep PATTERN
です。それぞれ、Cソースコード、Javaソースコード、Resourceファイル、すべてのソースファイルにPATTERNでgrepをかけて、検索したキーワードを色分けして表示してくれるというコマンドです。長々とgrepコマンドを書くことなく、grepがかけられるので、grepで解析する派のあなたには重宝するツールになるでしょう。
ちなみに、他にもいくつかのコマンドが定義されています。ビルド時に使われるものもあれば、開発作業に有用なものもありますので、中身を一度チェックしてみるとよいかもしれません。
なお、以下にコマンドの一覧と、わかるものには簡単な解説なり、コメントの抜書きなりを記載しておきます。
help
helpを表示する(一部のコマンドのみ)
get_abs_build_var
Get the value of a build variable as an absolute path.
get_build_var
Get the exact value of a build variable.
check_product
check to see if the supplied product is one we can build
check_variant
check to see if the supplied variant is valid
setpaths
printconfig
set_stuff_for_environment
set_sequence_number
settitle
choosesim
choosetype
chooseproduct
choosevariant
choosecombo
add_lunch_combo
print_lunch_menu
lunch
tapas
Configures the build to build unbundled apps.Run tapas with one ore more app
names (from LOCAL_PACKAGE_NAME)
gettop
topディレクトリを表示する
m
プロジェクトのトップディレクトリでmakeを行う。
findmakefile
現在のディレクトリを上に遡りながら、Android.mkファイルを見つける
mm
現在のディレクトリのAndroid.mk内のモジュールをトップディレクトリからmakeする
mmm dirname
dirnameで指定したディレクトリのAndroid.mk内のモジュールをトップディレクトリからmakeする
croot
トップディレクトリに移動する
cproj
ディレクトリを上に遡りAndroid.mkのあるディレクトリに移動する
pid program
adb接続した先のprogramのPIDを取得する
systemstack
systemstack - dump the current stack trace of all threads in the system
process to the usual ANR traces file
gdbclient [EXE] [PORT] [PROG]
arm-eabi-gdbを起動し、各種シンボルを読み込んでgdbserverへ接続する
sgrep PATTERN
.*\.(c|h|cpp|S|java|xml|sh|mk)に対してPATTERNでgrepをかける
jgrep PATTERN
.*\.javaに対してPATTERNでgrepをかける
cgrep PATTERN
.*\.cに対してPATTERNでgrepをかける
resgrep PATTERN
*\.xmlに対してPATTERNでgrepをかける
mgrep PATTERN
.*/(Makefile|Makefile\..*|.*\.make|.*\.mak|.*\.mk)に対してPATTERNでgrepをかける
treegrep PATTERN
.*\.(c|h|cpp|S|java|xml)に対して、grep -iをかける
getprebuilt
ANDROID_PREBUILTS変数の値を取得する
tracedmdump tracename
tracenameのdmtraceを実行する
runhat [ -d | -e | -s serial ] target-pid [output-file]
communicate with a running device or emulator, set up necessary state,and
run the hat command.
getbugreports
/sdcard/bugreportsのバグレポートファイルを取得する
startviewserver
stopviewserver
isviewserverstarted
smoketest
SmokeTestApp.apk SmokeTest.apkを再インストールし実行する?
runtest args
argsを引数として/development/testrunner/runtest.pyを実行する
godir regexp
PATTERNにマッチするディレクトリのリストを表示し、選択されたディレクトリに移動する
set_java_home
JAVA_HOME環境変数がない場合に固定値を設定する
0 件のコメント:
コメントを投稿