Android Market Nightly Spring Cleaning ?

I checked the numbers this morning expecting an increase of applications, but surprisingly the figures dropped. I suspect during some kind of batch job flagged applications get removed. Certain percentage might be applications removed by the developer himself.

Android Market Figures

I found 2 articles about the same topic:

More on  quality, statistics and removal:

Android Market Access and Statistics

After some investigation I found a few more websites that reflect the current Android Market and allow you browsing and searching in an easier way than using the original market application. AndroLib has a page with some statistics, some figures might be estimated, have a look by yourself. It seems Google does not really give full access to the raw data of the market, though there is an API that helps you to create your own market browser (and no, it does not help you to iterate through the database!). I try to create my own statistics, the result over 1 hour: Roughly 50 new applications with 15 of them in the Entertainment area.

Android Market in 1 hour

The first 7 days in the Android App Market

After 7 days of existence in the market, 28 user downloaded the application and 50% kept it.
Just learning more about the Android market physics, I updated the application to version 0.2 Beta.
Featured on AndroidZoom, Thanks ! Lets see if there is an impact.

CountRoid on AndroidZoom

I am keen to find out more about the backend of the market. How many applications in total, how many added per day/hour ? How many removed ? How many not being updated for time x ? Language distribution ? Who makes most applications (country) ? How many triggered as spam ?

You want to use the awesome CountRoid ? Point your phone here:

QR Code

You want to know how to create this QR code ?
Goto http://zxing.appspot.com/generator, select URL and enter market://search?q=pname:{your_packagename} (e.g. com.awesome.application). Download the image and print it on your car, T-Shirt, place it on your website or tattoo it on your forehead.

The first 24 hours in the Android App Market

I have a few concepts and ideas in mind for Android applications, some require more knowledge about the platform, some require a proper datasource and some require more time. But still I was very curious how the market works. I didnt want to add another Test or Hello World app to the market, because it is mere market spam. So what is the most simple app you could think of  ? A button that counts ! With a complexity level slightly above “Hello World”. Never mind, I created a 2-button counting app named CountRoid to learn about the physics of the market publishing process. I spare you the description how to do it, it is well documented and easy.

Just some observations:

  • The new application immediately showed up as Just In under Tools, also on the market browser Androidzoom. A few minutes of fame being the first in the list.
  • After 10 minutes another 20 applications showed up in front of me. One day later I cant find it anymore (after giving up scrolling down any longer).
  • In the first few hours zero downloads (are we surprised ? You search for counter or count and you find dozens of more or less fancy counting apps)
  • There are counting apps that cost money !
  • After 24 hours 21 downloads ! How did they find it ? (we will never know). But from  a statistics point of view quite realistic. 300.000 new Android activation every day, so there is a chance someone comes across my app.

I need seriously start thinking about a roadmap for the app ! And if you are completely crazy about counting stuff, go ahead and search for countroid. Its free 1! And there will be no paid advanced version in the future. Unlimited counting !

Android Market

Countroid on Android Market

@ Androidzoom

After 24 hours

CountRoid Screenshot

Android 2.3 released

Just noticed Gingerbread is coming to town since yesterday ! A bunch of new API stuff, such as SIP, NFC, multiple cameras and more. Read all the details here.
Now, the usual questions come up:

  • When we gonna see the first native 2.3 device ?
  • Will my device be supported / updated ? (Is Nexus One going to be updated ?)
  • Did you see a device with NCF reader ? (near-field communication)
  • and when we see Android 3.0 ? Will there be a Android 2.4 before ?

According to some news, Gingerbread will be “pushed” to Nexus One owners in the next few weeks.

The Nexus S is going to be the next official Google Phone (Samsung this time!), available after December 16 (doesnt seem to be available through shipping like the previous models)

Customized error pages for Glassfish V3

There are 2 main reason you want to create custom-made error pages to catch 404 (and others).

Default 404 Error Page

  1. It is more professional to catch an error and guide the user either back to a start page or some kind of error handling (appearing as part of you application and not some default Glassfish page which leaves him pretty much nowhere).
  2. You dont reveal any information about the application server and remove the most basic information for any hacker: What server software is running on this host ?

In Glassfish we can make use of 2 levels of error handling. At a global level, for the complete domain, and the application level. The application level error handling overrides the global handling. You can create a 404 error page that leads the user back to the application index and at the global level you create a message that does NOT contain a link to an application (entering a wrong context will show you there is no such application, but dont give you a hint where else to go!)

How to do it ?

Application Level

  • Create a webpage in your web folder (eg. 404.html) with your application design template and add a link to the index page if necessary.
  • Open the web.xml and add
    ...
     <error-page>
     <error-code>404</error-code>
     <location>/404.html</location>
     </error-page>
    </web-app>
    
  • or use the assistant in Netbeans

    web.xml in Netbeans

Glassfish Global Level

  • Open you admin console and add a new property
    send-error_1
    code=404 path=/tmp/404.html reason=Resource_not_found
    better: code=404 path=${com.sun.aas.instanceRoot}/docroot/404.html reason=Resource_not_found

    Glassfish Console

     

  • or execute asadmin
    asadmin set server.http-service.virtual-server.server.property.send-error_1=”code=404 path=/tmp/404.html reason=Resource_not_found”
  • or do it manually in the domain.xml
    ...
     <config name="server-config">
     <http-service>
     <access-log />
     <virtual-server id="server" network-listeners="http-listener-2,http-listener-1">
     <property name="send-error_1" value="code=404 path=/tmp/404.html reason=Resource_not_found" />
     </virtual-server>
     <virtual-server id="__asadmin" network-listeners="admin-listener" />
     </http-service>
    ...
    
  • Remark: You should place the code=xxx in front the property string (like above sample). There are some forum threads and tutorials putting it at the end (which does not work for me).

The Palroid Experience: Games

Trying a few games

  • Angry Birds (following the discussion in the earlier post)
    Screen rendering does not work 

    Angry Birds

    Angry Birds

  • Labyrinth Lite
    The accelerometer is upside down, both axis are exchanged. 

    Labyrinth Lite

  • Graviturn Extended
    One axis is reversed. But playable.

    Graviturn Extended

  • Sniper
    Also one axis reversed. Guess this applies to all accelerometer games. Is there a way to configure this on the OS level ?

    Sniper

Android goes x86 and Virtualbox

Didnt realize there are some guys porting the Android source to the x86 platform. You can install it (but it targets Asus EEE hardware) or just run it in a Virtualbox. Find out by yourself  and download the iso images here. Not sure how close the port is to the real thing, but the current unstable release covers Froyo ! I will also try to put it on a USB stick and try to start it on the new Asus EEE T101MT.

Android X86 in Virtualbox

Android X86 in Virtualbox