Programming for Android
Techniques and tools to build an Android application on the desktop or directly on the mobile
Android was a startup specializing in creating software for mobile and had 8 employees in 2005. Their first thought was to turn to Samsung for funding, but the meeting did not go well. The team of the startup moved to Seoul to make a demonstration of Android, which was a different OS running applications, in front of a panel of engineers and leaders of the Korean company which shown unconvinced. When the team left the room, the assembled laughed!
A few weeks later, Android was bought by Google for $50 million. Now, no one laughs at Samsung, which represents 80% of sales of mobile devices equipped with this system.
Between 2008, year of the launching of Android and 2013, the system generated to Google $ 31 billion revenues and achieved $ 22 billion profit. These figures were revealed by one of the lawyers of Oracle at trial that opposed the firm to Google (trial lost by Oracle). This lawyer was then himself the subject of a trial for revealing these confidential data.
Google has federated a lot of players in the mobile domain around its initiative in an entity called Open Handset Alliance whose logo is displayed on the right. It is comprised of operators as Telefonica, Telecom Italia, phone manufacturers including LG, Motorola, Samsung, founders components: Intel, Nvidia, Texas Instruments and Net players like eBay.
Open platform
Android, is more than an operating system, it is also a user interface and
a platform for applications created by Google. Being open, it will enable
independent programmers to create software for mobile devices.
The main advantage over current systems such as Windows Mobile, is a full
access to the hardware, while it was limited so far.
An SDK is already
available for developers.
Applications provided by Google include Gmail, Google Mobile (search engine),
Calendar, Google Documents, Youtube, Maps...
RenderScript is a 3D rendering API using the graphics processor and is available for the Android 3.0 tablets.
However it is expected in the near future to merge Android 2 and 3, so we should also have one day this on smartphones. This interface is part of the SDK, and programmed in a language close to C, compiled in intermediate code.
Dalvik is a virtual machine that interprets the object code from compiling a Java source (or other language).
To cope with the inconvenience that may possibly arise from the Oracle lawsuit against Google, about Dalvik, the virtual machine for Android, which has the disadvantage to not have been produced by them, the Fosdem foundation launched the projet of its own version of Android entirely based on code licensed under GNU, GNUDroid. This project described in an event called IcedRobot does not seem to have succeeded and is still frosted. It was followed by CryanogenMod which in turn has been followed by LinageOS.
In fact, there is a version completely open source of Android, AOSP, provided by Google and usable by all. It was used by Nokia for its X and X+ smartphones in 2014.
See the flow chart showing how is built Android and structure of applications, an internal description of the system. .
Programming tools for Android
The version 3.0 of the Android SDK still contains an emulator for testing applications on a virtual mobile phone. It is as committed to slates as smartphones and supports larger screens. To do this, the user interface has been completely redesigned.
New components are added to the library. The applications have been rewritten to a more intuitive using.
The support for M3U playlist URL should allow to view TV on a tablet with a tool such as VLC.
- Android Studio. Development toolkit with IDE and emulator. See also the NDK. To program in C++ and make native code.
- Terminal IDE. Command line and development tools for Java and C on Android. This allows to work directly on the mobile device. Git is included in the IDE.
- App Inventor. Abandoned by Google but maintained by MIT, which is the creator, this tool can automatically generate an application.
Other tools
- Mono for Android. Programming in C# with Dalvik as backend.
- Distribution of versions. Based on Android versions that have been connected to the Google Play store, lets you know what functions to implement in an application. You also needs to know which version supports them.
Documents
- Open Handset Alliance.The committee for Android.
- Android and Nexus One. Android vs. iPhone.
- The Android project. On the blog of Google.
- First video.
- Emerging UI pattern. Evolution of the Android interface, and the end of dashboard.