Как работает Cold Start - что загружается до запуска приложения - PullRequest
0 голосов
/ 23 февраля 2019

Мои вопросы общие, но я сделаю это как можно конкретнее.При попытке настроить приложение и в старом телефоне холодный старт занимает около 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, изображениям и т. Д. Для ПЕРВОГО занятия.

Итак, мои вопросы:

Холодный старт имеет отношение ТОЛЬКО к интро-слайдеру?Или это связано и с другими вещами?Влияет ли использование огненной базы на холодный старт?Сторонние библиотеки, такие как Picasso, влияют на холодный запуск?

Примечание:

Приложение имеет размер 22,4 МБ и по какой-то странной (до сих пор) причине имеет кеш-данные в телефоне33 МБ (выглядит немного большим, на мой взгляд).Это влияет на холодный старт?

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

...