@Override public void onCreate() { long timeToStart = System.currentTimeMillis(); super.onCreate(); settingsAPI = new net.osmand.plus.api.SettingsAPIImpl(this); externalServiceAPI = new net.osmand.plus.api.ExternalServiceAPIImpl(this); internalToDoAPI = new net.osmand.plus.api.InternalToDoAPIImpl(this); internalOsmAndAPI = new net.osmand.plus.api.InternalOsmAndAPIImpl(this); sqliteAPI = new SQLiteAPIImpl(this); // settings used everywhere so they need to be created first osmandSettings = createOsmandSettingsInstance(); // always update application mode to default osmandSettings.APPLICATION_MODE.set(osmandSettings.DEFAULT_APPLICATION_MODE.get()); routingHelper = new RoutingHelper(this, player); taskManager = new OsmAndTaskManager(this); manager = new ResourceManager(this); daynightHelper = new DayNightHelper(this); locationProvider = new OsmAndLocationProvider(this); savingTrackHelper = new SavingTrackHelper(this); liveMonitoringHelper = new LiveMonitoringHelper(this); uiHandler = new Handler(); rendererRegistry = new RendererRegistry(); targetPointsHelper = new TargetPointsHelper(this); checkPrefferedLocale(); startApplication(); if (LOG.isDebugEnabled()) { LOG.debug( "Time to start application " + (System.currentTimeMillis() - timeToStart) + " ms. Should be less < 800 ms"); } timeToStart = System.currentTimeMillis(); OsmandPlugin.initPlugins(this); if (LOG.isDebugEnabled()) { LOG.debug( "Time to init plugins " + (System.currentTimeMillis() - timeToStart) + " ms. Should be less < 800 ms"); } }