PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → fichier APK trop volumieux pour Google Play
fichier APK trop volumieux pour Google Play
Débuté par xdeslandes, 30 oct. 2017 16:03 - 28 réponses
Membre enregistré
152 messages
Popularité : +1 (1 vote)
Posté le 30 octobre 2017 - 16:03
Bonjour,

Je suis en panique: j'ai consciencieusement développé mon appli qui fonctionne bien. J'ai fait le choix (malheureux visiblement) d'embarquer toutes les données. Mais du coup l'APK fait 405 Mo.
Et là horreur: Google Play limite à 100 Mo l'APK principal. Il est possible d'éclater l'appli avec des fichiers complémentaires pouvant aller jusqu'à Go, disent-ils.

Je dois tout recoder ?? Il y a des solutions de compression d'APK ?

Merci pour vos retours d'expérience.

--
Merci !
Xavier.
Membre enregistré
151 messages
Popularité : +7 (7 votes)
Posté le 30 octobre 2017 - 16:24
Bonjour, qu'entendez-vous par "embarquer toutes les données" ?

Mon application n'atteint pas une telle taille, mais j'ai eu recours à une astuce afin de réduire la taille du fichier APK, la voici.

Une des fontionnalités de mon application est de simuler un orage sur des ampoules connectés, pour le son il s'agit d'un MP3 de 25 MO. J'ai mis ce MP3 sur mon site web et lorsque la personne veut utiliser l'effet, elle reçoit un message lui indiquant qu'elle doit d'abord télécharger le fichier. Ce qui se fait dans l'application avec un HttpRequete, le fichier est stocké dans le répertoire des données.

Pourriez-vous mettre en place un système similaire? Ne pas embarquer certaines données, et proposer le téléchargement la première fois que votre application en a besoin?
Message modifié, 30 octobre 2017 - 16:25
Membre enregistré
152 messages
Popularité : +1 (1 vote)
Posté le 30 octobre 2017 - 17:36
Je vois tout à fait ce que vous proposez, mais
- je ne sais pas prévoir la quantité de données à télécharger (ex. quelle place occupent mes données embarquées HFSL ?)
- je souhaiterais éviter d'avoir à recoder un max de choses...
- quelles données "séparer" de l'appli (je n'ai aucun média son/vidéo et de rares petites images) ?

Merci pour votre réponse.

--
Merci !
Xavier.
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 31 octobre 2017 - 04:18
Bonjour,

Il faut retirer la BDD de ton appli et lancer le téléchargement des données si elle n'existe pas sur l'appareil.
C'est ce que te dit en substance Gaël

Une des fontionnalités de mon application est de simuler un orage sur des ampoules connectés, pour le son il s'agit d'un MP3 de 25 MO. J'ai mis ce MP3 sur mon site web et lorsque la personne veut utiliser l'effet, elle reçoit un message lui indiquant qu'elle doit d'abord télécharger le fichier. Ce qui se fait dans l'application avec un HttpRequete, le fichier est stocké dans le répertoire des données.


Pour toi la c'est le téléchargement des données qui est important. c'est d'ailleurs ce que font toutes les grosses applis. Tu installes l'appli et ensuite elle télécharge le complément.

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Membre enregistré
41 messages
Popularité : +3 (3 votes)
Posté le 31 octobre 2017 - 09:04
Bonjour,

Je suis très intéressé par le code mis en place pour télécharger le fichier mp3 avec httprequete.

Merci d'avance
Membre enregistré
152 messages
Popularité : +1 (1 vote)
Posté le 31 octobre 2017 - 09:33
Merci pour ta réponse Philippe SB.
Tu veux dire que
- je ne joins pas les fichiers de données HFSQL (les .fic, .ftx, .mmo et .ndx) dans l'APK
- lors d'une première exécution, l'appli télécharge ces fichiers
- l'application fonctionne alors en mode déconnecté car tout est alors sur le terminal mobile.

C'est cela me principe ?

Mais alors:
- comment "lier" les fichiers de données (.zip ??)
- où les stocker ?
- comment faire appel à eu lors de la première exécution ?
- où trouver de la doc ?

--
Merci !
Xavier.
Membre enregistré
151 messages
Popularité : +7 (7 votes)
Posté le 31 octobre 2017 - 10:14
Salut Christophe, voici mon code pour charger un fichier depuis le web et l'enregistrer dans le répertoire des données de l'application.

fichier_local est une chaîne = ComplèteRep(fRepDonnées()) + "musique.mp3"
fichier_http est une chaîne = "https://www.monsite.com/unfichier.mp3"

