posted 2 years ago
This is the FAQ for the Android forum. It's editable by everyone, so feel free to add content to it.
What Java API is supported by Android? How does it differ from JME? Where can I get an SDK? What platforms does it support? Do I need to buy hardware if I want to start writing applications that run on Android? Which hardware devices support Android? What is Dalvik? How is it different from JVM? What are the different Media formats supported on Android? Where can I publish my Android applications? How can I get insight into how people are using my app? I'd like to display ads in my app without having to negotiate it all by myself. What are my options? What support does Android or Dalvik VM provide for running native C code? How can I view PDFs and Office documents? Which Android versions are being used out in the field? Is Android code compiled to a .class file? I want to write Android Applications too but dont know where to start? Do Android projects have deployment descriptors? My Application throws an Exception, where is the Stack Trace dumped? What functionality of the actual device can the emulator emulate? How can I send email from an Android application? How can I use JAXB on Android? What options for storing data do I have? What 3rd party libraries should I check out? How do I get the Android source code?
Android Home Page Developer Guide API Reference
Application Security for the Android Platform by Jeff Six Professional Android 4 Application Development by Reto Meier Introduction to Android Application Development: Android Essentials and Sams Teach Yourself Android Application Development in 24 Hours by Shane Conder and Lauren Darcey Advanced Android 4 Games by Vladimir Silva Learn Java for Android Development by Jeff Friesen The Android Developer's Cookbook: Building Applications with the Android SDK by Schwarz, Dutson, Steele, To
Following the Android Developers Blog is a must. In-depth tutorials on many subjects by Lars Vogel Frameworks for developing cross-platform mobile applications: Rhodes, Titanium Mobile, Unity, Corona, Pyxis Mobile, Infinite Monkeys, Kendo UI, Apache Cordova (formerly known as PhoneGap), Tabris Android 4.4, KitKat: The complete FAQ Android 5, Lollipop: The complete FAQ Android 6, Marshmallow: The complete FAQ Android 7, Nougat: The complete FAQ Android 8, Oreo: The complete FAQ
Other Android variants
WikiPedia:Fire_OS is developed by Amazon and also based on the AOSP; it runs on Amazon's Kindle family of devices: FireOS Development BlackBerry 10 can run repackaged Android apps : http://developer.blackberry.com/android/ Not really a variant, but Windows Phone 10 can run Android apps that have been adapted to it, as well as Cordova apps
- The latest version of the SDK is for Android versions up to 4.4, and it's available for Windows, OS X and Linux here.
- You can start writing applications even if you don?t have hardware to run them on. The Android SDK comes with an emulator and all tools necessary for application development and deployment.
- Other options include the freely available Motodev Studio for Android IDE from Motorola and Google's Android Studio which is based on IntelliJ.
- It no longer makes sense to keep a list, since are there are so many of them. An incomplete list can be found at WikiPedia:List_of_Android_devices
- Dalvik is a register based virtual machine optimized to run on a slow CPU,with relatively little RAM and on an OS without swap space. WikiPedia:Dalvik_virtual_machine
- Google Play Store, formerly known as Android Market, instructions
- AndroidPIT (in German)
- AppsLib (targeted specifically at tablets)
- Amazon appstore
- GetJar (covers other mobile OS as well)
- Integrating the Google Analytics for Android library will provide you with quantitative feedback on your app's usage.
- AdMob, mobclix, Millennial Media, InMobi and JumpTap are Android-compatible ad networks. Also check out adwhirl and Kii, which put a common interface on top of several networks.
- The NDK (Native Development Kit) gives developers the ability to call into native code from Android applications. There is a Google group for NDK-related discussions. At present, Android supports libc, libm, JNI interface headers, libz, liblog, OpenGL ES 1.1 and OpenGL ES 2.0, libjnigraphics, a minimal set of headers for C++ support, OpenSL ES native audio libraries and Android native application APIs.
- Google tracks the versions that access the Play Store, which should be a useful proxy number.
- Analysis of update frequency and update speed (in German)
- The Java bytecode of a compiled class is converted into Dalvik executables or (.dex) files, using the "dx" tool bundled with the SDK . The application is packaged into .apk file which are zipped .dex files. The Dalvik virtual machine runs Dalvik executables in the apk file.
- Try Hello World tutorial.
- Read Application Fundamentals
- Try sample code distributed with the SDK.
- Try android setup in eclipse
- Exceptions are written to a log file, named Logcat in the emulator. You can obtain a dump by executing the adb logcat command. To write log messages from your application, use the static methods of JavaDoc:android.util.Log class(Log.v(), Log.d(), Log.i(), etc.). If you are using Eclipse with ADT plugin, you can open "Logcat" view to see the logged messages.
- For Emulator How-Tos and limitations, read this
- See this thread
- A JavaMail port has been written for Android and can be found here
- article on sending mail with user interaction
- Understanding Android local data store APIs introduces preferences, SQLite, and the internal and external memory APIs. See What's Your Preference? part 1 and part 2 for more information particularly on Preferences.
- AChartEngine for embedding charts
- FormEditText for validating input
- EventBus for intra-app communication
- Crouton, a more flexible and feature-rich alternative to Toasts
- Android PDF Writer for creating PDFs
- PDFjet is a commercial PDF library, but also has an open source version
- SmoothProgressBar has numerous animated progress bar implementations
Other Android variants