Booster – a very interesting tool: it is an easy to use, lightweight, functional, extensible set of quality improvement tools designed specifically for mobile applications. The main task of the project is to address quality issues associated with increasing application complexity, such as performance, stability, and package size issues.
Booster is a collection of modules for performance evaluation, multithreading optimization, built-in resource index, redundancy reduction, resource compression, system error fixing, etc. Booster can improve application stability by 15-25% and reduce batch size by 1-10 MB.
The documentation is very good, the license is Apache 2.0.
Shake Is one of the best tools for detecting errors, studying user actions to reproduce the error, and collecting screenshots or videos with errors. It makes working with errors in beta testing and in the public version a lot easier – the tool is definitely worth trying.
As shown in the gif above, if you shake the device, you will be prompted with a template to send an error report. The user can flag the error, mask sensitive data, describe the problem, and send you a report.
This thing is installed simply, in documentation everything is perfectly described. In addition, there is interactive demo, which shows the inside of the tool.
4. Scabbard
Scabbard helps with visualization and analysis of Dagger 2 dependency graph.
Scabbard visualizes entry points, dependency diagrams, component relationships and scopes. It is very easy to add this tool to a project: it integrates well with Gradle as well as Android Studio and IntelliJ (by clicking the icon on the left margin in the editor, you can view the diagram for @Component or @Subcomponent).
Documented the project is great: there are tons of examples and tips.
As you know, sometimes it is not easy to switch from the old support library to AndroidX, especially in large projects with a lot of legacy code. The success of the migration relies heavily on using the Jetifier tool (converts dependencies that still require old artifacts to work with AndroidX classes), which slows down the build.
“More and more libraries are moving to AndroidX, so at some point there is no need to enable this tool. This plugin determines which of the used libraries need to be ported to AndroidX – or get rid of them if a new version has already been released. “ – Can I Drop Jetifier?
The documentation is clear, the project is released under the Apache 2.0 license. Highly recommend!
ADB Event Mirror allows you to reflect the events of touching the screen, pressing keys and buttons of one device to one or more other devices in real time.
“This script does not adapt the resolution, pixel density, orientation, and layout of the application. Therefore, it works best with emulators created with the same configuration. “ – ADB Event Mirror
The tool makes it possible to test the application at the same time on emulators of various types.
Android Emulator Container Scripts – a set of small scripts for running the emulator in a container for various systems (for example, for Docker) for external use. The scripts are compatible with Python versions 2 and 3. This repository is quite popular and useful if you need to run many emulators on remote machines.
The project is released under Apache 2.0 license and is well documented.
google / android-emulator-container-scriptsgithub.com
8. Autoplay
Autoplay Is a Gradle plugin for publishing Android artifacts to Google Play.
It can be considered a very simple alternative Gradle Play Publisher or Fastlane… You can publish your application as apk or App Bundle.
Features of Autoplay:
Optimized for use in CI / CD.
Convenient for developers.
Reliable and promising.
The project has good documentation, the version at the time of this writing is 1.3.0, license – Apache 2.0.
The point is that you don’t need to configure all of these tools yourself – they can be easily incorporated into your codebase. The plugin is released under the Apache 2.0 license and is well documented (there is even a sample project).
AndroidUtilCode Is a functional and easy to use Android library that encapsulates functions commonly used in Android development with demos and unit tests. Encapsulated APIs can significantly improve development efficiency.
The project consists mainly of two modules: utilcode (used often in development) and subutil (rarely used, but simplifies the main module).
“Hijckr interferes with Android layout inflation and redirects named elements to other classes. “
It’s a pretty interesting tool. For example, if the layout file contains TextView. Android usually downloads android.widget.TextView, but you can intercept instead xml-tags and upload com.myapp.TextView…
The project description is quite detailed and allows you to quickly get started with the tool (which is written entirely in Java).
Roomigrant Is a helper library for automatically generating Android Room library migrations using compile-time code generation. It uses the schema files created by the Room library and generates migrations based on the difference between them – that is, the creation of the Room schema must be included in the file build.gradlewhich is well documented in the README.
The project is released under the MIT license, version 0.1.7…
After migrating the database to Room, it’s a good idea to review it: RoomExplorer allows you to view all table data in tabular format, delete tables, insert, modify and delete rows, etc.
The tool is well documented and licensed under Apache 2.0.
The tool is written in Python and uses ImageMagick… You can customize frames (backgrounds), for example, using Facebook Design… You can also change the font, size, frame size, etc.
Dependency Tree Diff Is an “intelligent comparison tool for outputting a problem dependencies Gradle that always shows the path to the root dependency. “
You can install the tool via brew or just use jar-file.
Gradle Doctor Is a plugin for scanning a Gradle build. Feature: Customizable build speed alerts, measure time spent on Dagger annotation tools, set a variable JAVA_HOME and checking its compliance JAVA_HOME in the IDE, simply disabling test caching, stopping the build if empty directories are found src (insofar as this could be the reasoncache mismatches), and much more.
The instrument has excellent documentation, the project is released under the Apache 2.0 license.
GloballyDynamic Is “a set of tools aimed at ensuring universal accessibility Dynamic Delivery, regardless of the app store or distribution platform, which also provide a single unified client API for Android and a simple interface for developers. “
Most other platforms are combined with GloballyDynamic server (e.g. Amazon App Store, Samsung Galaxy Store, Firebase App Distribution, or local development).
I recommend reading README and learn more about this tool.
Wormhole – “time travel bytecode conversion tool adding to android.jar future APIs that can be desaccharified to all API levels using D8 and R8. “
Wormhole provides backward compatibility with newer APIs. Let me give you an example.
“Android R has new methods from Java 9 – for example, List.of… Thanks to D8 and R8, they are not exclusive to API 30 and instantly become API 1 compliant. D8 and R8 have a set of desaccharification methods for APIs that are not yet available in android.jar… And you don’t have to wait until they appear – this project makes it possible to use them immediately. “
MNML (pronounced “minimal”) is a simple free screen recorder application for Android.
Of course, there are many applications and tools that provide this functionality. Today, screen recording is built into all new devices, but if you’re curious to see how to implement such an application, this project is a great example.
That’s all. I hope you liked the list and some tools were able to inspire you. See you!
About the translator
The article was translated by Alconost.
Alconost deals with localization of games, applications and sites in 70 languages. Native native translators, linguistic testing, cloud platform with API, continuous localization, 24/7 project managers, any string resource formats.
We also do promotional and training videos – for sites that sell, image, advertising, training, teasers, explainers, trailers for Google Play and the App Store.