* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Aprile 19, 2024, 11:41:36 am

Inserisci il nome utente, la password e la durata della sessione.

396 Visitatori, 0 Utenti

Autore Topic: Android  (Letto 57376 volte)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Android
« Risposta #15 il: Aprile 06, 2014, 09:56:00 pm »
Magari questa discussione interessa a qualcuno  :)

http://forum.lazarus.freepascal.org/index.php/topic,22414.0.html
Ieri è passato, domani è futuro, oggi è un dono...

SB

  • Scrittore
  • Sr. Member
  • *****
  • Post: 283
  • Karma: +1/-0
Re:Android
« Risposta #16 il: Giugno 27, 2014, 02:50:28 pm »
Per quanto mi riguarda ci ho perso un bel po' di tempo e purtroppo non ho concluso nulla.
Io ho provato su WindowsXP seguendo passo passo le istruzioni del tutorial e la compilazione è fallita a livello di linker (senza chiarimenti).

Ho provato più profondamente su Linux/Ubuntu, dove le istruzioni fornite sono datate, carenti e a volte sbagliate.
Ho provato a seguire tutte le istruzioni che sono riuscito a trovare.
Non vi dico cosa ho dovuto fare che sarebbe troppo lunga, ma alla fine sono arrivato a generare l'apk.
Solo che... caricato su Android non funziona...
Non avendo modo di capire e di correggere l'errore ho abbandonato sconsolato.
Probabilmente avrò sbagliato qualcosa io, evidentemente non sono ancora abbastanza esperto.

Se qualcuno ha avuto esiti diversi, sarei grato di sapere come ha fatto.

Ciao

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Android
« Risposta #17 il: Giugno 28, 2014, 12:57:00 pm »
se ci dici passo passo come hai fqtto su ubuntu si prova anche noi e cerchiamo una soluzione insieme
Ieri è passato, domani è futuro, oggi è un dono...

SB

  • Scrittore
  • Sr. Member
  • *****
  • Post: 283
  • Karma: +1/-0
Re:Android
« Risposta #18 il: Giugno 28, 2014, 03:03:20 pm »
Ho dovuto fare tali porcherie che sinceramente me ne vergogno e sconsiglio di ripetere visto che tanto alla fine non funziona.
Meglio aspettare che sistemino un po' le cose.
Ho l'impressione che lo sviluppo avvenga principalmente in Windows e poi cercano di adattarlo alla buona a Linux (mentre dovrebbe essere il contrario).







Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Android
« Risposta #19 il: Giugno 30, 2014, 11:50:49 pm »
SB.
Passiamo sopra le porcherie turandoci il naso e occhi.
Sicuramente sei arrivato dove molti (almeno io) non siamo arrivati per mancanza di tempo.
Avere qualche cosa di compilato per android lo devi vedere come una conquista ;)

Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

SB

  • Scrittore
  • Sr. Member
  • *****
  • Post: 283
  • Karma: +1/-0
Re:Android
« Risposta #20 il: Luglio 01, 2014, 11:13:35 am »
Se vi turate il naso e non mi mandate a quel paese per aver perso tempo, ecco i passaggi che ho dovuto fare per arrivare all'apk.
Spero di non saltare niente e di scrivere correttamente, nel caso chiedete spiegazioni.

Configurazione Ubuntu 14.04, con FPC 2.6.4 e Lazarus 1.2.2 già installati

Creare cartella di lavoro
md ~/Android

Scaricare Android SDK ~/Android/android-sdk
Scaricare Android NDK ~/Android/android-ndk-r9
Scaricare Laz4Android (???) ~/Android/laz4android

Scaricare e aggiornare sorgenti fpc trunk 2.7.1
cd ~/Android
svn co http://svn.freepascal.org/svn/fpc/trunk fpcsrc

Aggiungere la definizione seguente nel file ~/Android/fpcsrc/rtl/win/wininc/struct.inc
SIZE_T = UINT;

Compilare sorgenti fpc trunk 2.7.1
cd ~/Android/fpcsrc
make clean crossall crossinstall OS_TARGET=android CPU_TARGET=arm OPT="-dFPC_ARMEL" INSTALL_PREFIX=~/Android/fpc BINUTILSPREFIX=~/Android/fpcsrc/rtl/android/arm-linux-androideabi-

Commento: lo script sembra sbagliare alcuni path, ho dovuto aggiungere BINUTILSPREFIX
Sembra che servano pure le OPT.
Ho qualche dubbio sulla necessità dell'opzione CROSSOPT='-Cp<ARM Arch> -Cf<ARM VFP>'

Il compilatore è  ~/Android/fpc/lib/fpc/2.7.1/ppcrossarm
Rinominare il compilatore in fpc altrimenti non vede fpc.cfg (non ho trovato altra strada)

Modificare fpc.cfg e metterlo in ~/Android/fpc/lib/fpc/2.7.1/
Qui mi sono sbizzarrito... ho dovuto aggiungere un path per ogni errore di compilazione...
Se qualcuno trova una soluzione più semplice...
Attualmente il contenuto del mio file ~/Android/fpc/lib/fpc/2.7.1/fpc.cfg è il seguente:
-----------------------------------------
-Fu.

-Fu~/Android/fpcsrc/rtlx/*
-Fu~/Android/fpcsrc/rtlx/*/*
-Fl~/Android/fpcsrc/rtl/units/arm-android

-Fu~/Android/fpc/lib/fpc/2.7.1/units/arm-android
-Fu~/Android/fpc/lib/fpc/2.7.1/units/arm-android/*
-Fu~/Android/fpc/lib/fpc/2.7.1/units/arm-android/rtl

-Fu~/Android/laz4android/lcl/units/arm-android
-Fu~/Android/laz4android/lcl/interfaces/customdrawn
-Fu~/Android/laz4android/lcl/interfaces/customdrawn/android
-Fu~/Android/laz4android/lcl/units/arm-android/customdrawn
-Fu~/Android/laz4android/components/lazutils 
-Fu~/Android/laz4android/components/lazutils/lib/arm-android
-Fu~/Android/laz4android/packager/units/arm-android
-Fu~/Android/laz4android/lcl/units/x86_64-linux
-Fu~/Android/laz4android/lcl
-Fu~/Android/laz4android/lcl/widgetset

-Fl/usr/lib/gcc/x86_64-linux-gnu/4.6

-Fl~/Android/fpc/lib/fpc/2.7.1/units/arm-android
-Fl~/Android/fpc/lib/fpc/2.7.1/units/arm-android/*
-Fl~/Android/fpc/lib/fpc/2.7.1/units/arm-android/rtl

-Fl~/Android/laz4android/lcl/units/x86_64-linux

-Fl~/Android/android-ndk-r9/platforms/android-14/arch-arm/usr/lib
-Fl~/Android/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.8

-Fi~/Android/fpc/lib/fpc/2.7.1/units/arm-android
-Fi~/Android/laz4android/lcl/include

-FU~/Android/fpc/lib/fpc/2.7.1/units/arm-android

-FD~/Android/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin

-FL~/Android/android-ndk-r9/platforms/android-14/arch-arm/usr/lib/libdl.so
-----------------------------------------


Compilazione del progetto Lazarus (è quello di esempio ~/Android/laz4android/examples/androidlcl, spostato in ~/Android/applicazioni/test2 e rinominato in test2)

cd ~/Android/fpc/lib/fpc/2.7.1

~/Android/fpc/lib/fpc/2.7.1/fpc  -Tandroid ~/Android/applicazioni/test2/test2.lpr -o~/Android/applicazioni/test2/libs/armeabi/test2.so -dLCLcustomdrawn -Xs -dANDROID -Xd -MObjFPC -Scghi  -O1  -g -gl  -CpARMV6  -dLCL  -sh -vewnhi

-sh blocca la compilazione e produce uno script per il linker (altrimenti il compilatore si ferma per errore perchè cerca librerie di Windows)

Sistemare il file link.res togliendo le librerie windows. Si trovano verso la fine in una sezione INPUT
gedit ~/Android/applicazioni/test2/libs/armeabi/link.res

Sistemato link.res lanciare lo script di linking
~/Android/applicazioni/test2/libs/armeabi/ppas.sh

---------------------------------------------------
Produzione dell'apk

cd ~/Android/applicazioni/test2/android

rm -Rf bin
rm -Rf gen
rm -Rf raw

mkdir bin
mkdir bin/classes
mkdir gen
mkdir gen/com
mkdir gen/com/pascal
mkdir gen/com/pascal/test2
mkdir raw
mkdir raw/lib
mkdir raw/lib/armeabi

cp ~/Android/applicazioni/test2/libs/armeabi/*.so raw/lib/armeabi/

~/Android/android-sdk/build-tools/19.1.0/aapt p -v -f -M AndroidManifest.xml -F bin/test2.ap_ -I ~/Android/android-sdk/platforms/android-14/android.jar -S res -m -J gen raw

javac -source 1.6 -target 1.6 -verbose -encoding UTF8 -classpath ~/Android/android-sdk/platforms/android-14/android.jar -d bin/classes src/com/pascal/test2/LCLActivity.java

~/Android/android-sdk/build-tools/19.1.0/dx --dex --verbose --output=~/Android/applicazioni/test2/android/bin/classes.dex ~/Android/applicazioni/test2/android/bin/classes

rm ~/Android/applicazioni/test2/android/bin/test2-unsigned.apk

java -classpath ~/Android/android-sdk/tools/lib/sdklib.jar com.android.sdklib.build.ApkBuilderMain ~/Android/applicazioni/test2/android/bin/test2-unsigned.apk -v -u -z ~/Android/applicazioni/test2/android/bin/test2.ap_ -f ~/Android/applicazioni/test2/android/bin/classes.dex

rm ~/Android/applicazioni/test2/android/bin/test2-unaligned.apk

rm bin/LCLDebugKey.keystore

Generazione keystore, io ho messo password 123456
keytool -genkey -v -keystore bin/LCLDebugKey.keystore -alias LCLDebugKey -keyalg RSA -validity 10000

jarsigner -verbose -keystore ~/Android/applicazioni/test2/android/bin/LCLDebugKey.keystore -keypass 123456 -storepass 123456 -signedjar bin/test2-unaligned.apk bin/test2-unsigned.apk LCLDebugKey

rm bin/test2.apk

zipalign -v 4 bin/test2-unaligned.apk bin/test2.apk

----------------------------------------------------
 A questo punto avete l'apk

Per installarlo lanciare l'apposito programma emulatore fornito con l'sdk android
Quindi dare il comando di installazione

~/Android/android-sdk/platform-tools/adb install ~/Android/applicazioni/test2/android/bin/test2.apk

Per i messaggi di log:
~/Android/android-sdk/platform-tools/adb logcat

Se lancio l'app dall'emulatore si interrompe senza spiegazioni.

A questo punto mi sono fermato
Magari ripartendo da zero riuscite a capire cosa c'è che non va.

Ciao






Legolas

  • Global Moderator
  • Sr. Member
  • *****
  • Post: 366
  • Karma: +3/-0
Re:Android
« Risposta #21 il: Luglio 01, 2014, 12:21:10 pm »
Invece di rinominare ppcrossarm in fpc, prova a inserire queste righe in testa al file di configurazione fpc.cfg:

Codice: [Seleziona]
 -Parm
 -Tandroid
 -XParm-linux-androideabi-

Poi puoi aggiungere al PATH di ricerca la directory dei binari delle binutils, così puoi fare a meno di specificare l'intero percorso.

Dovresti riuscire a risolvere un bel po' di problemi in fase di linking :)

SB

  • Scrittore
  • Sr. Member
  • *****
  • Post: 283
  • Karma: +1/-0
Re:Android
« Risposta #22 il: Luglio 01, 2014, 12:37:33 pm »
Il problema è che non mi vedeva il file fpc.cfg se non rinominavo il compilatore.

Avevo provato a mettere -P e -T dentro il file fpc.cfg, ma non mi funzionava

Dimenticavo che nel PATH avevo aggiunto
~/Android/android-sdk/platform-tools:~/Android/android-sdk/tools

Avevo avvertito delle porcherie... Sicuramente si può riscrivere meglio, ma mi interessava far funzionare il giro completo.
Di solito faccio gli abbellimenti e le ottimizzazioni quando tutto funziona.


Legolas

  • Global Moderator
  • Sr. Member
  • *****
  • Post: 366
  • Karma: +3/-0
Re:Android
« Risposta #23 il: Luglio 01, 2014, 12:52:30 pm »
In effetti dovresti lanciare sempre e comunque il file fpc, che si occupa automaticamente di chiamare il cross compilatore adeguato, a seconda dei parametri che gli vengono passati. Ad esempio:

Codice: [Seleziona]
fpc -Parm -Tandroid

lancerà il crosscompilatore per ARM (ppcrossarm) e utilizzerà la RTL e le librerie per android.

Una cosa che mi riprometto da mesi è di provare a fare qualcosa con Android, ma non ho mai trovato due minuti liberi per fare qualche prova :(


EDIT: intanto in pausa pranzo ho messo a scaricare tutto il necessario (ndk, sdk, java, laz4android), come da wiki, anche se le versioni non sono proprio le stesse... Stasera spero di riuscire a buttarci un occhio :)
« Ultima modifica: Luglio 01, 2014, 02:54:20 pm da Legolas »

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Android
« Risposta #24 il: Luglio 01, 2014, 03:01:42 pm »
Ragazzi, se ci riuscite potreste o creare una macchina virtuale (virtualbox) o uno script che fa il lavoro. Così per tanti è più facile, purtroppo questo smanettare eccessivo spaventa ancora molti :)
Ieri è passato, domani è futuro, oggi è un dono...

SB

  • Scrittore
  • Sr. Member
  • *****
  • Post: 283
  • Karma: +1/-0
Re:Android
« Risposta #25 il: Luglio 01, 2014, 03:16:41 pm »
In effetti dovresti lanciare sempre e comunque il file fpc, che si occupa automaticamente di chiamare il cross compilatore adeguato, a seconda dei parametri che gli vengono passati. Ad esempio:

Codice: [Seleziona]
fpc -Parm -Tandroid

lancerà il crosscompilatore per ARM (ppcrossarm) e utilizzerà la RTL e le librerie per android.

Da quel che avevo capito il compilatore "normale" (fpc 2.6.4) viene usato per compilare il compilatore cross-platform (fpc 2.7.1 / ppcrossarm) che poi viene usato per produrre gli eseguibili per Android.
Non basta semplicemente indicare target e processore all'fpc "normale" (2.6.4).


Legolas

  • Global Moderator
  • Sr. Member
  • *****
  • Post: 366
  • Karma: +3/-0
Re:Android
« Risposta #26 il: Luglio 01, 2014, 03:38:02 pm »
In effetti dovresti lanciare sempre e comunque il file fpc, che si occupa automaticamente di chiamare il cross compilatore adeguato, a seconda dei parametri che gli vengono passati. Ad esempio:

Codice: [Seleziona]
fpc -Parm -Tandroid

lancerà il crosscompilatore per ARM (ppcrossarm) e utilizzerà la RTL e le librerie per android.

Da quel che avevo capito il compilatore "normale" (fpc 2.6.4) viene usato per compilare il compilatore cross-platform (fpc 2.7.1 / ppcrossarm) che poi viene usato per produrre gli eseguibili per Android.
Non basta semplicemente indicare target e processore all'fpc "normale" (2.6.4).

No, non mi sono spiegato bene: io parlo dell'utilizzo del crosscompilatore già bello che pronto.
 
Ti faccio l'esempio su windows. Quando scarichi i binari di fpc, troverai all'interno della directory fpc\bin\i386-win32 sia l'eseguibile fpc.exe che l'eseguibile ppc386.exe. Se ci fai caso, il primo occupa pochi kb, mentre il secondo quasi 2 mb. fpc.exe non è il compilatore, ma solo l'eseguibile che, in presenza di diversi compilatori nella directory (ppc386.exe, ppcrossarm.exe, ecc.), si occupa di chiamare quello selezionato dall'utente tramite i parametri -T e -P.

@xinyiman: in effetti già il solo scaricare tutti i pacchetti necessari richiede un sacco di tempo... :/
« Ultima modifica: Luglio 01, 2014, 03:39:53 pm da Legolas »

SB

  • Scrittore
  • Sr. Member
  • *****
  • Post: 283
  • Karma: +1/-0
Re:Android
« Risposta #27 il: Luglio 01, 2014, 03:58:35 pm »
Ok, adesso ho capito il perchè del nome ppccrossarm.
Come faccio a farglielo vedere? Devo spostare il file ppccrossarm in /usr/bin dove si trova l'fpc "normale"? E tutti gli altri file generati compilando fpcsrc (es. la cartella units)? Non ho trovato indicazioni in merito.
Mi sembrerebbe comunque preferibile tenere separati i due compilatori, visto che hanno ritenuto opportuno realizzare anche una versione separata di Lazarus.

Non sono esperto di questo ambiente. Forse se provate a rivedere i vari passaggi che ho fatto riuscirete a trovare qualche errore.
In particolare mi sembra strano doversi appoggiare a file forniti con laz4android.
Altra cosa strana è che produce l'eseguibile ppccrossarm nella cartella lib anzichè bin (come sarebbe scritto nei tutorial)


Legolas

  • Global Moderator
  • Sr. Member
  • *****
  • Post: 366
  • Karma: +3/-0
Re:Android
« Risposta #28 il: Luglio 01, 2014, 04:27:59 pm »
Stasera provo e ti saprò dare qualche informazione in più  ;D

In ogni caso, posso dirti che l'albero delle directories di fpc è più o meno il seguente:

  • fpc/2.6.4/bin/i386-win32 ->contiene gli eseguibili che girano sull'accoppiata architettura-OS (nell'esempio: processore i386 e OS win32). Qui dentro vanno messi tutti gli eseguibili, compresi i crosscompilatori che, appunto, girano sulla stessa accoppiata arch-os, anche se producono eseguibili per altre accoppiate. Nella stessa directory si dovrebebro copiare le binutils. Per distinguere tra di loro le varie binutils (differenti per ogni crosscompilatore) hanno un prefisso, tipo arm-android-*
  • fpc/2.6.4/msg -> contiene i messaggi del compilatore, suddivisi per lingua
  • units/i386-win32/* -> contiene delle cartelle con le varie librerie, che il compilatore (o il crosscompilatore) utilizza per creare l'eseguibile. Di base c'è soltanto la directory i38-win32 (ripeto, sull'accoppiata i386-win32). Nel caso del crosscompilatore per android, bisognerà creare un'altra directory arm-android e al suo interno copiare tutte le unit generate nel processo di creazione del crosscompilatore.
Quindi, se sto su i386-win32 e ho installato i crosscompilatori per android e i386-wince, avrò:

Codice: [Seleziona]
fpc/2.6.4/bin/i386-win32/
->fpc.exe 
->ppc386.exe (compilatore per processore della famiglia i386)
->ppcrossarm.exe (crosscompilatore per processore ARM)
->arm-android-*.exe (binutils per l'accoppiata ARM-Android)

fpc/2.6.4/units/i386-win32/* -> librerie per la compilazione di eseguibili che girino sul pc con windows
fpc/2.6.4/units/i386-wince/* -> per eseguibili che girino su architettura i386 ma OS WindowsCE
fpc/2.6.4/units/arm-android/* -> per eseguibili che girino su architettura ARM e OS Android


Legolas

  • Global Moderator
  • Sr. Member
  • *****
  • Post: 366
  • Karma: +3/-0
Re:Android
« Risposta #29 il: Luglio 01, 2014, 11:29:04 pm »
Allora, sono riuscito a far andare un esempio sull'emulatore :)

Ho scaricato e installato, nell'ordine:

laz4android1.3-43585-FPC2.7.1-New.exe (da sourceforge)
jdk-6u45-windows-x64.exe (da oracle)
installer_r23-windows.exe (da google/android)
android-ndk-r9d-windows-x86_64.zip (da google/android)

Ho installato tutto, seguendo le indicazioni dal wiki ma, anche riuscendo a compilare correttamente il file apk dell'esempio (non senza qualche grattacapo, dovuto principalmente ad errori dei file batch), non sono riuscito ad eseguirlo sull'emulatore (generava una finestrella toast con un errore che ora non ricordo).

Dopo un paio di orette buttate a configurare il mostro ho deciso di provare anche un tool che avevo visto sul forum ufficiale di lazarus, laztoapk. L'ho scaricato da sourceforge e l'ho installato (setup_laztoapk_alpha_009_experimental.exe)

Persi 10 minuti per capire quali directory selezionare durante la configurazione, sono alla fine riuscito a compilare l'esempio che viene generato dal tool e a farlo girare sull'emulatore. Yeah!  :D

Tutto questo, purtroppo per voi linuxari, al momento funge solo su windows  :(

Il mio prossimo passo sarà vedere di ricompilare tutta la "baracca" da zero e segnarmi i vari passaggi, per poi provare a replicarli sul mio vecchio pc, dove dovrei avere installata una vecchia versione di ubuntu. Per farlo ho però bisogno del fine settimana...

 

Recenti

How To

Utenti
  • Utenti in totale: 785
  • Latest: gmax
Stats
  • Post in totale: 18772
  • Topic in totale: 2233
  • Online Today: 578
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 396
Total: 396

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.