Как работает Cold Start - что загружается до запуска приложения
Мои вопросы общие, но я сделаю это как можно конкретнее. При попытке настроить приложение и в старом телефоне холодный старт занимает около 8 секунд. Нормальный (теплый) старт - 0,5 сек. Поэтому мой вопрос касается того, что происходит при холодном старте и что приложение делает в течение 7,5 секунд при холодном старте.
Приложение использует слайдер из этого урока
OnCreate на всякий случай необходимо:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Checking for first time launch - before calling setContentView()
prefManager = new PrefManager(this);
if (!prefManager.isFirstTimeLaunch()) {
launchHomeScreen();
finish();
}
// Making notification bar transparent
if (Build.VERSION.SDK_INT >= 21) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
setContentView(R.layout.activity_welcome);
viewPager = (ViewPager) findViewById(R.id.view_pager);
dotsLayout = (LinearLayout) findViewById(R.id.layoutDots);
btnSkip = (Button) findViewById(R.id.btn_skip);
btnNext = (Button) findViewById(R.id.btn_next);
// layouts of all welcome sliders
// add few more layouts if you want
layouts = new int[]{
R.layout.welcome_slide1,
R.layout.welcome_slide2,
R.layout.welcome_slide3,
R.layout.welcome_slide4};
// adding bottom dots
addBottomDots(0);
// making notification bar transparent
changeStatusBarColor();
myViewPagerAdapter = new MyViewPagerAdapter();
viewPager.setAdapter(myViewPagerAdapter);
viewPager.addOnPageChangeListener(viewPagerPageChangeListener);
btnSkip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
launchHomeScreen();
}
});
Изображения оптимизированы с TinyPng
Так что в этом нет ничего тяжелого, я думаю, приложение выполняет больше заданий при холодном старте.
Я читаю учебные пособия по оптимизации холодного запуска и всем ссылкам на onCreate, изображения и т. Д. Для ПЕРВОГО занятия.
Итак, мои вопросы:
Холодный старт имеет отношение ТОЛЬКО к интро-слайдеру? Или это связано и с другими вещами? Влияет ли использование огненной базы на холодный старт? Сторонние библиотеки типа Пикассо влияют на холодный старт?
Обратите внимание:
Приложение имеет размер 22,4 МБ и по какой-то странной (до сих пор) причине имеет кэш-данные в телефоне 33 МБ (на мой взгляд, выглядит немного большим). Это влияет на холодный старт?
Подумайте, я новый программист, прежде чем ответить. Спросите, нужно ли что-нибудь еще.