Skip to content

Leaking/Hunter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

295 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hunter

Maven Central Build License

中文

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.

Latest Version

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'

Compatibility

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.

Some useful plugins based on Hunter

  • 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

TODO

More developing plugins can be found in TODO, MeanWhile, your idea is welcome

Developer API

If you want to use hunter to develop a gradle plugin to modify bytecode, please read Wiki

Social network

Welcome to join:

Telegram group: https://t.me/joinchat/BalX-RxnM9ETca1iwgDaFQ

WeChat group:

如果二维码过期了,加微信拉群 742223410

License

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.

About

A fast, incremental, concurrent framework to develop compile plugin for android project to manipulate bytecode

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors