Hunter is a framework to develop android gradle plugins based on ASM and the modern AGP Instrumentation API. It provides a set of useful, scalable plugins for android developers. You can use Hunter to develop more plugins to monitor your app, enhance 3rd-party deps, or enhance the android framework. Hunter-based plugins inherit AGP's incremental, parallel instrumentation pipeline, so you don't pay for extra build time.
Hunter is published to Maven Central.
All libraries and plugins share the same version number. Replace LATEST_VERSION_IN_README in the per-plugin
READMEs with the latest version shown in the badge above.
def hunterVersion = '1.3.1'| Hunter | Android Gradle Plugin | Gradle | ASM | Java |
|---|---|---|---|---|
| 1.3.x | 7.4 – 8.7+ | 8.0+ | 9.7 | 17 |
| 1.2.x | 4.x (legacy Transform API, removed in AGP 8) | 7.x | 7.1 | 8 |
1.3.0 is a breaking release: the legacy Transform API is gone (it was
removed by AGP 8.0 — see issues
#67,
#63,
#34) and Hunter now wires
itself in via AndroidComponentsExtension.onVariants +
AsmClassVisitorFactory. ASM was bumped to 9.x to support Java 17 records
and sealed classes
(#60,
#66). The constructor
instrumentation bug from
#48 is also fixed: the timing
probe is now injected after the mandatory super(...) / this(...) call.
- OkHttp-Plugin: Hack Okhttp to set a global Interceptor/Eventlistener/Dns for all your OkhttpClients, even clients in 3rd-party library.
- Timing-Plugin: you can time all your ui-thread methods, and dump the block traces with costed-time of every step, you also can consume the block detail in your way.
- Debug-Plugin: you can simply add a annotation to a certain method, and the method will print all parameters and costed time, return value. It has many advantages over JakeWharton's hugo
- LogLine-Plugin: you can add a line number into every lines of your logcat
More developing plugins can be found in TODO, MeanWhile, your idea is welcome
If you want to use hunter to develop a gradle plugin to modify bytecode, please read Wiki
Welcome to join:
Telegram group: https://t.me/joinchat/BalX-RxnM9ETca1iwgDaFQ
WeChat group:
如果二维码过期了,加微信拉群 742223410
Copyright 2018 Quinn Chen
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.
