Friday, November 22, 2013

Every. Single. Time.

The Play Store app is somewhat special among Android apps, in that it is updated silently.  Google recently updated their Play Store app to use the new drawer layout.  It has been rolling out over a several-week span.

When I got it a couple of weeks ago, I realized it only because the menu went from around six items, down to just two.  Fortunately, I had read that this update was coming, so I figured out pretty quickly that the other menu items had been moved to a drawer and all was well.

A few days later, my son couldn't find the 'installed apps' section.  I showed him the new drawer and all was well.

More recently, my elder daughter couldn't find the 'my wishlist' section.  I showed her the new drawer and all was well.

I know other cases of people encountering this little bump in the road.  On Google's Android development site, there is discussion about the relatively-new drawer pattern.  There is even discussion of how to introduce users to your app's drawer, so they won't be confused.  Too bad the Google Play Store app developers couldn't have paid a little closer attention to Google's developer suggestions.

Sunday, November 17, 2013

I'll Get Started, After My MTE...

C'mon Jon, I'm just starting chapter three and you're really pulling the rug out from under one of my stand-by excuses.  What do you mean I can start living with purpose today, without having 'found my purpose'?  See here's the deal as I've figured it to this point...

First you're supposed to plan out an extended weekend where you can get away by yourself.  Preferably it should be some rustic cabin in the middle of nowhere, so there are no distractions and you can be alone with God and His creation.  While you're there you spend a ton of time resting and praying.  You have a Mountain-Top Experience (MTE1) with Him, and somewhere in there he gives you a vision revealing your One True Purpose (OTP2) in this life.  Then you can start living life to its fullest.

I'm running out of excuses here Mr. Acuff.  Give me a break, will you?


1. MTE - I don't plan to actually use that acronym again, but the term is thrown around so much in Christian circles that it seemed to deserve an acronym.
2. OTP - Alright, you caught me. I just like acronyms.

Tuesday, November 12, 2013

Improving Android App Tear-downs

Every now and then, I've done app tear-downs a la Ron Amadeo (unpublished though).  My primary tools have been apktool and meld.  I noticed that sometimes there was a lot of noise in the smali folder from changing 0x7f...... literals.  I determined that this was happening because of changes in the resource ID mapping.  For instance R.string.xyz might map to 0x7f010001 in one version of an app, but map to 0x7f010003 in the next version.

So a few months ago, I wrote a small Java program that parsed the ID's in res/values/public.xml and inserted comments in the smali files where matches were found.  I could then add rules in meld to filter this noise out.  I wrote the program in Java with the thought of eventually merging it with apktool.  However, it has just set there.

A few days ago I decided to push it forward.  I contacted the apktool developers on IRC and decided that it should really be integrated with baksmali.  By putting it there, the comments could be generated as the smali files are generated, rather than inserted in a post-process.

Making the changes to baksmali was harder than I expected, but I finally got it working.  It is still a bit rough, but this morning I made a pull request via github.  If it makes it in, there will still be some work to do on apktool, but I believe the hardest part of the coding is past.  Hopefully app tear-down will soon be just a tiny bit easier for everyone.