Italian novizio su Android [solved]

calsdn

Member
Licensed User
Un caro saluto a tutti.

il mio trentennale background di programmazione riguarda l'ambiente Microsoft dal Ms-Dos a ora Windows.

Ora vorrei sviluppare delle apposite APP per Android.
L'ambiente non mi è per niente familiare e nonostante la documentazione in rete disponibile ho delle difficoltà a capire come lavora l'ambiente di sviluppo B4A.

Siate per favore pazienti.

Se volessi che l'APP lavori dalla KitKat (mi pare API 4.4) in su, devo dirlo da qualche parte? se si Dove?

Grazie.
 

LucaMs

Expert
Licensed User
Longtime User
Ciao.

Dovresti impostare il minSdkVersion nel file Manifest (xml), anche tramite l'editor (menu Project - Manifest Editor). Ora a quale versione corrisponda l'API 4.4... eh, magari te lo trovo.
[P.S. 19]

Di default:
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="19"/>


Ma sicuro che ti serva solo da quella versione in su?
 

calsdn

Member
Licensed User
grazie LucaMs

Dovresti impostare il minSdkVersion nel file Manifest (xml), anche tramite l'editor (menu Project - Manifest Editor). Ora a quale versione corrisponda l'API 4.4... eh, magari te lo trovo.
[P.S. 19]

Di default:
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="19"/>
ok, hum ... non è che questo sia un segnale/requisito per il client che esegue l'APP che verifica se può o non può avviare l'APP.

Ma sicuro che ti serva solo da quella versione in su?
era solo un esempio per avere un punto di partenza.

Tutto qui?
Mi spiego: ho il dubbio sulla libreria che userà il compilatore.
Nel "Paths Configuration" vedo che devi indicare dove trovi android.jar.
Se lì indichi: "Z:\AndroidPlatform\android-sdk\platforms\android-23\android.jar"

Quando compili userà la SDK version 23?
Se per l'esempio di prima vorrei che l'APP possa lavora dalla KitKat in su (API 19) nel path configuration devo indicare il path di android.jar della SDK Api 19?
 

LucaMs

Expert
Licensed User
Longtime User
Nessun problema, l'SDK 23 è compatibile con le versioni precedenti. Semmai alcune librerie B4A che potresti usare, quindi extra, potrebbero richiedere una versione minima di Android.

Direi che potresti tranquillamente lasciare il Manifest com'è.
 

Star-Dust

Expert
Licensed User
Longtime User
Se vuoi farla partire dalla 4.4 in su e non funzioni con le precedenti ...

B4X:
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19"/>

se vuoi stabilire una versione massima per questa App chessò la 5

B4X:
<uses-sdk android:minSdkVersion="19" android:maxSdkVersion="21"/>

Android 7.0 24 Nougat Anche Wear 2,0
Android 6.0 23 MARSHMALLOW Platform Highlights
Android 5.1 22 LOLLIPOP_MR1 Platform Highlights
Android 5.0 21 LOLLIPOP
Android 4.4W 20 KITKAT_WATCH KitKat for Wearables Only
Android 4.4 19 KITKAT Platform Highlights
Android 4.3 18 JELLY_BEAN_MR2 Platform Highlights
Android 4.2, 4.2.2 17 JELLY_BEAN_MR1 Platform Highlights
Android 4.1, 4.1.1 16 JELLY_BEAN Platform Highlights
Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1 Platform Highlights
Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH
Android 3.2 13 HONEYCOMB_MR2
Android 3.1.x 12 HONEYCOMB_MR1 Platform Highlights
Android 3.0.x 11 HONEYCOMB Platform Highlights
Android 2.3.4 10 GINGERBREAD_MR1 Platform Highlights
Android 2.3.3
Android 2.3.2 9 GINGERBREAD
Android 2.3.1
Android 2.3
Android 2.2.x 8 FROYO Platform Highlights
Android 2.1.x 7 ECLAIR_MR1 Platform Highlights
Android 2.0.1 6 ECLAIR_0_1
Android 2.0 5 ECLAIR
Android 1.6 4 DONUT Platform Highlights
Android 1.5 3 CUPCAKE Platform Highlights
Android 1.1 2 BASE_1_1
Android 1.0 1 BASE
 

MarcoRome

Expert
Licensed User
Longtime User
...se vuoi stabilire una versione massima per questa App chessò la 5....

