AndroidのLogを改良しよう3
課題
つくろうとしてるライブラリでは、Annotationを用いて、code injectionを行いログをinsertしようとしていた。 Lombokがすでにやっているんだから、簡単だと思っていたがどうやらそうではないようだ。
わかったこと
- 基本的にAnnotation Processingでアノテーションもとのクラスを編集することはできない。
- Lombokではjavacの非公開APIを使用する、故にeclipse内部のcompiler APIに介入する必要がある
- javacでCompile時にAST(Abstract Syntax Tree)の変換ができれば、裏のAPIに頼る必要はない
- 原理的にJDKとEclipseが更新されるたびにパッチを当てる必要がある
- groovyでは公式にコンパイル時のAST変換をサポートしている
groovyでもAndroidサポートがmergeされたようだし(http://rejasupotaro.github.io/2014/06/05/49.html)、やるならgroovy層でやる方が良さそう。とりあえず、groovyのASTを勉強しつつ、普通にLog機能を実装しよう。。