Android - La aplicación me va muy lenta

 
Vista:
sin imagen de perfil
Val: 21
Ha disminuido 1 puesto en Android (en relación al último mes)
Gráfica de Android

La aplicación me va muy lenta

Publicado por Luis David (11 intervenciones) el 14/12/2018 21:15:37
Es basicamente una aplicación que lista objetos aviones. Paso todas las clases importantes para que podáis ver que es lo que tengo. Tengo un menu principal que incluye un fragmento con un listview, y creo los objetos aviones en la clase principal el problema viene cuando quiero ejecutar la apk, esta se ejecuta y me muestra su correspondiente lista con su imagen y texto creado en un adaptador pero la aplicacion va muyyyyyyyy lenta. Necesito ayuda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package com.tema1.luisdalopez56.proyectoaviones;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
import java.util.ArrayList;
 
public class MenuPrincipal extends AppCompatActivity  {
 
    ArrayList<Avion> listaAviones = new ArrayList<>();
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu_principal);
 
        Avion avion1 = new Avion("A320", R.drawable.airbus_logo, "El Airbus A320 es una aeronave comercial de reacción, de fuselaje estrecho y de corto a medio alcance, desarrollada por Airbus, un consorcio de compañías aeroespaciales europeas actualmente controlada por la corporación Airbus Group.");
        Avion avion2 = new Avion("A380",R.drawable.airbus_logo, "El Airbus A380 es un avión tetrarreactor fabricado por la empresa europea Airbus, subsidiaria del grupo Airbus Group. Se trata de la primera aeronave a reacción con dos cubiertas a lo largo de todo su fuselaje, a diferencia del Boeing 747 en el que, aunque también tiene dos, la cubierta superior abarca solamente la parte delantera del fuselaje. Dispone de una capacidad máxima de 853 pasajeros en una hipotética configuración de alta densidad de clase turista.");
        Avion avion3 = new Avion("A330-900neo", R.drawable.airbus_logo, "El Airbus A330neo es un avión de fuselaje ancho bimotor a reacción que se encuentra actualmente en fase de desarrollo en Airbus para reemplazar al Airbus A330 (ahora A330ceo (\"Current Engine Option\"(opción con motor original))");
        Avion avion4 = new Avion("Boeing 747",R.drawable.boeing_logo,"El Boeing 747, comúnmente apodado «Jumbo», es un avión comercial transcontinental de fuselaje ancho fabricado por Boeing. Es conocido por su gran tamaño (fue el mayor avión de pasajeros durante más de tres décadas hasta que la compañía Airbus creó el A380), y está entre los aviones más famosos del mundo.Realizó su primer vuelo comercial en 1970 y fue el primer avión con fuselaje ancho.");
        Avion avion5 = new Avion("Boeing 777",R.drawable.boeing_logo,"El Boeing 777 es un avión comercial de reacción, bimotor, de largo alcance y fuselaje ancho fabricado por la compañía estadounidense Boeing Commercial Airplanes. Es el avión birreactor más grande del mundo y conocido frecuentemente como «Triple Siete».");
        Avion avion6 = new Avion("Boeing 737", R.drawable.boeing_logo,"El Boeing 737 es el avión de pasajeros turbofan con mayor número de unidades vendidas de la historia de la aviación. Este modelo ha sido fabricado sin interrupción por parte de Boeing desde 1967, con más de 10 000 aeronaves entregadas y 4600 pendientes de ser fabricadas a finales de marzo de 2018.");
        Avion avion7 = new Avion("Boeing 737 MAX", R.drawable.boeing_logo,"El Boeing 737 MAX es una familia de aviones de pasajeros desarrollada por el fabricante aeronáutico estadounidense Boeing Commercial Airplanes a partir de la familia Boeing 737 Next Generation. El programa se inició el 30 de agosto de 2011 realizó el primer vuelo el 29 de enero de 2016 y obtuvo la certificación de la FAA el 9 de marzo de 2017. ");
        Avion avion8 = new Avion("Boeing 787 Dreamliner", R.drawable.boeing_logo,"El Boeing 787, apodado «Dreamliner», es un avión de pasajeros de tamaño medio y fuselaje ancho desarrollado por el fabricante estadounidense Boeing Commercial Airplanes. La aeronave, de doble pasillo, puede transportar entre 217 y 323 pasajeros, dependiendo del tipo (787-8, -9 o -10). Su primer vuelo tuvo lugar el 19 de diciembre de 2009.");
        Avion avion9 = new Avion("Boeing 757",R.drawable.boeing_logo,"El Boeing 757 (pronunciado «siete-cinco-siete») es un avión comercial de fabricación estadounidense, de corto, medio y largo radio de acción, de fuselaje estrecho, fabricado por Boeing. Fue adquirido en primer lugar por Eastern Airlines y British Airways para reemplazar al 727 y entró en servicio en 1983. La producción del 757 finalizó el 28 de octubre de 2004 tras haber sido construidas 1050 unidades. La última aeronave fue entregada a Shanghai Airlines.");
        Avion avion10 = new Avion("Boeing 767",R.drawable.boeing_logo,"El Boeing 767 es un avión comercial a reacción de fuselaje ancho desarrollado y construido por el fabricante aeronáutico estadounidense Boeing Commercial Airplanes, siendo el primer aparato bimotor de fuselaje ancho desarrollado por el fabricante estadounidense.");
        Avion avion11 = new Avion("Boeing 727",R.drawable.boeing_logo,"El Boeing 727 es un avión comercial trimotor de fuselaje estrecho, de tamaño medio, construido por Boeing Commercial Airplanes. El primer Boeing 727 salió de la fábrica el 27 de noviembre de 1962. Tiene el mismo ancho del fuselaje del Boeing 707/720, lo cual redujo los costos de utillaje de Boeing y los costos de mantenimiento de las aerolíneas. Es el modelo más vendido hasta principios de la década de 1980, con un total de 1831 aviones entregados, época en que fue sustituido por el Boeing 737.");
        Avion avion12 = new Avion("COMAC C919", R.drawable.comac_logo,"El COMAC C919 es un avión de pasajeros de medio alcance fabricado por la empresa china COMAC, y con capacidad de entre 168 a 190 pasajeros. El C919 es el avión comercial de mayor tamaño diseñado y fabricado en China desde el fallido proyecto Shanghai Y-10. Realizó su primer vuelo el 5 de mayo de 2017, empezándose las entregas de pedidos en el año 2019. El C919 forma parte de un objetivo a largo plazo de China, para acabar con el duopolio de aviones de gran tamaño que existe en el mercado aeronáutico, actualmente representado por la europea Airbus y la estadounidense Boeing. Esto hace que el C919 sea un competidor directo del Airbus A320neo y del Boeing 737 MAX.");
 
        listaAviones = Repositorio.getInstancia().getAviones();
 
        listaAviones.add(avion1);
        listaAviones.add(avion2);
        listaAviones.add(avion3);
        listaAviones.add(avion4);
        listaAviones.add(avion5);
        listaAviones.add(avion6);
        listaAviones.add(avion7);
        listaAviones.add(avion8);
        listaAviones.add(avion9);
        listaAviones.add(avion10);
        listaAviones.add(avion11);
        listaAviones.add(avion12);
 
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.tema1.luisdalopez56.proyectoaviones;
 
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
import java.util.ArrayList;
 
public class listViewFragment extends Fragment {
 
    ListView listView;
    ArrayList<Avion> listaAvionesList = new ArrayList<>();
 
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return  inflater.inflate(R.layout.listview_fragment,container,false);
    }
 
    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
 
        listView = view.findViewById(R.id.listViewAviones);
        listaAvionesList =  Repositorio.getInstancia().getAviones();
 
        AvionesAdapter avionesAdapter = new AvionesAdapter(getContext(),listaAvionesList);
 
        listView.setAdapter(avionesAdapter);
    }
 
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package com.tema1.luisdalopez56.proyectoaviones;
 
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import android.widget.ImageView;
 
import java.io.Serializable;
import java.util.ArrayList;
 
public class Avion {
 
    private String modelo;
    private int imagen;
    private String detalle;
 
    public Avion() {
    }
 
    public Avion(String modelo, int imagen, String detalle) {
        this.modelo = modelo;
        this.imagen = imagen;
        this.detalle = detalle;
    }
 
    public String getDetalle() {
        return detalle;
    }
 
    public void setDetalle(String detalle) {
        this.detalle = detalle;
    }
 
    public String getModelo() {
        return modelo;
    }
 
    public void setModelo(String modelo) {
        this.modelo = modelo;
    }
 
    public int getImagen() {
        return imagen;
    }
 
