ApplicationInfoImpl () { ApplicationInfoImpl result = instance; if (result != null) { return result; } //noinspection SynchronizeOnThis synchronized (ApplicationInfoImpl.class) { result = instance; if (result == null) { Activity activity = StartUpMeasurer.startActivity("app info loading"); try { result = new ApplicationInfoImpl(ApplicationNamesInfo.initAndGetRawData()); instance = result; } finally { activity.end(); } } } return result; }