Archive for November, 2009

Why Android WINS

Posted: November 28, 2009 in Android, Java, Mobile
Tags: ,

Several ‘webtards’ have gotten this wrong such as:

Scoble;

Google Android: we want developers but…

85,000 reasons why Apple’s iPhone isn’t going to be disrupted

..and countless others.  These ‘webtards’ have never worked in the telecom industry and would not know  a correct trend if bit them on the ass. let us deal with the underlying mobile operator telecom trends first.

Two trends you should pay attention to; 4G and dramatic data usage increase among smart-phones.  Also tied into that data usage increase is the increase demand for mobile broadband.  Basically, the mobile operators do not have en0ugh investment capital ot build out 4G for that demand.

Now here is the take away of why both Android and ChromeOS will win. The mobile operators are getting ad revenue sharing monies to invest in theri 4G build-outs. The mobile platforms that do not offer this stick and carrot such as Symbian, iPhone, WM, LiMO, and RIM will soon wither on the vine as they will not offer enough revenue incentives to offset the 4G build-out required to support the increased data plan usage and bandwidth.

It is a carrot and stick game because the revenue carrot that Google/OHA offers is used to break the cycle of handset OEMs and mobile  operators controlling technology innovation.  While Apple’s offer of an innovative device was a nice carrot that carrot aspect is very limited because there is no revenue share offer to offset the massive network upgrades that AT&T had to implement, ie AT&T lost money.

The possible counter move by Apple to enlist search partners to share ad revenue with mobile operators that deploy iPhone is hampered by the aspect of the search partner target having their own invested interest in WM, namely Microsoft. In fact the only credible competitor at this point to Android and ChromeOS, due to the ability to offer ad revenue share to mobile operators, is in fact Microsoft with WM and certainly MS has enough quality engineers to copy over a better UI and fix WM’s problems with touch.

Long term it is the best deal to pay  for the 4G build-out that guarantees a mobile device-OS platform win.

Advertisements

Android Ad Networks

Posted: November 25, 2009 in Android, Java, Mobile
Tags:

Due to certain Google irregularities concerning what is allowed and not allowed as an ad served by them to android devices here is list of competitors to Admob and Google:

QuattroWireless

ZestAdz

GreyStripe

Admobee

If you search the Android section at MobiAdNews you will find more.

I forgot my favorite one, Flurry.

Logger Decision Time

Posted: November 24, 2009 in Android, Java, Mobile
Tags:
A composite of the GNU logo and the OSI logo, ...
Image via Wikipedia

I am coding an open source Logger set of wrappers for Android Application developers.  Let me give some background.  Most of you at some time when you started android Programming(me too back than) were not aware that you could do this at debug time:

adb setprop log.tag.LOG_TAG DEBUG

before your connect the IDE debugger to the emulator or device. This basically means if I route all log calls say through log level DEBUG that it will only get executed, because I have use if statements with isLoggable, when DEBUG log level is enabled.

What confuses people in this doc of Log is the phrases LOG-TAG is set to default INFO and all above INFO including INFO or automatically executed and logged. Okay lets look at the javadoc more closely. INFO has a constant value of 4 so given the javadoc phrases than that should mean that constant 4 5 and 6 would be the ones logged, right?  Those are INFO(4), WARN(5), and ERROR(6).

So I do not have to route everything through DEBUG as I can still use INFO, WARN, and ERROR. But if I route through DEBUG than it kind of acts as another deterrent towards prevent reverse engineering because than you have noway to use such log messages to determine a class or method name but that than defeats getting usable remote logs from customers in case something goes wrong.

Thus, for now do not route all through DEBUG level log but do in fact wrap such IO expensive items as GLDEBUG etc as DEBUG level log and of course  re-route VERBOSE directly through the DEBUG level as we are only setprop on the DEBUG log level which means VERBOSE will still be off. Yes, in some Android versions VERBOSE is not  properly set off with if isLoggable hence my coding out a Logger set o wrappers.

Reblog this post [with Zemanta]

QueenAlice

Posted: November 22, 2009 in Java, QueenAlice
iPhone 3G vs. Android G1
Image by inju via Flickr

What is QueenAlice?  QueenAlice is a new Android application coming to droid handsets in 2010.  We all agree that the default camera application blows goats.

This is a camera replacement application that kind of blows one’s mind in new features. Hopefully, its the first killer android application. Why the name QueenAlice?

All the other terms are probably trademarked and copyrighted by Disney and one of my friends happens to have a twitter name of queenalice so blame Alice for the name.

Reblog this post [with Zemanta]

Build Apps the Android 2 Way

Posted: November 22, 2009 in Android, Java, Mobile
Tags: ,

Build tip secret:

1. Install Sdk components the android 2.0 way, ie andorid sdk 1.5, 1.6, and 2.0 in same install folder.

2. use build.template as your build template.

3. Copy android_rules.template main node from  Android 2.0/templates into your build file and set setup import to false.

4. Set build.porperies extra values the Android 2.0 way such as tested.absolute.dir, etc.

5. Copy android_tested_rules.template from android 2.0/templates to your build file.

6. define new ant test targets using the comand-line args at:

http://developer.android.com/reference/android/test/InstrumentationTestRunner.html

This should not only give you EMMA coverage support across sdk 1.5, 1.6, and 2.0 but allow you to also test run unit tests with the new tests as separate project set up. Thank the Google engineers on the SDK tools team.

 

Reblog this post [with Zemanta]

Robo-Guice download

Posted: November 21, 2009 in Android, Java, Mobile
Tags: ,

For those who want to explore Guice on android  the robo-guice download is here and the examples are at here.

As background, yes I do have some Java enterprise coding chops where I am quite use to using IoC frameworks such as Spring. In which case you not only use Spring to make better MVC boundary definitions but also to write better unit tests via mocks etc.

Unlike Spring IoC on Android one has to use a non aop IoC such as Guice no aop library. What is missing is the Guice Modules specific to android. I could use Guice-Robo but there is not really light-weight. Not that there is anythign wrong as obviously you could load the Guice injector at the splash screen and thus avoid some of the initialization of a heavier IoC framework time by hiding that via having the user see the application splash screen.

And since we cannot use AOP anyway why mess with over-riding a class-loader? I could hand-roll my own Dependency Injection such as Bison2 does. It would at least be light enough that I could start to be able to churn out android libraries that are somewhat more flexible.

Plus, writing a dependency injection framework for Android might even be loads of fun.

Reblog this post [with Zemanta]

Dalvik JIT compiler

Posted: November 17, 2009 in Android, Java, Mobile
Tags:

It is not in Droid yet. However is in the repo as of now according to the Dalvik team post. According to the post thee is some breakage but it seems that the Dalvik team wants push out a more current Dalvik JIT to the AOSP tree for testing.

Ophone 1.5 SDK out

Posted: November 15, 2009 in Android, Java, Mobile
Tags:

Yes that is right folks OPhone 1.5 SDK is here. Very bottom of the page. No details of whether or not I can install in the new Google SDK components set-up.

ADP2 announced

Posted: November 13, 2009 in Android, Java, Mobile
Tags:

Brigthstar has announced ADP2 handsets will go on sale soon, see this post. Caution, starts out having Android 1.6.