// Nettoyage
SI fFichierExiste(fichier_local) ALORS
fSupprime(fichier_local)
FIN

// Champs jauge de progression, optionnel
HTTPJauge(JAUGE_Download)

// Destination
SI HTTPDestination(fichier_local) ALORS

// Les gros fichiers prennent du temps, il faut adapter cette valeur si on charge de gros fichiers
HTTPTimeOut(60000)

// Récupération du fichier via HTTP
SI PAS httpRequête(fichier_http) ALORS

// Parfois il est mal chargé, notamment en cas de timeout
fSupprime(fichier_local)

Info("Impossible de télécharger le fichier.") //, ERREURINFO(ERRMESSAGE))

FIN

SINON

Info("Impossible de créer le fichier.")

FIN
Message modifié, 31 octobre 2017 - 10:15
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 31 octobre 2017 - 10:39
zipper les fichiers, des déposer un serveur qui t'appartient et faire une requête http pour les récupérer

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Membre enregistré
152 messages
Popularité : +1 (1 vote)
Posté le 31 octobre 2017 - 14:41
Cela se fait ça ?? C'est bon à savoir !
J'attaque.
Merci.
Je vous tiens au courant.

--
Merci !
Xavier.
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 31 octobre 2017 - 15:09
Oui ça se fait et c'est même courant. Cela permet de ne télécharger que les ressources dont l'on a besoin selon les applications. voir les gps avec les cartes par exemple.

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Membre enregistré
152 messages
Popularité : +1 (1 vote)
Posté le 08 novembre 2017 - 12:07
Mauvaise nouvelle: mes fichiers de données ne sont pas si gros que ça. Lorsque je les "sort" de l'apk, ce dernier n'a maiigri que de 50 ko. Il faitt encore 422 Mo.
Que puis je faire pour le réduire ?

--
Merci !
Xavier.
Posté le 08 novembre 2017 - 13:36
Salut,

tu n'aurais pas dans ton appli des éléments trop lourds, par exe des images en haute définition ? Si c'est le cas il faudrait réduire leur poids.
C'est peut être une piste.
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 09 novembre 2017 - 08:20
Je pense que tu as dans ton répertoire exe des choses très lourdes qui sont copiés dans le répertoire de génération. Ca m'est déjà arrivé.

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 10 novembre 2017 - 08:10
Bonjour

422 Mo pour un fichier APK sans image, vidéo ni base de données?

Il est possible aussi de tenter de réduire le code:
https://blogs.pcsoft.fr/fr/nouvelle-option-creation-applications-android-windev-mobile-190044-reduire-taille-code-genere/308/read.awp

par exemple un APK qui fait 10,7 Mo dans le store passe une fois installé à 46 Mo dans le matériel Android.

--
Cordialement
François

http://intra.fr http://intrasoftware.fr
Membre enregistré
152 messages
Popularité : +1 (1 vote)
Posté le 18 novembre 2017 - 10:28
Et est-il possible de ne mettre que la première fenêtre dans l'APK, puis de télécharger les autres fenêtres ensuite ?

--
Merci !
Xavier.
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 19 novembre 2017 - 05:46
Non, Mais tu devrais chercher un peu mieux pour comprendre pourquoi ton apk est aussi importante.

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Membre enregistré
152 messages
Popularité : +1 (1 vote)
Posté le 20 novembre 2017 - 10:38
J'ai beaucoup de code qui génère des phrases-écran (des conseils).
Comment savoir où se trouve le "gros" du code ?

--
Merci !
Xavier.
Membre enregistré
151 messages
Popularité : +7 (7 votes)
Posté le 20 novembre 2017 - 11:07
Bonjour,

Il suffit d'aller dans le répertoire du projet et trier les fichiers par ordre de taille. Normalement ce genre de problème est causé par des images dont la taille n'a pas été optimisée pour correspondre à celle affichée en production.
Membre enregistré
152 messages
Popularité : +1 (1 vote)
Posté le 22 novembre 2017 - 15:23
Je suis vraiment dans l'impasse. J'ai contrôlé le répertoire du projet, ainsi que le répertoire Exe/:
- j'ai supprimé deux images de splashscreen un peu importantes (moins de 1Mo chacune) et supprimé le splashscreen à la génération de l'appli.
- j'ai enlevé deux ou trois images inutiles
mais rien: mon fichier .apk fait toujours plus de 450Mo !!
Je vous fournis les copies d'écran de ce que contiennent mes répertoires.












que puis-je faire d'autre ??
HELP !!

