title: how to make the android app load faster?
body: <p>I have designed an application for android, in which i am showing a splash screen before the main activity is started but the application takes 5-7 seconds to start on low-end devices. I want to reduce that time to as low as possible. I have been trying to reduce the things to be done in <code>onCreate()</code> but now i cannot remove any thing more from that. I am pasting the code that i have used to show the splash and the code from MainActivity. Please help me in reducing the startup time of the application.</p>
  
  <p><strong>Splash.java</strong></p>
  
  <pre><code>@Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      this.requestWindowFeature(Window.FEATURE_NO_TITLE);
      setContentView(R.layout.activity_splash);
      txtLoad = (TextView) findViewById(R.id.txtLoading);
      txtLoad.setText("v1.0");
  
      new Thread() {
          public void run() {
              try {
                  sleep(1000);
              } catch (InterruptedException e) {
                  e.printStackTrace();
              } finally {
                  finish();
                  Intent intent = new Intent(SplashActivity.this,MainActivity.class);
                  startActivity(intent);
              }
          }
      }.start();
  }
  </code></pre>
  
  <p><strong>MainActivity.java</strong></p>
  
  <pre><code>@Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      this.requestWindowFeature(Window.FEATURE_NO_TITLE);
      setContentView(R.layout.activity_main);
      editType1UserName = (EditText) findViewById(R.id.editTextType1UserName);
      editType1Password = (EditText) findViewById(R.id.editTextType1Password);
      editType2UserName = (EditText) findViewById(R.id.editTextType2UserName);
      editType2Password = (EditText) findViewById(R.id.editTextType2Password);
      editType3UserName = (EditText) findViewById(R.id.editTextType3UserName);
      editType3Password = (EditText) findViewById(R.id.editTextType3Password);
      editType4UserName = (EditText) findViewById(R.id.editTextType4UserName);
      editType4Password = (EditText) findViewById(R.id.editTextType4Password);
      mTxtPhoneNo = (AutoCompleteTextView) findViewById(R.id.mmWhoNo);
      mTxtPhoneNo.setThreshold(1);
      editText = (EditText) findViewById(R.id.editTextMessage);
      spinner1 = (Spinner) findViewById(R.id.spinnerGateway);
      btnsend = (Button) findViewById(R.id.btnSend);
      btnContact = (Button) findViewById(R.id.btnContact);
      btnsend.setOnClickListener((OnClickListener) this);
      btnContact.setOnClickListener((OnClickListener) this);
      mPeopleList = new ArrayList&lt;Map&lt;String, String&gt;&gt;();
      PopulatePeopleList();
      mAdapter = new SimpleAdapter(this, mPeopleList, R.layout.custcontview,
              new String[] { "Name", "Phone", "Type" }, new int[] {
                      R.id.ccontName, R.id.ccontNo, R.id.ccontType });
      mTxtPhoneNo.setAdapter(mAdapter);
      mTxtPhoneNo.setOnItemClickListener((OnItemClickListener) this);
      readPerson();
      Panel panel;
      topPanel = panel = (Panel) findViewById(R.id.mytopPanel);
      panel.setOnPanelListener((OnPanelListener) this);
      panel.setInterpolator(new BounceInterpolator(Type.OUT));
      getLoginDetails();
  
  }
  </code></pre>