Exciting times at ZeroTurnaround! Thanks to interest in and adoption of our newest product, JRebel for Android, we have made some good progress in the last 6 months. With these changes the product will better serve Android developers who are building large enterprise applications, developing at a fast pace, and have serious revenue objectives to meet. ZeroTurnaround has always focused on optimizing Java development and we are very excited to bring this expertise to Android development as well.
New licensing model
Introducing JRebel for Android Enterprise
Talking to our customers taught us that JRebel for Android provides the greatest value in the development of complex applications — where build times are measured in minutes, not seconds. Previously, our Business license provided significantly better build times when compared to the Individual license thanks to the incremental Java compiler. We believe all our paying customers are entitled to the same experience. So we have decided to merge the Individual and Business licenses into JRebel for Android Enterprise.
With JRebel for Android Enterprise, our goal is to provide a fast and reliable tool for Android development. This is achieved with our incremental Java compiler which significantly reduces compilation times. In addition, we have added incremental processing of Android resources. I’ll get more in-depth about both of these a little later.
Through our years of development experience with JRebel we have also come to understand the need for quality support. JRebel for Android Enterprise will include premium support with guaranteed same day response. To further ease license distribution, we have added support for the ZeroTurnaround License Server.
And also JRebel for Android Free
Yup, you read that right. The core features of JRebel for Android are now FREE. We believe that the current state of Android development is extremely cumbersome – everything in development just takes too much time and we need to do something about it!
The JRebel for Android Free will provide instant code updates to all the Android devs out there, free of charge. At the same time if you do need an enterprise solution we have that covered too addressing larger and more complex apps.
New features in the Enterprise version:
Incremental Java compiler with MORE annotation processors
JRebel for Android Enterprise ships with a unique incremental Java compiler that supports annotation processor-based libraries. Based on our measurements, the incremental Java compiler can speed up the compilation task of the application by approximately 8x (read more).
The incremental compiler was launched in JRebel for Android 2.0, and since then 14 new libraries have been added, for a total of 25 (up from 11). JRebel for Android Enterprise license owners can also request custom integration for their own internal annotation processors by getting in touch with us via email@example.com.
Incremental Android resources processing
Making the Android resource processing incremental has been something we’ve wanted to tackle for quite some time. The packaging (aapt) currently available in Android build tools is non-incremental. Below is the median output of a Gradle profile from our BFA (Big Freaking Application) using non-incremental processing:
Our BFA contains:
- 4706 application classes,
- 14497 Android resources,
- 84 libraries (Dagger 2, Butterknife) and,
- 7971 library classes.
In testing this new feature internally we achieved some really positive results and with incremental resources processing enabled, the results are quite significant:
Tasks :app:processFreeLegacyFatDebugResources and :app:mergeFreeLegacyFatDebugResources have been sped up by a factor of 12x. The net result is a reduction of build time from ~3 minutes to 15 seconds!
These numbers are very promising and we want to share this with you as soon as possible! This feature will start rolling out to trial and Enterprise customers in the coming weeks. If you want to get your hands on it today, enable the experimental flag!
Companion application (Enterprise and Free)
We envision JRebel for Android as a development tool that you can run at all times to build your applications. For this, you should be able to do the same things as you would when installing a regular APK. Such as “Clear data” and “Force stop” to test various application startup scenarios.
To achieve that, we have now moved all the heavy lifting — needed to make JRebel for Android work — into a separate companion application. This enables us to persist all the changes you’ve applied from your Android Studio. It also further increases the functionality of JRebel for Android when compared to Instant Run. For a full comparison, check this page.
In addition, the companion application greatly improves the connection stability of the Debugger.
The future – Java 8 and multiple device support
In addition to talking about the new features, I also promised to shed some light on some of our future development plans. One of the items that we have had a lot requests for was support of the Jack compiler and its Java 8 language features. Although it was recently announced by Google that the Jack compiler is deprecated, Java 8 language features will still be introduced into Android development. JRebel for Android will be supporting the same Java 8 language features, so stay tuned for updates.
Supporting development on multiple devices is another thing that we have working towards since launching JRebel for Android more than two years ago. We have overcome a lot of hurdles on the way and multi-device support is now closer than ever before. Multi-device support is something we are looking to beta test with our first customers in Q3 of 2017. Interested? Give us a shout at firstname.lastname@example.org!
Feature comparison matrix
We’re glad that you’ve stuck around until the end of this post! Here is a brief comparison of the Enterprise and Free versions:
|Instant code and resource updates|
|Preserved application state|
|Multidex and JNI linking support|
|Incremental Java compiler|
|Incremental Android resource processing (experimental)|
|Custom integration for your annotation processor libraries|
|ZeroTurnaround License Server support|
|Multi-device support (coming soon)|
Well that’s the end. You can try out some of the new capabilities we discussed above, you can open Android Studio or IntelliJ IDEA, download the JRebel for Android plugin and start your 14-day Enterprise trial! You can continue using the Free version after your trial expires.