Asleep from Day

July 1, 2009

First code drop of 0xlab

Filed under: 0xlab, Android — John @ 2:58 pm

We have been busy in the past two months, and now it’s time to open up our code. Please keep in mind that most of these projects are not in the release state yet, but subjects of ongoing development.

You can find all of our source code at: http://gitorious.org/+0xlab. Here is a brief introduction of each project:

  1. MadButterfly: a git clone of the original project. The real project is hosted at assembla. MadButterfly is very likely to be the base of our 2D UI framework. It’s based on SVG instead of traditional toolkits such as gtk or kde, so it will give the UI designer a lot of space to unleash his/her creativity. The main developer’s (Thinker) blog is here.
  2. Android Eee PC: it aims to ease the porting of Android to Eee PC. At the moment the most interesting thing is the 3D acceleration structure on it, which can use the existing hardware driver in Mesa. Check this video to see what it can do. (blog)
  3. 0xlab’s Linux Kernel Tree: it contains several branches for different platforms, like Omap3, SMDK6410, and may be more in the future. Also, all of them are intended for being able to boot into Android. We tend to use the Beagle Board (OMAP) as our main development platform because it’s cheap and open.
  4. esuit: the Embedded System Unit/Integrated Test cases framework. It aims to provide a unified method to verify the functionalities of a hardware platform. This project is in planning phase, so no source code is available yet.
  5. android obex: it provides obex file sharing in Android. (blog)

From now on, we will direct all of our technical discussions to the 0xlab-devel mailing list. Plus, IRC #0xlab is the place we usually hang out. If you want to reach us directly, mail us.

June 22, 2009

@oesf.jp, 6/24

Filed under: 0xlab, Android — John @ 4:30 pm

I will join the OESF (open embedded software foundation) progress conference on 6/24. Although the name suggests similarities to OpenEmbedded, this foundation has nothing to do with OE, but focuses on Android development. I’m not sure if it’s a member of OHA since I can’t read Japanese and Google Translate is very vague on this.

4/27 0xlab 成立簡報

Filed under: 0xlab, Android — John @ 11:51 am

It’s a bit old but I’ll share it anyway. The content is in traditional Chinese.

June 11, 2009

android-pdk

Filed under: 0xlab, Android, tip — John @ 6:13 pm

Android porting development kit could be obtained by

make pdk pdk_all

in your top repo dir. You can find the pdk doc in out/target/common/docs/online-pdk . If you open index.html directly you will find the css is all messed up. The quickest way might be moving the directory to /var/www, install one web server (I use thttpd) then open http://localhost/online-pdk/ .

The document is far from complete but it’s still a good reference to save a lot of time.

May 30, 2009

What we are doing now, and how to join force.

Filed under: 0xlab, Android — John @ 9:08 pm

We have been receiving a lot of emails asking about what 0xlab is doing now, and exactly how to cooperate with us.

First of all, we have been fairly busy recently. If you have tried to port Android to other platform, then you will know it’s not an easy task. We have some familiar porting issues, such as the documents provided by hardware manufactures are either vague or incomplete, the BSP is outdated (ancient), code is a mess or even completely unusable. And we also have some new issues, such as Android platform’s big code base and lack of proper document (I’m talking about lower level here), or what Goggle said in their presentations is way different then what’s in the code, and I don’t even want to start with many hard-coded assumptions about hardware (G1), etc.

Rant aside. What’s been keeping us busy:

  • Port several wireless modules to several popular platforms.
  • Graphic acceleration.
  • Multimedia enrichment. (Reads: port other open source codes)

I’m not going to dive into details here. We will do a code drop sometime in June, and our members will blog about their work, so the technical details will be revealed then. We will also open up our development mailing list, so people can discuss there.

Next question is: how to join force? The answer is quite simple: just like any open source project. After the code drop, try it out, report bugs, send us patches, join mailing list, talk on the IRC (#0xlab), etc. – all the usual stuffs. That also means we won’t work on any specific product. So, if you’re interested in developing android based product, send your *own* developers to join and grow with us.

Now, advertisement time: join FreedomHEC Taipei, Matt and Jserv will talk about bootloader there.

May 17, 2009

Doxygen and Android source code

Filed under: 0xlab, Android, tip — John @ 1:18 am

It turns out doxygen can be quite handy if you want to read android code. It supports javadoc style, so it could generate documents for the java files. It supports qt style, so the c++ code is also taken care of. Inheritance diagrams, integration with gnu global, etc. are quite useful as well.
android-doxygen

January 6, 2009

適合行動裝置的中文字型

Filed under: Android, Openmoko — John @ 5:15 pm

Droid 在設計伊始就以行動裝置為目標,在 Android 上頗受好評。基於其上有些中文字型正在發展,其中之一為文泉譯的微米黑。事實上文泉譯原本的正黑體在 freerunner 上看起來就已經蠻不錯了。一時找不到數位相機,截張圖充數:

September 28, 2008

How Dalvik launches Android app

Filed under: Android — John @ 7:27 am

This is just a guess, but I think the way Dalvik, the JVM of Android, launches an app is similar to the processing launcher I wrote for Openmoko. It starts a service on dbus, then load and run the processing apps by request. This can make the start up time much shorter because basically it runs in the same jvm instance. Something like this:

fork()
if (child) {
    load the app java class
    run it
}
/* I'm parent */
wait and check if it's okay

So, during system start up, the first instance of Dalvik is created, and all the common java classes are loaded because you need to start the ‘home’ application. Now whenever you fork a new process, the linux kernel will try to be smart and only copy memory pages if the child process modified something in it. (copy on write)

Anyway, we will see after the release of Android source code.

2008/09/30:
So, it turns out I’m right. According to Anatomy & Physiology of an Android, that first instance is called ‘zygote’. Quite self-explaining.

Blog at WordPress.com.