Tuesday, November 27, 2012

Where is MotoDevStudio for Android-ADT?

First do not panic, as your heard Google is doing some cleaning up of Motorola. One of the cleanups is duplication between tool sin AOSP and Motorola. MotoDevStudio For Android is not dead as the plugin stuff got opensource and donated to AOSP.

However, they had to stop the duplication so there is not a new download if you did not get it recently. There are some directions over at Motorola Developer Resources  in how to build the plugins however.

As far as I know its being merged into ADT along with the other big change of using Gradle as the build script tool-groovy language based instead of Apache ANT. What that probably means its that we will see an alpha build of the ADT as we get to preview the 22 version of Android Tools before Google IO 2013.

Thus for right now its a bit of a pain but Google had to act as if the MotoDevStudio downloads were still accessible than there would be all these support questions in the forums which would take away from the other developer support questions they need to answer..  Thus, in summary before the next release of Android Tools and the ADT to get the same MotoDevStudio For Android feature set you will have to click on the link above and than click on the link under Core plugins and follow the build instructions to get those plugins to install in Eclipse.

Sunday, November 25, 2012

MVC-MVVP for Android

Despite being weighed down by Gig posts in the Chicago area from startups with no money, I have been thinking about the UI MVC-MVVP problem set. iOS has had a MVC approach for awhile but on the android java side until interface and annotation and dependency injection performance get fast enough we avoid many interfaces and other bad choices to deal with it instead of facing it head on.

But what if we start with an anti-pattern? And this is where the java knowledge separates the average android developer from the expert android developer. In Java Swing there is an anti-pattern of an event bus that is in fact serving as the callbacks in swing. I say its an anit-pattern because its not the normal way most are use to seeing the commands passed between MVC-MVVP layers.

If we extend this further and have all objects that operate as a command between layers than we have an anti-type MVC-MVVP in that its not heavily using interfaces and the callbacks are event queue based. Why would this be important other than having  a modular approach to application UI development?

Lets review UI optimization techniques:

1. Reduce the levels between parent and child to get to the invalidate and redraw faster.
2. Reduce the dependencies per callback
3. Reduce the number of interfaces as its a performance hit

The above approach directly reduces point 2 and 3 and indirectly reduces point 1. As the first component choice that leaves Square's Otto out of the mix for use as the event bus library.

EventBus by GreenDroid is not bad as it avoids annotations, yeah, but is missing some features. Sounds like I have a set of libraries to build.

Tuesday, November 20, 2012

Resuming SDK Manager dowloads

Sometimes we Android Developers may be using a mobile broadband connection and one of the problems with that is the connection is not always that stable.

As you know the Android SDK manager does not resume downloads. The trick is to understand that you can use some know-how and wget -c to get it done. If you view the cache in your android meta hidden folder at your computer user root folder you will notice the dl-ssl.google.com url.

That is not the base url to use, its dl.google.com/android./repository at least for the android Google stuff to download. The 3rd party downloads have the right download base url as the last url line in the individual item descriptions in the xml files.

Works real well, as I have downloaded stuff while at an eating place that provides wifi. Once downloaded you  than unzip it and place it in the right place in the SDK.

Thursday, November 15, 2012

Eclipse Juno PMD Plugin

For those Android Developers who still use a small part of the Eclipse PMD plugin, the Juno version of the plugin is at:


That is the update site url and this plugin uses PMD 5.1, and the snapshot for that is at:


You will want the last successful artifact jar.

Monday, November 12, 2012

DocLava Does Diagrams

My DocLava does class diagrams:

Not a great hack but a hack just the same. Now the fun with xsl begins as I convert the codeQA XSL files to do the proper project headers and footers.
Its not great coding, but sometimes you have to get down to this level and take of these details so that project information is easy to generate rather than a bunch of broken work-flows.

Want to code in Go on Android?

Want to code in GO on Android?  As you know recently the GCC 4.6 changed to enable support for the GO computer language by integrating GCCGO. Thus if we get NDK toolchain to enable GO we than can code in GO using NDK in the Android context.

Someone started an open issue about it. Vote up this issue.

Sunday, November 11, 2012

DocLava Progress

Okay, so at the last set of tracking minor errors, AOSP style project pages:

Once the final errors are fixed than the final magic trick of embedded class diagrams.


Okay which one of you  jokers or readers has an embedded FoxBoard with CriOS on it ?

Is not CrisOS getting kind of old by now as most of you switched to openwrt? If you are that reader and do not mind send me a picture of the device using my G+ profile email form a I am curious of what device you came up with.

