In the midst of perfecting an article about Dalvik in Bahasa, I couldn’t resist the temptation to write side notes, just in case I need to clear out the haze and clouds. Well, turned out I have to clear some facts by providing the most accurate term possible, before programmer with brain composed of semantic logics fires up the comment section. Hence, reading this might be compulsory for power user.
1) Sometimes, we refer JVM not as a really VM, but an emulator. In fewer occasions, sometimes we refer it as runtime. It is a container to emulate the Java codes into language that’s readable by kernel / underlying core, which is known as native binary.
2) In the beginning writing this article, I used the term ’smartphone’, but when I fact-checking I replaced ’smartphone’ with something more broad, i.e. touchscreen device. In the footnote I made clarification saying that Android is no longer exclusive for touchscreen device. It is completely universal. Even Thor can install one on his hammer.
“Hi hammer. Would you please get Candy Crush from Google Play Store? I got no villain to crush today”.
Well, that makes sense.
3) When talking about custom-made ROM, I should’ve indicated AOSP along but I decided to leave the details. I just didn’t want to add the trouble. AOSP stands for Android Open Source Project. Originally, CyanogenMod stemmed out from this project. To a point, CM developer wasn’t happy with few parts of the AOSP, so he replaced it with something else (like adding launcher, the Trebuchet launcher). Thanks to @pali7x for this detail.
4) I think I explain enough on the security subtopic quite well. I bumped into Apache HTTPd few days back, so I decided to make an example based on it.
I did say “by default, each application gets its own user and permission”, which can be inferred that I factor in where the possibility of an application can get out of its own sandbox and accessing other’s files. Have you ever heard the term “root the Android”. Rooting simply gives user-level applications with root access. Equivalent to sudo on most Linux/Unix box.
5) I cited Ehringer’s work because I was damn too lazy to translate the paragraph, because I might end up being confused with what I write, and my audience wouldn’t be any less confused that me. How am I going to translate ‘forking’ into Malay? Menggarpukan Java? I’m no foodie to eat Java, and I don’t even eat guava (notice the wordplay there).
6) I was hesitant to expound regarding stack-based and register-based, because if I do certainly I have to write more about the dx tool, de-odex, and odex. I’m no expert to delve into this, let alone explaining to my audience. Understand my fear please.. tsk tsk.
7) I hope the footnote helps you to comprehend few stuffs. Significant or insignificant, you decide. Oh btw, I deleted a point on the footnote that hinged around the comparison of performance between Samsung Galaxy Y and iPhone 3GS. Galaxy Y clocked at 850 MHz with 290MB RAM vs iPhone 3GS clocked at 600 MHz with 256MB RAM. Clearly here 3GS outruns Galaxy Y, and my intent is to tell people about Android and Dalvik, not iPhone vs Samsung. I don’t want to cast a bloodshed war cry between Samsung and iPhone faggers. Not even a bit.
.. because I’m using Windows Phone (Lumia 520). Clapping hands and eating popcorn while watching a fight between faggers would make me feel like a coward (wow, that’s quite noble of me).
8) I didn’t make a move to explain about a dispute (in court) between Oracle and Google about Java implementation in Android. Oracle was then known for being a full-packaged scumbaggery after making OpenOffice and Java not free as they once were. After Java and OpenOffice were acquired by Oracle, then people resorted to OpenJDK and LibreOffice. Later on, Google won the court by embarrassing Oracle.
Thanks for reading!
p/s: Evolus Pencil is a great tool for sketching. Give it a try bro!
p/s: I think I should share my resources. I spent time reading VM for abstraction: The Dalvik VM, Android Internals, Android OS processes and Zygote, What is Dalvik, and a thread on Stack Overflow. I relied heavily on paper written by Ehringer. Special thanks to @aribismail for suggesting this topic and spending your time reading my first draft, and an immense amount of unquantifiable gratitude to @pali7x for the tips and correcting my errors.
p/s: As for today Nov 1st 2013, there are news circulating on the internet about Android’s new runtime, a potential candidate to replace Dalvik VM. Let’s see how it goes then.