PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV Mobile 2024 → Comment baisser la taille de votre apk
Comment baisser la taille de votre apk
Iniciado por bernard SOBRA, 16,feb. 2024 19:31 - 8 respuestas
Miembro registrado
337 mensajes
Popularité : +11 (13 votes)
Publicado el 16,febrero 2024 - 19:31
Bonjour les amis,

C'est un problème récurrent pour lequel je n'avais pas les compétences de comprendre comment et surtout pourquoi la taille de mes apk est toujours monstrueuse. Ce matin je développe une petite application pour Androïd, avec une fenêtre, pas d'analyse, pas de champ zarbi, rien que de la combo et des zones de saisie, un seul style, pas de pdf et autres état gourmand.

Après compilation, je me retrouve avec un apk de 100 Mo !!!!

La ruque me prend, et je demande à mon ami maintenant quotidien ChatGpt de me résoudre le problème. Ben en fait, c'est très simple, il m'a fait mettre deux lignes de code dans un fichier de mon projet, et mon nouvel apk fait maintenant 8Mo !!

DAns votre répertoire projet, sous projet>>androi>>gen, il y a un fichier nommé build.gradel. Ouvrez le avec le bloc notre, et repérez la ligne de code :

buildTypes {
release {
zipAlignEnabled true
minifyEnabled false
proguardFile file('prg.dat')

Remplacez "minifyEnabled false" par "minifyEnabled true"

Remplacez la ligne "proguardFile file('prg.dat')" par le code suivant :

// Active la réduction des ressources, qui est effectuée par le plugin Android Gradle.
shrinkResources true

// Inclut les fichiers de règles ProGuard par défaut qui sont emballés avec le plugin Android Gradle.
// Pour en savoir plus, allez à la section sur les fichiers de configuration R8.
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

Et hop, 92 Mo de moins, ca le fait....
Moi, ça marche, mais surtout ne me demandez pas pourquoi !!

--
Développeur Indépendant en Free-lance. Contactez moi par MP ou mel pour avoir mes conditions d'engagements.
Miembro registrado
797 mensajes
Popularité : +40 (42 votes)
Publicado el 16,febrero 2024 - 21:15
Bonjour, plusieurs choses :
1) Dans mon cas, une application avec une seule fenêtre ne pèse qu'environ 6 Mo.

2) Avez-vous vérifié ce type de changement avec PCSoft ? Ce type de changement dans la génération de l'application peut conduire à ce que certaines ressources utilisées par l'application ne soient pas trouvées au moment de l'exécution car cela affecte la façon dont le processus ProGuard fonctionne. (https://developer.android.com/build/shrink-code)

3) Ce qui est valable dans un environnement comme Android Studio ne l'est pas forcément avec WM. Si vous faites une recherche sur Internet, vous trouverez de nombreux commentaires sur des problèmes d'exécution et de compilation lors de l'utilisation de minifyEnabled true.

4) WM utilise non seulement du code Java mais aussi de nombreuses bibliothèques natives, même avec des versions différentes pour différents types de processeurs. Dans mon application, qui comporte environ 80 fenêtres, lorsque je génère l'APK, sa taille est d'environ 89 Mo. Si je génère l'application pour la télécharger dans la boutique Google au format AAB, elle pèse également 89 Mo, mais lorsque cette application est téléchargée à partir de la boutique, sa taille n'est que de 35 Mo, car la boutique ne vous envoie que celle qui est compatible avec votre appareil.

Rubén
Miembro registrado
337 mensajes
Popularité : +11 (13 votes)
Publicado el 17,febrero 2024 - 16:14
Rubén Sánchez Peña a écrit :
Bonjour, plusieurs choses :
1) Dans mon cas, une application avec une seule fenêtre ne pèse qu'environ 6 Mo
Rubén


Comment expliquer alors que la mienne pèse 100 Mo ? Sans analyse, sans accès à des fichier.... Quelle erreur ais-je fait ?

--
Développeur Indépendant en Free-lance. Contactez moi par MP ou mel pour avoir mes conditions d'engagements.
Miembro registrado
797 mensajes
Popularité : +40 (42 votes)
Publicado el 17,febrero 2024 - 21:17
Bonjour, je ne sais pas comment vous répondre et encore moins sans voir votre projet. Je viens de générer un nouveau projet simple comme celui que vous avez indiqué.

Pour une simple fenêtre vide






Pour une fenêtre avec des champs







Pour une fenêtre avec certains champs, activer le cryptage des chaînes et la réduction de la taille dans les options avancées







Je ne peux pas vous en dire plus.


Rubén
Miembro registrado
797 mensajes
Popularité : +40 (42 votes)
Publicado el 17,febrero 2024 - 21:23
S'il est dit que le HF doit être utilisé même si aucun fichier n'est défini






Peut-être avez-vous défini l'utilisation des bibliothèques sans les utiliser ?

Rubén
Miembro registrado
328 mensajes
Publicado el 19,febrero 2024 - 08:15
Bonjour,
La différence ne viendrait-elle pas des processeurs visés ? Personnellement, je ne génère que pour ARM64 qui, à mon avis, couvre la grande majorité du parc. Notre appli de 200 fenêtres (!) génère ainsi un APK de 31Mo (avec pourtant pas mal de procédures et gestion HFSQL classique).
Miembro registrado
797 mensajes
Popularité : +40 (42 votes)
Publicado el 19,febrero 2024 - 13:05
Bonjour, Dans l'exemple que j'ai montré, l'accès à la base de données passe de 8 à 40 MB avec tous les types de processeurs inclus. C'est pourquoi je vous demandais si vous aviez inclus d'autres bibliothèques qui pourraient expliquer cette augmentation de taille.

Rubén
Miembro registrado
337 mensajes
Popularité : +11 (13 votes)
Publicado el 23,febrero 2024 - 09:24
Bonjour,
J'ai réduit le nombre de processeur, mais surtout, j'ai activé une case à cocher que j'ai découvert en me balladant dans les options :





Et là, je retrouve les informations de taille que vous me donnez : mon appli fait maintenant 14Mo. Ca va être plus raisonable....
Merci à vous tous.

--
Développeur Indépendant en Free-lance. Contactez moi par MP ou mel pour avoir mes conditions d'engagements.
Miembro registrado
797 mensajes
Popularité : +40 (42 votes)
Publicado el 23,febrero 2024 - 13:47
Bonjour, c'est ce que j'ai indiqué plus haut avec "Pour une fenêtre avec certains champs, activer le cryptage des chaînes et la réduction de la taille dans les options avancées"


Rubén