Saturday, November 10, 2012

DocLava changes for GWSDroidLava

As I stated before, I found out that AOSP has the correct DocLava variant that has the working embedded javadocs in website features. That would be this source right here.

My change is not so much as a fix but a modification to generalize some things so just average common android or java developer can just reuse my  projects template source and just change the text and go and output their project website.
Thus I changed the DocFile to instead look for website subfolders instead of the normal sdk folder layout when setting to output the cs files.

Loading ....

Starting at line 110 are my changes. Obviously, if someone wants a different subolder structure they might have to override something or add some additional head properties to some jd files. But, for the most part it gets them there as far as being able to pick up the project right away and reuse with minimum fuss or mess.

Android SDK New Build System

A post ago I talked about that Google is in the process of developing a new build system for application developers using Gradle which is in fact Groovy based. Since there only at version 0.2 right now that may be a slight wait as they still have IDE ADT integration, RenderScript support, NDK support, ProGuard support, Lint Support, emma support, and JUnit report.xml and html generation.

But, one should still start getting an idea of how it works so some resources:

New Build System Concepts

Using the New Build System

Gradle User Guide for 1.2

Gradleware.org also has a free book if you register and the link is on the front page of the gradle.org site.

For those who want to play with it now, the current alpha release is in the maven repo under android tools and its current version is 0.2. Its not the gradel android plugin at github:

Maven repo new Build System Gradle Android Plugin

So when will we see it in the ADT plugin or full sdk? Not sure, it be a nice holiday present if we get it before the last major holiday of this year.

Friday, November 9, 2012

Android Google and Gradle

Well, my hopes have been granted. Google did commit enough extra resources to polish up the Gradle Android plugin along with the code committers of that project and thus the brand new build system in ADT 21 is Gradle.

The brief note guide is here.

Congrats to both the Gradle team and the Gradle Android Plugin team and Google for making this happen.

What I like about it is they solved as I read it most if not all  of the issues that they started with to solve. We can now do multi-flavor builds with apps, etc. We now have either Maven or Ivy dependency management by default.
And we also have full support of the BuildConfig class ot modify it to fit our needs.

And of course now the Gradle Android plugin  supports Android Librayr Projects.

To get access now you have to get the ADT 21 Preview, but hopefully soon it be released in possibly November? well we hope so.

Thursday, November 8, 2012

Android Names

Every wonder where the how the Product names get determined?  Its somewhat simple, every product name is named for desert using letters of the alphabet starting with 1.5 being cupcake. In build numbers its the first letter.

Thus the next android OS major version, probably 5.x, will be some desert name starting with K or just maybe KeyLimePie. Android OS 6.0 will have a name starting with L, or just for example it might be Licorice.

What happens when they run out of letters? There is a key phrase in the OHA bylines in that the Android OS mobile platform is the FIRST product of the OHA and not the last.

Wednesday, November 7, 2012

Gist test

This is a gist test:

DocLava Fork

I found out recently why my issues and small fixes for DocLava might be not looked at or ignored. This is no reflection on the DocLava project or its code committers, it is what it is.

At about DocLava 1.0.2 or 1.0.3 the two versions or branches diverged. Let me explain, Android AOSP uses their own modified version of DocLava in which they made changes to that git source and than other different changes were made to the version/branch at code.google.com and thus the two branches do not match at all and you  cannot simply take changes from one branch and add to the other.

This also means that if you want the WORKING COPY OF DOCLAVA with the
EMBED WEBSITE feature working you want the AOSP copy. And this brings up another nice discovery.

The thoughtful engineers at Google have started experimenting with a new web UI for viewing android source code. Its at:


To see the doclava AOSP copy use this link:

doclava.git-AOSP copy

Thus, I will just fork the AOSP DocLava copy and keep track of the AOSP DocLava version. Basically, my changes refocus it on embedding javadocs in project websites with some generic supported project subbfolders, making separate clear silver macro pages to handle specific things to make it easier.

For lack of a better name its either going to be named GWSDroidLava or DroidLava since most of my use of it will be completing android project libraries.

Side Note: Yes I know my G+  profile description is too long and needs updated with the my static bitbucket.org site.  It will be updated soon.

First Post

So I wanted to move or re-start my Android blog with a service rather than having it be managed manually. While design and typography is important and
plays some role in how I brand my developer message around app demos, long tech articles it is not so important for daily and weekly blogging.

Expected posts here will be android code snippets, android code best practices, and later on some android hardware and android OS hacking.

Of course my main site is still: