AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Android-Version herausfinden?

Ein Thema von sko1 · begonnen am 18. Apr 2017 · letzter Beitrag vom 8. Mai 2017
Antwort Antwort
BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#1

AW: Android-Version herausfinden?

  Alt 19. Apr 2017, 13:40
Was mich noch wundert: Wenn dein Programm unter ARM läuft, nur emuliert nicht. Was genau geht da schief? Also wenn die CPU effektiv ein ARM ist (auch wenns eigentlich nur emuliert ist), warum überhaupt Interesse an der Realität zeigen? (klar, es stürzt ab, aber dann ist das vielleicht nur was ganz Kleines, was sich vllt einfach fixen lässt )

Brighty
Do you have the email of god??? --- I have to tell him that I'm happy to be born!
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
607 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Android-Version herausfinden?

  Alt 19. Apr 2017, 14:10
Leider nicht!

Ein Hallo Welt mit einem Button, der dann eine Messagebox anzeigt, funktioniert, aber die App hat Datenbankzugriff (SQLite), SSL Mailkommunikation (Open SSL 1.02h eingebunden wegen Android 6) und und und...

Und Debuggen geht auf dem Device auch nicht, ich sehe es im Explorer, kann da Dateien schieben, ich sehe es als Device im RAD Studio und kann über "Starten" auch die App aufs Device laden und ausführen, aber beim Debuggen wird Anwendung aufgerufen und ab da passiert nichts mehr, Tablet bleibt schwarz und irgendwann "reagiert nicht mehr, Beenden..."?

Und nun auf Verdacht Routinen umbauen, Compilieren, runterladen, testen, ... fehlt mir die Zeit, Momentan habe ich 'zig Stellen wo ein neues Formular erzeugt wird und "Anwendung wurde beendet" erscheint, es gibt aber andere Formulare die sich anzeigen lassen, ein System konnte ich nicht erkennen und ohne Debuggen wird das nicht lösbar!

Ist ein Formular erst mal da gibt es Funktionen die funktionieren und andere wo die App einfach beendet wird.

Alle relevanten Codestellen sind mit Try / Except versehen und schreiben eigentlich eine Fehler-Logdatei, auf dem betreffenden Device aber ist diese leer!

Ciao
Stefan
  Mit Zitat antworten Zitat
BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#3

AW: Android-Version herausfinden?

  Alt 19. Apr 2017, 14:17
Wie sieht es in der Devicesimulation auf dem Desktop aus? Funktioniert es da? Ich kenne mich nicht in der Tiefe aus, aber dort kann man ja auch von x86 auf ARM emulieren, oder?

Brighty
Do you have the email of god??? --- I have to tell him that I'm happy to be born!
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
607 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: Android-Version herausfinden?

  Alt 19. Apr 2017, 14:24
Das kann ich Dir nicht beantworten, ich habe lange vergeblich versucht, einen "vernünftig laufenden Emulator" für RAD Studio zu finden, alles was ich hatte brauchte zum Starten 5 Minuten und war so was von grottenlangsam, das Thema habe ich dann nicht mehr weiter verfolgt.

Da die Emulation auf dem PC jedoch was ganz anderes ist als Intel da mit seinem Atom-Prozessor und Samsung mit seinem Android 4.4.2 macht, brauche ich eigentlich keinen Vergleich zur Emulation unter Windows zu probieren!

Ciao
Stefan

Nachtrag:
Ich habe einen alten Emulator rausgekramt, auch da liefert DeviceInfo einen ARM-Prozessor (siehe Anhang) , Betriebssystem ist ein Windows 10 mit Intel Core 5
Angehängte Grafiken
Dateityp: png Screenshot Emulator.png (53,2 KB, 12x aufgerufen)

Geändert von sko1 (19. Apr 2017 um 15:21 Uhr)
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Android-Version herausfinden?

  Alt 20. Apr 2017, 09:31
Ich habe das bei mir so gelöst, dass ich /proc/cpuinfo abfrage und nach "placeholder" suche, das stand dort bei meinen Tests immer drin, wenn die Houdini-Emulation aktiv war.

Wichtig ist, dass bei bei x86 und OpenSSL-Bibliotheken nicht die mit ausgelieferte *.so verwendet wird, sondern die vom System. Unter Houdini funktioniert das Laden von ARM-*.so-Dateien nämlich nicht (zumindest mit Delphi).

Als Android-Emulator kann ich übrigens BlueStacks empfehlen, der läuft ausreichend schnell, nervt nur etwas, weil der immer irgendwelche Apps installiert.
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
607 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Android-Version herausfinden?

  Alt 20. Apr 2017, 10:46
Zitat:
nicht die mit ausgelieferte *.so verwendet wird,
die vom System heißt die im Android enthaltene?
Das hatte ich ja gemacht, aber ab Android6 funktioniert das nicht mehr!
Daher habe ich die SSL - so-Files vom 1.02h eingebaut.

Zitat:
dass ich /proc/cpuinfo abfrage
hast Du da bitte mal einen Codeschnipsel?

Zitat:
BlueStacks
danke, sehe ich mir gleich mal an!

Ciao
Stefan
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
607 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: Android-Version herausfinden?

  Alt 26. Apr 2017, 11:22
Schöne Schxxxx !

Ich habe den nächsten Anwender wo unsere App nicht läuft, ein Asus Transformer Pad mit NVIDIA Tegra 3 CPU!

Ich konnte nirgends etwas brauchbares finden, befürchte aber das das wie bei den Intel Atom "kein echter Arm Prozessor ist"?
Die dort laufende Android-Version ist 4.2.1

Ciao
Stefan
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: Android-Version herausfinden?

  Alt 8. Mai 2017, 14:34
Zitat:
dass ich /proc/cpuinfo abfrage
hast Du da bitte mal einen Codeschnipsel?
Hier mal unser Code:

Delphi-Quellcode:
function GetProcCPUInfo: String;
{$IF Defined(ANDROID)}
var
  FS: TFileStream;
  ch: Char;
begin
  result := '';
  if FileExists('/proc/cpuinfo') then
  begin
    try
      ch := #0;
      FS:= TFileStream.Create('/proc/cpuinfo', fmOpenRead);
      while (FS.Read(ch, 1) = 1) do
        result := result + ch
    finally
      FS.Free;
    end;
  end;
end;
{$ELSE}
begin
  result := 'Nicht implementiert';
end;
{$ENDIF}

function IsHoudiniEmulation: Boolean;
begin
  result := false;
{$IF Defined(ANDROID)}
  if GetProcCPUInfo.Contains('placeholder') then
    result := true;
{$ENDIF}
end;
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz