Skip to content
Ken Kousen edited this page Oct 15, 2018 · 2 revisions

Basic Android Development

Safari Books Online, https://www.safaribooksonline.com/

This document is for notes that come up during class. It’s also an easy way to share code and other materials.

Relevant GitHub repositories:

Setup: The officially supported IDE is Android Studio, downloaded from https://developer.android.com/studio/index.html

Main site for everything related to Android is https://developer.android.com/index.html . Start here for everything :)

The Android dashboards are updated (roughly) once a month, located at https://developer.android.com/about/dashboards/index.html . They show devices accesses to the Google Playstore, broken down by Android version.

APK → Android package; deployment module for an app

AVD → Android Virtual Device, or what we call an emulator.

The original virtual machine for Android was called Dalvik (or DVM). Later they implemented ART (Android Runtime).

DEX → Dalvik Executable, the format used by apks.

"Sun" Java Editions

  • Standard Edition

  • Enterprise Edition (now hosted at Eclipse), reference implementation now officially named "Jakarta EE"

  • Micro Edition, competitor to Android. Android was based on the open source Apache Harmony project.

Mobile is a field with two winners.

Apple makes money from hardware

  • They use software to sell the premium hardware

  • Their integration between hardware and software is excellent

Google makes money from services

  • They want their services everywhere

  • This means low-cost devices are helpful

Both companies have achieved their goals

  • Apple dominates the high end market (where the money is)

  • Google is everywhere

Market share statistics are correlated to income levels.

Toolkits for generating Android and iOS apps

  • Apache Cordova (used to be PhoneGap)

  • Ionic

  • Titanium (Appcelerator)

  • Flutter

  • React Native

  • Xamarin

  • Kotlin Native

Kotlin is a programming language based on Java that runs on the JVM

i18n → internationalization (because there are 18 letters between the i and n in the word internationalization)

  • Uses "resource bundles" for individual "locales" — Locale → country/language/variant

  • Also for error messages

HAXM → Hardware Accelerated Execution Manager

  • uses virtualization to speed up the emulator

gravity → moves the contents of a widget layout_gravity → moves the widget relative to its parent container

Retrofit → API for accessing RESTful web servicesm located at http://square.github.io/retrofit/

  • Can be used both synchronously and async

  • Based on a networking library called OkHttp

Dagger 2 → dependency injection (similar to Spring framework), located at http://square.github.io/dagger/

Testing:

References

Clone this wiki locally