Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

HTML parsen geschwindigkeitsprobleme

Das Thema "HTML parsen geschwindigkeitsprobleme" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 05.05.2011, 16:18   #1 (permalink)
Neuer Benutzer

Registriert seit: 05.05.2011
Beiträge: 4
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard HTML parsen geschwindigkeitsprobleme

Hi - ich hab ein Problem mit meinem Code und zwar ist er unfassbar langsam

Habe das ganze erst in JAVA mit komandozeilenausgabe geschrieben und es dann später in ein Android Projekt eingebaut.

Es wird im grunde genommen nur die Seite eingelesen und ein bissle mit Regex gearbeitet um ein paar fetzen aus der Seite zu holen.
Funktioniert am PC auch wunderbar - doch sobald ich das ganze mit dem Android Emulator ausführe dauert es über 5 min bis ich meine Ausgabe auf dem Bildschirm habe.

Auf meinem Handy verabschiedet sich das Programm nach etlichen minuten per Fehlermeldung.

Hier mal der Code - wüsste gerne wie man die geschichte beschleunigen kann.

Die Ursache des ganzen liegt bei
PHP-Code:
while(d.ready())
             {
                 
content += d.readLine();
                 
             } 
Hier der gesamte code

PHP-Code:
public void onCreate(Bundle savedInstanceState
    {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.main);
        
TextView msgBox = (TextViewfindViewById(R.id.msgBox);
        
msgBox.setText("Bereit zum Download");
        
        try
        {
            
msgBox.setText("Shoutbox wird geladen");
            
URL url_ = new URL("www.dieurldieichlesenwill.de");
             
URLConnection conn url_.openConnection();
             
DataInputStream in = new DataInputStream conn.getInputStream ( ) ) ;
             
BufferedReader d = new BufferedReader(new InputStreamReader(in"utf-8"));
             
String content "";
             
msgBox.setText("Inhalt wird eingelesen");
             
            
             while(
d.ready())
             {
                 
content += d.readLine();
                 
             }
             
                
                if (
content == "" )
                {
                    
                    
msgBox.setText("Seite konnte nicht runtergeladen werden");
                }
                else
                {
                    
msgBox.setText("Shoutbox Inhalt wurde erfolgreich geladen\n");
                    
Pattern p Pattern.compile("<hr /><div style=\"width: 545px; overflow: hidden;\">(.*?)</div");
                    
//Pattern p = Pattern.compile("(<hr /><div style=\"width: 545px; overflow: hidden;\">)(.+)(</div>)");   //.*?         - Irgend ein zeichen einmal oder mehr
                    
Matcher m p.matcher(content);
                
                    
//String string_ausgabe = "";
                     //StringBuffer sb = new StringBuffer();
                    
List<String> list = new ArrayList<String>();
                    
                     
String [] eintraege;
                    
                    while (
m.find())
                    {
                        
                        list.
add(m.group(1));
                        
                        
//Systemout.println( m.group(2));
                    
}
                    
eintraege = new String[list.size()];
                    
                    for (
int i 0eintraege.lengthi++) 
                    {
                            
eintraege[i] = list.get(i);
                    }
                    
                    
                    
                    for (
int i 0eintraege.lengthi++)
                    {
                        
msgBox.append(eintraege[i]+"\n");
                        
                    }
                    
                    
                    
//lv_eintraege = (ListView)findViewById(R.id.lv_eintraege);
                    //lv_eintraege.setAdapter(new ArrayAdapter<Object>(this,android.R.layout.simple_list_item_1, eintraege));
                
                    //System.out.println(string_ausgabe);
                    //System.out.println("Die Seite konnte eingelesen werden");
                
}    
                
        }
        catch(
PatternSyntaxException pse)
        {
            
msgBox.setText("There is a problem with the regular expression!%n");
            
            
System.exit(0);
        }
        catch ( 
MalformedURLException e 
        {
            
msgBox.setText"MalformedURLException: " );    
        }
        catch ( 
IOException e 
        {
            
msgBox.setText"IOException: " );
        }
   
    } 
smileyep1 ist offline   Mit Zitat antworten
Alt 05.05.2011, 16:48   #2 (permalink)
Ehren-Mitglied
 
Benutzerbild von Thyrion

Modell: HTC Desire

Registriert seit: 21.07.2009
Beiträge: 9.876
Abgegebene Danke: 93
Erhielt 1.785 Danke für 1.389 Beiträge
Standard AW: HTML parsen geschwindigkeitsprobleme

Bau dein content mal nicht mit String + String + String + ... zusammen, sondern über einen StringBuffer oder StringBuilder.
__________________
Thyrion
Siemens C25 / Nokia 6510 / SE K700i / Samsung Galaxy I7500 (rooted) / HTC Desire (rooted / S-ON)

Kein Support via PN und E-Mail. Bitte das Forum nutzen!
Traut Euch, die Suche beißt nicht! - Android-Hilfe.de - Forenregeln - Eine Bitte an alle Android-Neulinge...

Kein Punkt? Kein Komma? Keine Hilfe!
schreibst du alles klein? dann sind deine shift-tasten aber ganz schön einsam. DRÜCK sie mal öfter!
Thyrion ist offline   Mit Zitat antworten
Alt 05.05.2011, 17:06   #3 (permalink)
Neuer Benutzer

Registriert seit: 05.05.2011
Beiträge: 4
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: HTML parsen geschwindigkeitsprobleme

Super danke für den Tipp - der Emulator zeigt es nach ca 1-2 sek an.
smileyep1 ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
simples Beispiel HTML parsen xazen Android App Entwicklung 8 25.03.2011 09:06
String parsen Gingerbread Android App Entwicklung 3 14.02.2011 09:26
Geschwindigkeitsprobleme guitargod HTC Legend Forum 3 30.11.2010 15:11
HTML-Seite parsen lowterm HTC Desire Forum 1 14.11.2010 11:40
Desire - RAM- / Geschwindigkeitsprobleme Distro HTC Desire Forum 34 14.04.2010 19:01




Du liest gerade: "HTML parsen geschwindigkeitsprobleme" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.