Android + NDK tips, part 1: Glossary
Android Glossary - the minimum you need to know
- Activity: One screen of an application. Similar to a top-level window on other platforms.
- View: Established terminology be damned. A "control" or "widget" on all other platforms is a "view" on Android.
- Layout XML: Describes an arrangement of views. Equivalent to a dialog resource on Windows, but in XML. Android layouts are auto-resizing, like WPF/XAML, but don't support data binding and must be accessed in a tedious manner via resource ID numbers in Java, much like MFC/Win32.
- Layout class a.k.a. ViewGroup: A container for a set of Views, that is, a parent control. Most ViewGroups control the way their children are arranged, except for the AbsoluteLayout. Probably the most common ViewGroup is LinearLayout, which stacks controls vertically or horizontally (but not both).
- Intent: A Java class that represents an action to perform. The most common Intent is a request to start an Activity.
- Eclipse: The world's most popular open-source IDE (and perhaps the most resource-hungry).
- Dalvik: The thing that runs Java code on Android.
- R: An auto-generated java class that holds all the application's resource IDs.
- NDK: Native (C/C++) development kit.
- JNI: Java native interface. A system whereby Java can call C functions and C/C++ can call Java through a reflection-like interface. Unlike C# P/Invoke, Java JNI cannot call arbitrary C functions; the C functions must be specifically designed for JNI.
- lib*.so: Shared object. Equivalent to *.dll on Windows, but *.so files MUST start with "lib".
- *.apk: Android package. Comparable to a *.cab on Windows Mobile or a Java *.jar file, the *.apk is actually a *.zip file in disguise. It holds your application, all of its resources and bitmaps, and any *.so files.