Webinar Wednesday: First Beta
I will be offering live webinars starting in 2014, and I will be hosting a few “beta” Webinars first, to test my chosen Webinar service and the general approach towards presenting these webinars.
The first such beta will be reprising the “External Display Support Using DisplayManager” presentation that I delivered at Samsung DevCon a bit over a month ago. If you were unable to attend that event, and would like to learn more about how your app can send separate content to an external display (TV, monitor, projector, etc.), feel free to sign up! This first beta test is limited to five attendees, though I will open up more seats for future webinars.
This one-hour webinar is being held on 11 December at 2pm Eastern Time. Future beta tests, plus the “for realz” Webinars, will be held at various times of the day. I will try “spanning the globe, to bring you a constant variety of” Android development topics, at times that are convenient for you.
You will need a PC or Mac with Adobe Flash 11.5 support. For Linux users, this pretty much means that you need to use Google’s Chrome browser (note: not Chromium). You can run a system check to confirm that you will be compatible. Audio will be handled through the webinar app, so you will not need a dial-in number. We will handle questions through the webinar’s chat area and optionally via microphone (if you have one).
To learn more or sign up:
If you have any questions regarding the webinars, feel free to contact me.
—Dec 03, 2013
The Busy Coder's Guide to Android Development Version 5.4 Released
Subscribers now have access to the latest release of The Busy Coder’s Guide to Android Development, known as Version 5.4, in all formats. Just log into your Warescription page and download away, or set up an account and subscribe!
This release is mostly to clear up various production issues with the books, after I switched over to new book generation tools:
The handful of messed-up images, like Figure 1 and Figure 2, are fixed
The EPUB works with Google Play Books again
The APK has the chapters in the right order in the
I sincerely apologize for those flaws.
As previously announced, I have removed the Maps V1 chapter, so if you are using Maps V1, be sure to keep your copy of Version 5.3 to refer back to that chapter.
I replaced it with a chapter on Gradle dependencies: JARs, sub-projects, library projects, AARs, artifacts, and the like. I want to add more to this chapter in the next release, such as more case studies.
Version 5.5 of the book should come out in late January, with more Gradle, Android 4.4, and wearables coverage.
—Dec 02, 2013
App Ops Developer FAQ Updated
News broke yesterday that App Ops is back in Android 4.4.
I can confirm that it does indeed work, with much the same behavior as we saw with Android 4.3, albeit with a slightly different way of launching it. A hat tip to Gabriele Mariotti for the launching info.
I have updated my App Ops Developer FAQ with the latest information.
—Nov 26, 2013
Warescription Referral Program Beta
I am seeking beta testers for a Warescription referral program.
Under this program, you get credit added to your own Warescription if others purchase Warescriptions via a custom URL. Specifically, any month in which somebody purchases via your referral URL, you get a month added to your own Warescription.
Right now, this is a closed beta. If you are interested in joining the beta, email firstname.lastname@example.org and provide me your Warescription user ID, and I can supply you with more information. I will update this post when I have enough beta participants.
Note that the referral program is only open to those with an already-active Warescription. I hope to open this program up to anyone with an active Warescription in January.
—Nov 25, 2013
libhoudini: What It Means for Developers
At AnDevCon last week, I found out about
libhoudini, so while it is a bit of tech that has been around for a while, I suspect that other developers may have missed out on it as well.
libhoudini is a proprietary ARM translation layer for x86-powered Android devices. It allows an app that has NDK binaries for ARM, but not x86, to still run on x86 hardware, albeit not as quickly as it would with native x86 binaries.
Given ARM’s near-stranglehold on the Android ecosystem,
libhoudini is hugely useful for Intel and hardware vendors interested in using Intel’s mobile CPUs. Without it, only apps that ship x86 NDK binaries would be compatible with x86-powered devices like the Samsung Galaxy Tab 3 10.1” tablet. Some developers probably skip x86 NDK binaries, because they are not aware of popular x86-powered devices, or lack one for testing, or are concerned over APK size. The Play Store for x86 would shrink substantially from the million-plus apps available to ARM devices, to those that do not use the NDK or happen to ship x86 binaries.
libhoudini makes ARM-only NDK binaries usable on x86, giving x86-powered Android devices access to more of the Play Store catalog.
However, it is slower.
As an experiment, I ran the test suite for SQLCipher for Android on an ASUS MeMO Pad FHD 10, both with the x86 binaries and without. After all, some developers are nervous about using SQLCipher for Android for encrypted data stores due to the size of the library. Supporting x86 in addition to ARM adds another 5MB to the app, on top of the 6.5MB spent for ARM and the platform-neutral pieces. Being able to use SQLCipher for Android without the x86 binaries might be useful, particularly for apps bumping up against APK size limits, like the 50MB limit on the Play Store.
The good news is that SQLCipher for Android runs nicely on
libhoudini-equipped x86 hardware, without the x86 binaries.
The bad news is that the test suite takes about three times as long.
Now, the test suite is not geared towards performance testing, nor is is necessarily indicative of the performance you would see in production code. Hence, you may wish to do your own testing. Testing is easy enough: just temporarily move the
x86/ directory from
libs/ somewhere else, then recompile and test on
libhoudini-equipped hardware. If you do not have your own
libhoudini-equipped hardware, you may be able to take advantage of services like Samsung’s Remote Test Lab, which recently added the Galaxy Tab 3 10.1 to its lineup.
If you have the space for it, include the x86 binaries for your NDK-compiled libraries. This will give you maximum speed for little incremental engineering cost. However, if space is at a premium,
libhoudini may allow you to reach many of the same x86 devices, but be sure that your app will run acceptably given the performance overhead.
—Nov 21, 2013