detto bene per minsdkVersion, meno preciso per maxSdkVersion, nel senso che in maxSdkVersion dichiari la versione "ideale" dell'SDK. In ogni caso girerà anche su SDK maggiori. Esempio dichiaro maxSdkVersion = "21" ( Droid 5.0 ) l'app girerà anche sulla 6 e la 7 senza alcun problema
 

MarcoRome

Expert
Licensed User
Longtime User
Allora se tu provi a compilare un'apk di esempio ed inserisci nel manifest:
B4X:
<uses-sdk android:minSdkVersion="5"  android:maxSdkVersion="12"/>
12 = Android 3.1.
Ora prova ad installare la stessa su un Android 7.0 , cosa succede ?
Che verrà installata.
Discorso diverso se pubblichi la stessa su Play Store. Sarà Play Store a non farti vedere l'app e quindi a non poterla installare. Ma questo solo perchè il Play Store "nasconde" la stessa. Quindi se la troverà sul dispositivo ( perchè installata precedentemente dal Play Store ) eliminerà la stessa

An application declaring maxSdkVersion="5" in its manifest is published on Google Play. A user whose device is running Android 1.6 (API Level 4) downloads and installs the app. After a few weeks, the user receives an over-the-air system update to Android 2.0 (API Level 5). After the update is installed, the system checks the application's maxSdkVersion and successfully re-validates it. The application functions as normal. However, some time later, the device receives another system update, this time to Android 2.0.1 (API Level 6). After the update, the system can no longer re-validate the application because the system's own API Level (6) is now higher than the maximum supported by the application (5). The system prevents the application from being visible to the user, in effect removing it from the device.
 

Star-Dust

Expert
Licensed User
Longtime User
Io lo uso, perché pubblico solo sul play store. E ho creato App che so che possono funzionare fino a una certa versione di Android. :)

Creo che questo parametro nel manifest è stato creato proprio per permettere al Play store di fare una selezione della App in base al dispositivo che usi. Come hai descritto bene nel tuo post. ;)

Cmq la versione ideale è nel targetsdk :p e non nel maxsdk :oops:.

P.S. Ancora non ho fatto la prova, ma mi fido
 

MarcoRome

Expert
Licensed User
Longtime User
Io lo uso, perché pubblico solo sul play store. E ho creato App che so che possono funzionare fino a una certa versione di Android. :)

Creo che questo parametro nel manifest è stato creato proprio per permettere al Play store di fare una selezione della App in base al dispositivo che usi. Come hai descritto bene nel tuo post. ;)

Cmq la versione ideale è nel targetsdk :p e non nel maxsdk :oops:.

P.S. Ancora non ho fatto la prova, ma mi fido
Si sull'"ideale" hai ragione ...ho utilizzato un termine inapproriato
 

LucaMs

Expert
Licensed User
Longtime User
Lo scrivo qua, anche se non c'entra un tubo, sorry...

Marco, ci fai un regalo di Natale? (?!?!)

Un bel tutorial su come wrappare!

(a dire il vero per il momento non lo seguirei, ma in seguito di sicuro sì).

P.S. eventualmente, partendo da come scaricare e installare da GitHub, sia con Android Studio che Eclipse+ADT (si chiamava così, mi pare).
 
Last edited:

Star-Dust

Expert
Licensed User
Longtime User
Avrei una domanda sul wrappare ... ma potrebbe essere una castroneria colossale ... me la tengo per me :p:p:p
 

calsdn

Member
Licensed User
tornando al topic ....

immaginiamo che compilo con android.jar localizzato nel Sdk version 24.
Un utente con KitKat può installare l'app e aprirla?

Da profano immaginavo che la compatibilità fosse in su ovvero che se compilo con Sdk version 19 l'app generata 'gira' nei dispositivi dalla 19 in su ma non sotto.

Fino a che punto un kitkat (esempio) può installare app compilate con le versioni superiori?

Quando mi devo preoccupare di compilare con una apposita versione di Sdk?

Grazie ancora per il vs. supporto.
 

MarcoRome

Expert
Licensed User
Longtime User
Lo scrivo qua, anche se non c'entra un tubo, sorry...

Marco, ci fai un regalo di Natale? (?!?!)

Un bel tutorial su come wrappare!

(a dire il vero per il momento non lo seguirei, ma in seguito di sicuro sì).

P.S. eventualmente, partendo da come scaricare e installare da GitHub, sia con Android Studio che Eclipse+ADT (si chiamava così, mi pare).

Luca ci sono molte guide fatte benissimo ( vedi oltre a quelle di @Erel, @Johan Schoeman , il grande @DonManfred , etc )
Per tua curiosità ne riporto alcune ( cosi quando avrai tempo ;) )
Questa e di Erel ( Eclipse )
https://www.b4x.com/android/forum/threads/wrapping-android-library-projects.36410/#content

Questa e di Johan
https://www.b4x.com/android/forum/threads/creating-a-library-with-simple-library-compiler-slc.48196/

Questa è di DonManfred ( Eclipse + Android Studio + Youtube )
https://www.b4x.com/android/forum/t...l-and-easy-3rd-party-library-with-java.51556/
https://www.b4x.com/android/forum/t...sy-3rd-party-library-with-java-part-ii.65156/
https://www.b4x.com/android/forum/threads/create-an-aar-archive-from-a-third-party-library.68357/

e poi se cerchi ne hai per tutti i gusti .....
 

MarcoRome

Expert
Licensed User
Longtime User
tornando al topic ....

immaginiamo che compilo con android.jar localizzato nel Sdk version 24.
Un utente con KitKat può installare l'app e aprirla?

Da profano immaginavo che la compatibilità fosse in su ovvero che se compilo con Sdk version 19 l'app generata 'gira' nei dispositivi dalla 19 in su ma non sotto.

Fino a che punto un kitkat (esempio) può installare app compilate con le versioni superiori?

Quando mi devo preoccupare di compilare con una apposita versione di Sdk?

Grazie ancora per il vs. supporto.

Dipende dalle "funzioni che utilizzi" alcune sono state introdotte con alcuni SDK in particolare.... quindi ad esempio se utilizzi la
UsageStatsManager la stessa è presente dalle API 21 in su ( Android 5 o > ) quindi se utilizzerai la chiamata su un dispositivo con versione < ...avrai problemi

upload_2017-3-28_20-28-38.png


E' sempre consigliabile compilare con gli ultimi SDK altrimenti può accadere ad esempio che non potrai utilizzare qualche libreria, le stesse versioni di B4A sono sempre al passo con l'SDK
 

LucaMs

Expert
Licensed User
Longtime User
Eh, grazie, lo so.

Ma in italiano sarebbe meglio. E poi, avendo letto quasi tutto da sempre, anche se al volo e in inglese, mi sa tanto che nessuno specifichi bene la faccenda che dicevo, ovvero come / cosa scaricare da GitHub, come aprire da Android Studio o Eclipse, se sia sufficiente o meno SLC, etc.

Cmq, te lo chiedevo perché vedo che ultimamente spendi (direi sprechi, come ho fatto troppo anch'io) molto tempo a rispondere parecchio; un bel tutorial sarebbe tempo speso meglio.
 

MarcoRome

Expert
Licensed User
Longtime User
Eh, grazie, lo so.

Ma in italiano sarebbe meglio. E poi, avendo letto quasi tutto da sempre, anche se al volo e in inglese, mi sa tanto che nessuno specifichi bene la faccenda che dicevo, ovvero come / cosa scaricare da GitHub, come aprire da Android Studio o Eclipse, se sia sufficiente o meno SLC, etc.

Cmq, te lo chiedevo perché vedo che ultimamente spendi (direi sprechi, come ho fatto troppo anch'io) molto tempo a rispondere parecchio; un bel tutorial sarebbe tempo speso meglio.
Ammappa quanto "cori" ( in romano una r )...guarda questa di DonManfred e dimmi se non è fatta passo passo

https://www.b4x.com/android/forum/threads/create-an-aar-archive-from-a-third-party-library.68357/

:D:D:D:D
 

LucaMs

Expert
Licensed User
Longtime User
Ammappa quanto "cori" ( in romano una r )
In effetti coro troppo.

Dal titolo, già dal link, vedo che parla di aar archive, qundi roba specifica, se non sbaglio.

Di DonManfred avevo dato un'occhiata ad un altro suo tutorial, in cui diceva di usare una sorta di suoi template e...

e insomma non mi piacquette :D

Va beh, tanto se proprio devo impegnarmi, anziché scrivere stupidaggini qui e là, meglio che re-inizi a dedicarmi alla mia app. Java può attendere.
 
Top