Как работает 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 МБ (на мой взгляд, выглядит немного большим). Это влияет на холодный старт?

Подумайте, я новый программист, прежде чем ответить. Спросите, нужно ли что-нибудь еще.

0 ответов

Другие вопросы по тегам