The book Androids is a must read on the origin story of Android OS

Inman

Well-Known Member
Licensed User
Longtime User
410R079WM8L.jpg


Written by Chet Haase, one of the earliest team members of Android, Androids: The Team That Built the Android Operating System is such a great book to learn the inside story of how Android OS was developed. I am halfway through the book and I absolutely loved it. Here is an excerpt:

LAUNCHER

In the run up to 1.0, in 2008, launcher (the home screen app responsible for viewing and launching applications) was just another implementation detail of the UI toolkit. Mike Cleron, the original developer on the UI toolkit team, worked on launcher before passing it on to Romain Guy. Romain continued to own and improve the app for several releases, in addition to the rest of the UI toolkit work he was responsible for.

One of the ongoing projects that Romain worked on for launcher (and for the rest of the system) was performance. Romain remembered the constraint that Steve Horowitz gave him: “Launcher needed to cold-start in half a second. Launcher has to go peek at every apk and load the icons and strings, so there was a lot of multi-threaded code and batching and deferring updates on the UI thread.”

Romain was also constantly adding features to launcher, like folders for organizing application icons, and application widgets, and shortcuts (icons on the home screen), and a parallax effect between the wallpaper background and the pages of the home screen.

Later on, for the launch of the Nexus One, Andy Rubin wanted something visually exciting. Joe Onorato explained: “For Eclair, Rubin wanted something flashy.” Andy was light on specifics; Joe remembered him saying, “Just do something cool.” In the two months that they had, they wrote a new launcher using the 3D capabilities of the new device. “GL was just starting to work well enough, so we did that 3D launcher.”

The 3D launcher was a special effect in the all apps screen that lasted for several releases. The user saw a normal 2D grid of applications, but as they scrolled the list up and down, the top and bottom edges faded away into the distance like a Star Wars intro-text effect. It was subtle but powerful, hinting at the 3D power behind the system (and the potentially large number of apps on the system), but without being too ostentatious or difficult to navigate.

LIVE WALLPAPERS

1.0 shipped with a feature called Wallpapers which allowed users to choose a picture to serve as the background of the home screen in the launcher. Wallpapers were a great way to show off, and personalize, a smartphone’s large display.

But Andy wanted something new and special for the Nexus One, which was launching with the Eclair 2.1 release in January of 2010. He asked for a feature called Live Wallpapers. Since smartphones offered not just a large screen, but also a powerful computer behind that screen, wouldn’t it be nice to use the computer to enable rich graphical experiences that moved and entertained?

So Andy asked the framework team to make it happen. Dianne Hackborn and Joe Onorato worked on the underlying system and Romain and others worked on the actual wallpapers, coming up with the designs, the overall look, and the actual functionality for the first set of them.

They had five weeks to make it happen.

Andy had originally asked that the wallpapers be implemented in Processing, a graphics rendering system. This was a great idea in terms of functionality, but when Romain got it working on Android, he saw that it wasn’t going to be fast enough for mobile phones. With an animation rate of only one frame per second, the wallpapers were more Dead than Live. So Romain found a different way to make them work.

Jason Sams (a graphics engineer on the team who had also worked at Be and PalmSource with Mathias, Dianne, Joe, and others) had been working on a low-level graphics system at the time called RenderScript, which allowed applications to take advantage of both the CPU and the GPU for drawing graphics quickly. Romain used RenderScript to achieve fluid animation for the wallpapers that needed it, and ended up writing these four wallpapers for the release:

  • Grass, which showed blades of grass gently swaying against a backdrop of sky, whose color changed according to the time of day where the phone was located.
  • Leaves, which showed leaves falling on water, creating ripples on the surface. This was a team effort, with Mike Cleron wrapping a ripple effect (originally written by Mathias Agopian… or it might have been Jason Sams) into a wallpaper, adding pictures he took234 of leaves from a Japanese maple in his yard.
  • Galaxy, which showed a “3D” view of the universe, with a massive star field rotating around the center.
  • Polar Clock, which showed the time in a more visually interesting way.
In addition to these wallpapers, Mike Cleron wrote one called Particles, and Marco Nelissen (who worked on audio for the platform) wrote three wallpapers including two sound visualizers.

At the end of the five week period, the team had a fully functional Live Wallpaper system, including an API that external developers could use to write their own. Sadly, Romain was only able to invent, design, prototype, and implement four wallpapers in that five-week period, and the team launched the device with fewer than the ten wallpapers that Andy had requested.
 

agraham

Expert
Licensed User
Longtime User
It's quite a good read. In the early days of B4A I actually had the misfortune of having some interaction on forums with Dianne Hackborn and Romain Guy and to say they were so far up their own backsides with the correctness of their design decisions is an understatement - hence we have the over-complicated Activity life cycle (B4A doesn't expose the half of it!) and appalling IME interface or lack thereof.
 

ksleiniwe

New Member
410R079WM8L.jpg


Written by Chet Haase, one of the earliest team members of Android, Androids: The Team That Built the Android Operating System is such a great book to learn the inside story of how Android OS was developed. I am halfway through the book and I absolutely loved it. Here is an excerpt:

LAUNCHER

In the run up to 1.0, in 2008, launcher (the home screen app responsible for viewing and launching applications) was just another implementation detail of the UI toolkit. Mike Cleron, the original developer on the UI toolkit team, worked on launcher before passing it on to Romain Guy. Romain continued to own and improve the app for several releases, in addition to the rest of the UI toolkit work he was responsible for.

One of the ongoing projects that Romain worked on for launcher (and for the rest of the system) was performance. Romain remembered the constraint that Steve Horowitz gave him: “Launcher needed to cold-start in half a second. Launcher has to go peek at every apk and load the icons and strings, so there was a lot of multi-threaded code and batching and deferring updates on the UI thread.”

Romain was also constantly adding features to launcher, like folders for organizing application icons, and application widgets, and shortcuts (icons on the home screen), and a parallax effect between the wallpaper background and the pages of the home screen.

Later on, for the launch of the Nexus One, Andy Rubin wanted something visually exciting. Joe Onorato explained: “For Eclair, Rubin wanted something flashy.” Andy was light on specifics; Joe remembered him saying, “Just do something cool.” In the two months that they had, they wrote a new launcher using the 3D capabilities of the new device. “GL was just starting to work well enough, so we did that 3D launcher.”

The 3D launcher was a special effect in the all apps screen that lasted for several releases. The user saw a normal 2D grid of applications, but as they scrolled the list up and down, the top and bottom edges faded away into the distance like a Star Wars intro-text effect. It was subtle but powerful, hinting at the 3D power behind the system (and the potentially large number of apps on the system), but without being too ostentatious or difficult to navigate.

LIVE WALLPAPERS

1.0 shipped with a feature called Wallpapers which allowed users to choose a picture to serve as the background of the home screen in the launcher. Wallpapers were a great way to show off, and personalize, a smartphone’s large display.

But Andy wanted something new and special for the Nexus One, which was launching with the Eclair 2.1 release in January of 2010. He asked for a feature called Live Wallpapers. Since smartphones offered not just a large screen, but also a powerful computer behind that screen, wouldn’t it be nice to use the computer to enable rich graphical experiences that moved and entertained?

So Andy asked the framework team to make it happen. Dianne Hackborn and Joe Onorato worked on the underlying system and Romain and others worked on the actual wallpapers, coming up with the designs, the overall look, and the actual functionality for the first set of them.

They had five weeks to make it happen.

Andy had originally asked that the wallpapers be implemented in Processing, a graphics rendering system. This was a great idea in terms of functionality, but when Romain got it working on Android, he saw that it wasn’t going to be fast enough for mobile phones. With an animation rate of only one frame per second, the wallpapers were more Dead than Live. So Romain found a different way to make them work.

Jason Sams (a graphics engineer on the team who had also worked at Be and PalmSource with Mathias, Dianne, Joe, and others) had been working on a low-level graphics system at the time called RenderScript, which allowed applications to take advantage of both the CPU and the GPU for drawing graphics quickly. Romain used RenderScript to achieve fluid animation for the wallpapers that needed it, and ended up writing these four wallpapers for the release:

  • Grass, which showed blades of grass gently swaying against a backdrop of sky, whose color changed according to the time of day where the phone was located.
  • Leaves, which showed leaves falling on water, creating ripples on the surface. This was a team effort, with Mike Cleron wrapping a ripple effect (originally written by Mathias Agopian… or it might have been Jason Sams) into a wallpaper, adding pictures he took234 of leaves from a Japanese maple in his yard.
  • Galaxy, which showed a “3D” view of the universe, with a massive star field rotating around the center.
  • Polar Clock, which showed the time in a more visually interesting way.
In addition to these wallpapers, Mike Cleron wrote one called Particles, and Marco Nelissen (who worked on audio for the platform) wrote three wallpapers including two sound visualizers.

At the end of the five week period, the team had a fully functional Live Wallpaper system, including an API that external developers could use to write their own. Sadly, Romain was only able to invent, design, prototype, and implement four wallpapers in that five-week period, and the team launched the device with fewer than the ten wallpapers that Andy had requested.
Must read.
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
It's quite a good read. In the early days of B4A I actually had the misfortune of having some interaction on forums with Dianne Hackborn and Romain Guy and to say they were so far up their own backsides with the correctness of their design decisions is an understatement - hence we have the over-complicated Activity life cycle (B4A doesn't expose the half of it!) and appalling IME interface or lack thereof.
I agree. Android is over-engineered. Overtime Google has made Services less and less useful and also now recommends using a single activity for your app (as in B4XPages).
 

epiCode

Active Member
Licensed User
I agree. Android is over-engineered. Overtime Google has made Services less and less useful and also now recommends using a single activity for your app (as in B4XPages).
Speaking of over-engineered I recently looked at a RAD Solution on the lines of B4X which takes up a whopping 6GB of space (4GB installation) and cannot find android SDK on the system even after asking the user for location. 🤦‍♂️
Makes me love b4x all the more for its beauty in simplicity !!
 
Top