Hey! I have built this cool application for Ubuntu users. And I want other users to use it. Do you know how can I publish it? Worry not. Ubuntu has a way identified to help developers publish their applications and make them available for installation and regular updates through a standardized mechanism. PPA is your answer.Continue reading “PPA”
ART – Android RunTime
In simple terms, ART stands for Android RunTime environment i.e. environment used by the Android operating system to run the applications. This is a successor to earlier virtual machine “Dalvik” which was part of the Android operating system until Android 4.4 (KitKat)
What are the key features of Android Runtime (ART)?
ART introduced use of “Ahead of Time (AOT)” compilation of all the applications. When an application is installed on Android system, Java bytecode is translated into machine instructions during the compilation process. This improves the application execution performance tremendously. In earlier days when Dalvik was part of the Android OS, the applications used to be compiled “Just In Time (JIT)” before execution. This used to slow down the execution performance of the applications.
You would be wondering why would someone choose JIT compilation. Remember those were the days when mobiles were not as powerful as today’s mobiles. They used to have lower storage and Android was forced to have lower sized applications as a constraint. The compiled versions of the applications tend to be slightly higher in size and hence this trade-off.
Another drawback of Dalvik Runtime – it used to consume battery as it used to compile the code everytime application is started.
By introducing AOT, Android Runtime saves a lot of battery consumption and also improves the execution performance. Albeit there’s a small price to pay – application installation takes longer as compared to the installation times on Dalvik. This is because the code is compiled during installation. However, as you would agree, this is a small price to pay.
Among other benefits of ART, memory allocation and garbage collection are important ones. It also provides some debugging features and high-level profiling of the applications.
ART provides backward compatibility with Dalvik. So if your application runs well on ART, it will work well on Dalvik too. However, the reverse may not be true.
Java Runtime Environment (JRE), Dalvik, JIT, AOT, JVM, Bytecode,
Now this is something interesting. Android Things is an embedded OS platform by Google and is obviously Android-based 🙂 This platform is meant to target IoT (Internet Of Things) devices. IoT devices typically have power and memory constraints and this OS aims to operate within those constraints. Typically these devices have about 32 to 64 MB RAM.
History of Android Things
Google had announced OS for IoT devices back in 2015 with name “Brillo”. That OS was C++ based. However, it never came out of developer preview. Later in Dec 2016, Google announced Android Things which was based on Android i.e. Java. An important advantage of this shift is that development life cycle almost remains same as that of mobile app development. Developers can use Android Studio and other popular IDEs for development for this OS.
So, what’s latest on this front?
In current Consumer Electronics Show – CES 2018, many OEMs are announcing their products based on Android Things. e.g. Voice Activated Speakers powered by Android Things. Google Assistant will be coming to smart displays, which would be powered by Android Things. Check this video which shows a drawbot drawing a facial image captured by photo. As you would have guessed, this drawbot is powered by AndroidThings
Developers would be able to push the updates to the OS, just like other Google products.
- Microsoft – Windows 10 IoT
- Amazon – AWS Greengrass – this is not exact competition, but it is Amazon’s entry point of the IoT strategy.
Android, Operating System, Embedded OS, IoT, AWS Greengrass