--
Merci !
Xavier.
Membre enregistré
152 messages
Popularité : +1 (1 vote)
Posté le 22 novembre 2017 - 15:27
Quelques chiffres en plus:
Le projet contient:
- 3034 lignes de code
- 852 lignes de commentaires
- 120 traitements
- 12 actions prédéfinies
_ 7 fichiers de données dans l'analyse

Où dois-je chercher ?

--
Merci !
Xavier.
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 22 novembre 2017 - 17:04
hello,
normalement tu peux ouvrir ton .apk avec 7zip et tu peux voir ce qui prend de la place dedans

--
Ami calmant, J.P
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 22 novembre 2017 - 18:07
A tout hasard, il n'intègrerai pas ton apk dans l'apk ???

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Posté le 23 novembre 2017 - 10:00
xdeslandes a exprimé avec précision :
Je suis vraiment dans l'impasse. J'ai contrôlé le répertoire du projet, ainsi
que le répertoire Exe/:
- j'ai supprimé deux images de splashscreen un peu importantes (moins de 1Mo
chacune) et supprimé le splashscreen à la génération de l'appli.
- j'ai enlevé deux ou trois images inutiles
mais rien: mon fichier .apk fait toujours plus de 450Mo !!
Je vous fournis les copies d'écran de ce que contiennent mes répertoires.












que puis-je faire d'autre ??
HELP !!


bonjour,

faire dans le projet :
Menu Projet -> Liste des éléments du projet et voir s'il n'embarque pas
qq ch de bizarre

--
Cordialement JeAn-PhI
Membre enregistré
152 messages
Popularité : +1 (1 vote)
Posté le 23 novembre 2017 - 11:10
Euréka !!!
Effectivement, le fichier .apk était inclus dans la génération. Une bête case à cocher dans l'une des étapes de la génération quoi.

Mon .apk ne fait plus que 9Mo.

Merci à vous. Affaire résolue.

--
Merci !
Xavier.
Posté le 25 novembre 2017 - 18:19
Bjr,

xdeslandes avait soumis l'idée :
Euréka !!!
Effectivement, le fichier .apk était inclus dans la génération. Une bête case
à cocher dans l'une des étapes de la génération quoi.

Mon .apk ne fait plus que 9Mo.

Merci à vous. Affaire résolue.


je comprends rien a l'addition des Mo la ....

a plus

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 26 novembre 2017 - 06:27
Si c'est logique. Au fur et a mesure des compilations il crée l apk en ajoutant l'apk précédent. Ce dernier ne fait que grossir jusqu'à atteidre une taile hors norme et qu'on s'en rende compte.

Moi j'en ai eu de 800 mo comme ca

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Posté le 27 novembre 2017 - 08:02
Philippe SB a formulé ce dimanche :
Si c'est logique. Au fur et a mesure des compilations il crée l apk en
ajoutant l'apk précédent. Ce dernier ne fait que grossir jusqu'à atteidre une
taile hors norme et qu'on s'en rende compte.

Moi j'en ai eu de 800 mo comme ca


ok

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Membre enregistré
4 messages
Posté le 29 octobre 2019 - 11:25
Bonjour,

Je déterre ce sujet juste pour ceux qui trouverais que leur APK Windev Mobile (Android) est un peut gros : je suis en V24, et mon APK fait 42Mo...

J'ai donc voulu voir ce qui était si volumineux. Meci à "Jurassic Pork" pour son astuce d'ouvrir l'APK avec WinZip !






On peut alors voir que 40 Mo sur le 42 Mo sont dans le répertoire "lib"





Ce répertoire contient 1 répertoires par modèle de processeur supportant Android (x86, ARM,...)





et enfin, dans chacun de ces répertoires, les DLL Windev Mobile V24...

Ma conclusion : en Version 24, une APK Android ne peut pas faire moins de 40Mo !

PS : J'ai testé l'astuce de François SCHAAL pour activer l'option réduisant la taille du code : compilation très longue... et mon programme ne fonctionnait plus !

--
Les freins c'est pour les lâches... mais il n'y a que les imbéciles qui ne les utilisent pas !
Membre enregistré
21 messages
Popularité : +1 (1 vote)
Posté le 04 novembre 2019 - 17:55
Bonjour,

Je travail actuellement une app sur WM 24, et je viens de constater que le champ carte charge des bibliothèques très volumineuses, au début l'apk ne faisait que 3,7 Mo, et des l'ajout du champ carte l'apk passe a 35 Mo, et lorsque j'efface ce champ et je recompile l'Apk reste a 35 Mo.

Comment faire?
dois je tout refaire ?
avec quoi je peut remplacer ce champs carte ?? "champ html" !!!