Для разработчиков 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. То есть тех, кто пишет исходники Андроида.




Для меня Scala не «абстрактный сферический конь в вакууме», а язык, который я использовал в нескольких реальных проектах в течение последних трех лет. Хочу сразу отметить, что мы не использовали никаких скала-фреймворков — лифт, скалаторы и прочее. Во-первых не было необходимости, во-вторых можно без особых усилий писать на scala и использовать только обычные java-фреймворки.