Open Source libraries to make apps and app development fast and fun - less boilerplate and managing infrastructure code

Our open source libraries run on over a billion devices and are used by large companies with especially high performance requirements.
Learn about our widely used, battle-tested, and performance-optimized open source libararies for mobile app development:

> 2.000.000.000 people rely on greenrobot libraries

Slim & fast - that is what we stand for and that is why thousands of mobile developers wordlwide use our solutions, leading to more than a billion mobile users relying on our code

apps fast on the road

Superfast

Above all, we value performance. Speed matters. Thus, we constantly benchmark our solutions against alternatives and optimize for performance.
lean and light development

Lean & light

We keep all our solutions small and frugal. We also ensure all our open source libraries are optimized for maximum battery-friendliness. Perfect for mobile.
Easy to use libraries

Easy-to-use

We are developers ourselves and value the fun aspects of coding. Accordingly, our libraries are easy to use and save developers from tedious and unituitive tasks.
Open development

Developer-driven

We are passionate to deliver high performant, slim, and elegant solutions. Our libraries have more than 15.000 GitHub stars and are industry-proven.

Mobile News from greenrobot

Library updates, new releases, related developments in open source, mobile databases, and Android

Android ORM Performance 2016

With greenDAO 3 released, it’s time again to look at the Android ORM performance landscape and do some benchmarks. This time, we also tested newer ORMs for SQLite like DbFlow, requery, SQLDelight, and SquiDB. Also, we had an extensive look at benchmarks done by others. Let’s get started with our results:

Continue reading

benchmarking on Android

Benchmarking on Android

I don’t believe in any statistics I didn’t fake myself (German saying)

Doing good performance benchmarks is hard and benchmarking on Android is no exception. Here is a checklist on how to do fair and robust benchmarks:

Continue reading

greenDAO 3 released

We are happy to announce greenDAO Version 3 today. Since its initial release 5 years ago, greenDAO has always been the fastest ORM for Android. It was also the first ORM to apply code generation for maximum performance. With greenDAO 3, we made code generation much more convenient: by adopting entity annotations you can drop the generator project. In its place comes the all new Gradle plugin, which automatically triggers code generation at build time. Like that, you can simply use greenDAO 3 annotations on your entities:
Continue reading

keep your data safe with SQLCipher

Database Encryption for Android N: SQLCipher 3.5

SQLCipher 3.5.0 with support for Android N was released yesterday. Previous versions of SQLCipher linked to non-public Android libraries, a practice Google warned about earlier. Android N is getting stricter about linking to platform libraries. To comply with Android N, the SQLCipher authors did the necessary changes and also did a major code clean up. This results in a massive code reduction, as you can see in the following table:
SQLCipher 3.4
SQLCipher 3.5
AAR size
7.15 MB
2.87 MB
armeabi-v7a .so size
2.50 MB
1.43 MB
ICU size compressed / uncompressed
2.19 MB / 6.73 MB
-

That's really good news. Just by using the new version 3.5.0 of SQLCipher, you can reduce your APK size (and build/deployment time). Not just the binary .so files got smaller, also the big "icudt46l.dat" file was removed in 3.5.0.

To see the effect in an app, we took the greenDAO example app and compared the resulting sizes. Of course, the version using built-in SQLite is by far the smallest, but your APK may lose 4.4 MB if you were using a previous version of SQLCipher:

SQLite
SQLCipher 3.4
SQLCipher 3.5
greenDAO Example APK size
70 KB
7.22 MB
2.80 MB
greenDAO Example size on device (Nexus 5x)
0,88 MB
17,89 MB
12.39 MB

We noticed one incompatibility with SQLCipher 3.5.x however. Android's SQLiteDatabase defines two additional collations:

In addition to SQLite's default BINARY collator, Android supplies two more, LOCALIZED, which changes with the system's current locale, and UNICODE, which is the Unicode Collation Algorithm and not tailored to the current locale.

Running SQL ORDER commands with "COLLATE LOCALIZED" does not work anymore starting with SQLCipher 3.5.0. That is the downside of the ICU (and ASOP code) removal.

So, what about greenDAO support for SQLCipher 3.5.x? greenDAO used "COLLATE LOCALIZED" in the QueryBuilder when specifying orders using string properties. To ensure compatibility with SQLCipher 3.5, we just released greendao-encryption V2.2.2 without the LOCALIZED collation.

Spread the love