Monday, September 28, 2015

Android, FreeBSD, and the Golden Ticket Demistyfied

"We don't support FreeBSD officially, so you'll have to run you custom Android Studio built from source."
— [source]
With regards to applying FreeBSD as a desktop operating system, the author of this article may presently endeavor to "Skip ahead" from recounting an initial installation of FreeBSD onto an HP Pavilion PC's EFI architecture -- with a small configuration in the laptop's EFI boot-time processes, FreeBSD boots, more easily so than on the author's own older MBR/BIOS-style laptop. The author is presently running the Cinnamon desktop, augmented with an installation of Microsoft Windows 7 in VirtualBox. Although the Pavilion PC's hardware isn't completely supported in FreeBSD 10.1, but it's sufficient to maintain a usable desktop with FreeBSD -- no clutter, no advertisements, nothing but plain computing with the FreeBSD brand of UNIX.

It's theoretically possible, certainly, to develop a DITA topic repository as for the interest of presenting documentation to FreeBSD users and FreeBSD developers, in a centrally organized manner. Such a topic repository -- it might much resemble a Wiki, in style, though more centrally managed, such as viz a viz FOLDOC -- it might not be a light feat to undertake, however. Of course, there's already the FreeBSD Wiki, the FreeBSD Handbook, and the FreeBSD manual pages, all available as immediate documentation about components of the FreeBSD kernel, the FreeBSD base system, and ports available in FreeBSD. So much as in assuming that a manner of technical documentation may be of some assistance, in developing FreeBSD, the author of this article wishes to assume furthermore that a topic-oriented manner of documentation -- as may be developed onto a DITA format -- may be of some use for developing unambiguous documentation with regards to applications of FreeBSD. Of course, if there may be some disagreements about exact topical labeling and depth of overall content, maybe it would be only a "Paper project," after all.

So, while the author of this article considers that it may be useful to write more documentation about FreeBSD, but the "Central DITA topic repository" model, as an idea, it may not seem as immediately feasible as much as it may seem immediately ideal to an overview of FreeBSD.  Instead, the short and no doubt in-a-populist-light "Odd" notes at this web log may have to be sufficient, for developing so much as a stub of "New" documentation.

What's to denote, "Newly" about the Android operating system? It's an operating system applying a Linux kernel -- different to other UNIX operating systems, and different to even the Linux desktop operating systems, in some ways. The Android Operating System features some components developed by the Google Android project, some of which components are distributed individually in the Google Play Services package for Android. No doubt, Google is the primary commercial institution developing the Android platform, but there is some development support available from individual vendors and developer institutions, furthermore, such as with Samsung.

The Android operating system may be meaningfully contrasted to any number of other mobile operating systems, such a BlackBerry 10 and its QNX baseline, or iOS mobile. The Android operating system, in itself, is not all of the Google Play Android App Store, but certainly there's to one of the primary incentives to develop with Android -- as towards any possibility of developing an income from software development, moreover in software development applied onto the Android platform. Of course, as with many things, a topic of Android development may not stay forever contained of its own definition -- entailing, naturally, concepts such as of build automation, software distribution, and later issue tracking.

The author of this article would not propose to raise a barn about Android, without first denoting that someone shall have to shovel out the stalls -- as in a metaphor onto Farmville, if not a metaphor to actual farming -- albeit, at some risk of trivializing the interactions with Android users, in the metaphor, perhaps moreover a risk of trivializing any nature of farming. Android users being individual persons, there's certainly much that can be said as to how provide effective customer support in the Android marketplace.

It might seem to be of a different kind of  media than of a typical commercial support counter, but -- in being fully aware of the shovel and the stall, so to speak -- it may remain a  manageable endeavor, to provide customer support even to any very demanding customership in the Android marketplace.

One chooses one's metaphors carefully, when choosing a metaphor with a bit of pith to it.

Could it be, then, a glimmer of the much sought after "Golden ticket," that it is possible to develop an Android application on the FreeBSD platform? It  may not be the entry pass to all of Willy Wonka's own private theme park, but perhaps it may be worth a sincere synopsis at least.

[Article Draft Nr. 1]

Outline for Article Drafts Nr 2+ : Resources
  • Library (Literal)
    • Safari Books Online [www] (fee-based service)
    • Google
  • Baseline Support
    • Java [info]
    • Linux Emulation [info]
    • USB [info]
    • If YouTrack: 
      • HTTP Server - Apache HTTPD, Nginx, or other
      • Java Servlet Engine - Tomcat, Jetty, or other
  • Android Developer Tools
    • ADB [port]
    • Fastboot [info] [port]
    • Simpleperf [port]
    • Android SDK [patch]
      • Bundled with Android Studio
      • Available separately for ADT and other toolchain applications
    • Android NDK [?]
      • May not be needed for all Android development projects
      • Linux emulation (?)
    • Vendor-Specific Developer Support - Android Developers
  • Documentation Tools
    • Emacs
    • DITA Open Toolkit
    • DocBook
  • IDE Integration for Android Development
    • Android Studio
      • See also: Android SDK
    • Android Developer Tools (ADT) and Eclipse IDE
      • See also: Android SDK 
    • Emacs (??????)
  • Android Emulators
  • Build Automation
  • Network DevOps
    • Code Signing and Distribution
    • Continuous Integration
      • Jenkins
      • Travis CI
      • ...
    • Change Management
      • Git
      • SVN