adam

Adam (or adm) is a coroutine-friendly Android Debug Bridge client written in Kotlin

APACHE-2.0 License

Stars
441

Bot releases are visible (Hide)

adam - 0.3.1

Published by Malinskiy over 3 years ago

Fixes:

  • use adb.exe on windows (#42)
adam - 0.3.0

Published by Malinskiy over 3 years ago

Breaking change:
Main package has been moved com.malinskiy:adam -> com.malinskiy.adam:adam because the project consists of 6 modules now:

  1. com.malinskiy.adam:adam main module
  2. com.malinskiy.adam:android-junit4 rules for Android tests that allow accessing adb + grpc/console during the test run
  3. com.malinskiy.adam:android-testrunner-contract is required for test runners to support the execution of android-junit4
  4. com.malinskiy.adam:server-stub core code of the adb server stub
  5. com.malinskiy.adam:server-stub-junit4 server stub wrapped in a JUnit 4 rule
  6. com.malinskiy.adam:server-stub-junit5 server stub wrapped in a JUnit 5 extension

Features:

  • Support test access to Android devices (adb + gRPC/console on emulator) via JUnit rules (#30)
  • adb server stub to facilitate testing of tooling built on adam (available as a raw server as well as JUnit4 and Junit5 add-ons) (#40)
  • InstrumentationResponseTransformer now returns buffer contents when test run fails

Fixes:

  • Fix FileEntry.exists() bug for stat v2 request
  • Fix EmulatorCommandRequest response parsing when .emulator_console_auth_token is empty
adam - 0.2.5

Published by Malinskiy over 3 years ago

Fixes:

  • Fixed a bug in vert.x socket read #37
adam - 0.2.4

Published by Malinskiy over 3 years ago

Features:

  • Faster IO for files and sockets

Fixes:

  • Fixed a bug in am instrument test result parsing
adam - 0.2.3

Published by Malinskiy over 3 years ago

Fixes:

  • Support infinite requests by specifying timeout override (e.g. AsyncDeviceMonitorRequest)
  • Better exceptions during shell v1 exit code parsing
adam - 0.2.2

Published by Malinskiy over 3 years ago

Fixes:

  • Fix USB transport packet size
  • yield() during long sync requests
  • async device monitor should process socket timeout during no updates
adam - 0.2.1

Published by Malinskiy over 3 years ago

Fixes:

  • Fix transport fragmentation issues with pushing files to USB-connected devices
  • Make sure to close the socket and associated resources

Improvements:

  • New socket abstraction to remove the hard dependency on ktor (still depends on buffer pools though)
  • Improve async requests termination: explicit signal to stop the request
  • Reuse buffer pools everywhere to reduce memory allocations
  • Reduce copy-pasted boilerplate code with Socket extensions

Testing:

  • Add emulator API 30 target
  • Switch to google play emulators
  • Improve performance of the integration tests
  • Add CoroutinesDebug rule to help investigate issues
adam - 0.2.0

Published by Malinskiy almost 4 years ago

Features:

Bugfixes:

  • Android test runner response framing issue

Other:

  • Explicit target for Java 8
  • Upgrade to Kotlin 1.4
  • Tests, tests, tests

Package structure is reworked from sync/async to separation by functionality. This is a breaking change!

adam - 0.1.0

Published by Malinskiy almost 4 years ago

  • Documentation with dokka API #8 #9
  • Fix unknown INSTRUMENTATION_CODE support #13
  • Multiple fixes for async requests #12
  • Support for screen capture buffer recycling
  • Memory and CPU optimizations for screen capture
  • Add socket timeout option and set default to 30s
adam - Bugfix and new ListFilesRequest

Published by Malinskiy almost 4 years ago

  • Fixed a bug with TestRunnerRequest overflowing the buffer for test output
  • New ListFilesRequest to traverse directories
adam - framebuffer protocol #2 support

Published by Malinskiy over 4 years ago

adam -

Published by Malinskiy over 4 years ago

adam -

Published by Malinskiy over 4 years ago

adam -

Published by Malinskiy over 4 years ago

adam - More fixes

Published by Malinskiy over 4 years ago

feature(instrumentation): optimize parsing memory consumption Anton Malinskiy A minute ago
feature(core): add external coroutine context override + cache ActorSelectorManager Anton Malinskiy A minute ago
feature(pull): throw PullFailedException Anton Malinskiy 3 minutes ago
fix(test): use receiveOrNull extension + fix the md5/md5sum discovery + ln -ln parsing Anton Malinskiy 3 minutes ago

adam - Minor fixes

Published by Malinskiy over 4 years ago