Для разработчиков OC Android, как и для других серьёзных программистов, существует соглашение по оформлению кода.
В целом оно совпадает с соглашением в обычной Java. Как именно нужно оформлять, можно прочитать на официальной странице для Android разработчиков.
Привожу краткую справку по наименованию полей класса:
- НЕ паблики и НЕ статики должны начинаться с “m” (анг: Non-public, non-static field names start with m).
- Статики с “s” (Static field names start with s).
- Все остальные – со строчной буквы (Other fields start with a lower case letter).
- Константы – БОЛЬШИМИ_БУКВАМИ (Public static final fields (constants) are ALL_CAPS_WITH_UNDERSCORES).
Активно используется верблюжий регистр (Camel Case).
Пример с официального сайта:
public class MyClass {
public static final int SOME_CONSTANT = 42;
public int publicField;
private static MyClass sSingleton;
int mPackagePrivate;
private int mPrivate;
protected int mProtected;
}
Наверное, гугл не был бы гуглом, если бы не внёс изменения в стандартные соглашения Java. Очень активно используются префиксы.
Для обычных полей “m” (возможно от англ. member), а для статических полей – “s” (static).
Это очень похоже на венгерскую нотацию.
Занятный факт, если пройтись grep-ом по исходникам Android-a, можно найти места, где эти конвенции не соблюдаются. Например статические поля имеют префикс “m”:
sources/adndroid-16
./android/app/ActivityThread.java: static ContextImpl mSystemContext = null;
./android/app/SearchManager.java: private static ISearchManager mService;
./android/bluetooth/BluetoothTetheringDataTracker.java: private static String mIface;
./android/content/res/Resources.java: /*package*/ static Resources mSystem = null;
./android/content/res/Resources.java: private static boolean mPreloaded;
./android/database/DatabaseUtils.java: private static Collator mColl = null;
и т.д.
Непонятно, почему так получилось. Обычно проверка правильности оформления исходного кода в крупных организациях автоматизирована.
Тем не менее, хотя принцип догфудинга по оформлению исходников гуглом соблюден не в полной мере, думаю, это не оправдание для других Android-программистов нарушать правила.
UPD! Нужно уточнить, правила действительны для контрибуторов AOSP. То есть тех, кто пишет исходники Андроида.