This is a simple example of Aspect Oriented Programming in Android as part of a blog post I have written. The idea was to measure how long takes a method to be executed, so based on annotations, a Metrics aspect was created for making easy to trace a method execution (you can take a look at the 'gintonic' folder). I wrote an article about Aspect Oriented Development in Android here:
After developing this I realized Jake Wharton has already created a very useful library called Hugo (I refactored my code to look like this amazing library but mine is kind of a more primitive version, although as an example works fine :)).
The idea is simple, you just add @DebugTrace
to any method and in the logcat you will see something like this:
Gintonic --> onMeasure --> [10ms]
Here are some useful Gradle/adb commands for executing this example:
./gradlew clean build
- Build the entire example../gradlew installDebug
- Install the debug apk in the current connected device.adb shell am start -n android10.org.viewgroupperformance/org.android10.viewgroupperformance.activity.MainActivity
- Start the Main Activity of the example.
Copyright 2014 Fernando Cejas
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.