    public void setImagen(int imagen) {
        this.imagen = imagen;
    }
 
    @Override
    public String toString() {
        return "Avion{" +
                "modelo='" + modelo + '\'' +
                ", imagen=" + imagen +
                ", detalle='" + detalle + '\'' +
                '}';
    }

}

Esta es un clase para comunicar los datos entre el activity y el fragment
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.tema1.luisdalopez56.proyectoaviones;
 
import java.util.ArrayList;
 
public class Repositorio {
 
    private ArrayList<Avion> aviones = new ArrayList<>();
    private static Repositorio instancia;
 
    public static Repositorio getInstancia(){
 
        if (instancia == null){
            instancia = new Repositorio();
        }
        return instancia;
 
    }
 
    public ArrayList<Avion> getAviones(){
        return aviones;
    }
 
    public void setAviones(ArrayList<Avion> aviones) {
        this.aviones = aviones;
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 110
Bronce
Ha aumentado 1 puesto en Android (en relación al último mes)
Gráfica de Android

La aplicación me va muy lenta

Publicado por Cesar (41 intervenciones) el 14/12/2018 21:37:08
Hola.

Yo le voy al peso de las imagenes,

¿De que tamaño y resolucion son?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 21
Ha disminuido 1 puesto en Android (en relación al último mes)
Gráfica de Android

La aplicación me va muy lenta

Publicado por Luis David (11 intervenciones) el 14/12/2018 21:39:58
Puede venir por ahi, me pesan alrededor de los 40kb y una de ellas tiene resolucion 2k. Voy a comprobar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 21
Ha disminuido 1 puesto en Android (en relación al último mes)
Gráfica de Android

La aplicación me va muy lenta

Publicado por Luis David (11 intervenciones) el 14/12/2018 21:59:09
Me funciono cambiando por imagen de menor resolucion. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 112
Bronce
Ha disminuido 1 puesto en Android (en relación al último mes)
Gráfica de Android

La aplicación me va muy lenta

Publicado por Yamil Bracho (100 intervenciones) el 14/12/2018 21:44:02
1) Muda el codigo donde creas los aviones al repositorio que es donde deberia estar.
Agrega este metodo a Repositorio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public ArrayList<Avion>  getMockData() {
	aviones.add(new Avion("A320", R.drawable.airbus_logo, "El Airbus A320 es una aeronave comercial de reacción, de fuselaje estrecho y de corto a medio alcance, desarrollada por Airbus, un consorcio de compañías aeroespaciales europeas actualmente controlada por la corporación Airbus Group."));
	aviones.add(new Avion("A380",R.drawable.airbus_logo, "El Airbus A380 es un avión tetrarreactor fabricado por la empresa europea Airbus, subsidiaria del grupo Airbus Group. Se trata de la primera aeronave a reacción con dos cubiertas a lo largo de todo su fuselaje, a diferencia del Boeing 747 en el que, aunque también tiene dos, la cubierta superior abarca solamente la parte delantera del fuselaje. Dispone de una capacidad máxima de 853 pasajeros en una hipotética configuración de alta densidad de clase turista.");
	aviones.add(new Avion("A330-900neo", R.drawable.airbus_logo, "El Airbus A330neo es un avión de fuselaje ancho bimotor a reacción que se encuentra actualmente en fase de desarrollo en Airbus para reemplazar al Airbus A330 (ahora A330ceo (\"Current Engine Option\"(opción con motor original))");
	aviones.add(new Avion("Boeing 747",R.drawable.boeing_logo,"El Boeing 747, comúnmente apodado «Jumbo», es un avión comercial transcontinental de fuselaje ancho fabricado por Boeing. Es conocido por su gran tamaño (fue el mayor avión de pasajeros durante más de tres décadas hasta que la compañía Airbus creó el A380), y está entre los aviones más famosos del mundo.Realizó su primer vuelo comercial en 1970 y fue el primer avión con fuselaje ancho.");
	aviones.add(new Avion("Boeing 777",R.drawable.boeing_logo,"El Boeing 777 es un avión comercial de reacción, bimotor, de largo alcance y fuselaje ancho fabricado por la compañía estadounidense Boeing Commercial Airplanes. Es el avión birreactor más grande del mundo y conocido frecuentemente como «Triple Siete».");
	aviones.add(new Avion("Boeing 737", R.drawable.boeing_logo,"El Boeing 737 es el avión de pasajeros turbofan con mayor número de unidades vendidas de la historia de la aviación. Este modelo ha sido fabricado sin interrupción por parte de Boeing desde 1967, con más de 10 000 aeronaves entregadas y 4600 pendientes de ser fabricadas a finales de marzo de 2018.");
	aviones.add(new Avion("Boeing 737 MAX", R.drawable.boeing_logo,"El Boeing 737 MAX es una familia de aviones de pasajeros desarrollada por el fabricante aeronáutico estadounidense Boeing Commercial Airplanes a partir de la familia Boeing 737 Next Generation. El programa se inició el 30 de agosto de 2011 realizó el primer vuelo el 29 de enero de 2016 y obtuvo la certificación de la FAA el 9 de marzo de 2017. ");
	aviones.add(new Avion("Boeing 787 Dreamliner", R.drawable.boeing_logo,"El Boeing 787, apodado «Dreamliner», es un avión de pasajeros de tamaño medio y fuselaje ancho desarrollado por el fabricante estadounidense Boeing Commercial Airplanes. La aeronave, de doble pasillo, puede transportar entre 217 y 323 pasajeros, dependiendo del tipo (787-8, -9 o -10). Su primer vuelo tuvo lugar el 19 de diciembre de 2009.");
	aviones.add(new Avion("Boeing 757",R.drawable.boeing_logo,"El Boeing 757 (pronunciado «siete-cinco-siete») es un avión comercial de fabricación estadounidense, de corto, medio y largo radio de acción, de fuselaje estrecho, fabricado por Boeing. Fue adquirido en primer lugar por Eastern Airlines y British Airways para reemplazar al 727 y entró en servicio en 1983. La producción del 757 finalizó el 28 de octubre de 2004 tras haber sido construidas 1050 unidades. La última aeronave fue entregada a Shanghai Airlines.");
	aviones.add(new Avion("Boeing 767",R.drawable.boeing_logo,"El Boeing 767 es un avión comercial a reacción de fuselaje ancho desarrollado y construido por el fabricante aeronáutico estadounidense Boeing Commercial Airplanes, siendo el primer aparato bimotor de fuselaje ancho desarrollado por el fabricante estadounidense.");
	aviones.add(new Avion("Boeing 727",R.drawable.boeing_logo,"El Boeing 727 es un avión comercial trimotor de fuselaje estrecho, de tamaño medio, construido por Boeing Commercial Airplanes. El primer Boeing 727 salió de la fábrica el 27 de noviembre de 1962. Tiene el mismo ancho del fuselaje del Boeing 707/720, lo cual redujo los costos de utillaje de Boeing y los costos de mantenimiento de las aerolíneas. Es el modelo más vendido hasta principios de la década de 1980, con un total de 1831 aviones entregados, época en que fue sustituido por el Boeing 737.");
	aviones.add(new Avion("COMAC C919", R.drawable.comac_logo,"El COMAC C919 es un avión de pasajeros de medio alcance fabricado por la empresa china COMAC, y con capacidad de entre 168 a 190 pasajeros. El C919 es el avión comercial de mayor tamaño diseñado y fabricado en China desde el fallido proyecto Shanghai Y-10. Realizó su primer vuelo el 5 de mayo de 2017, empezándose las entregas de pedidos en el año 2019. El C919 forma parte de un objetivo a largo plazo de China, para acabar con el duopolio de aviones de gran tamaño que existe en el mercado aeronáutico, actualmente representado por la europea Airbus y la estadounidense Boeing. Esto hace que el C919 sea un competidor directo del Airbus A320neo y del Boeing 737 MAX.");
}

2) Despues en tu actividad
ArrayList<Avion> listaAviones =Repositorio.getInstancia().getMockData();

y eliminas las llamadas de OnCreate
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar