Forums Développement Multimédia

Aller au contenu

APK expansion files

CODE Actionscript

14 réponses à ce sujet

#1 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1784 messages

Posté 21 July 2013 - 23:40 PM

Bonjour,

je voulais savoir si quelqu'un avait déjà utilisé un APK expansion files (obb) pour une application Android qui dépasse les 50 Mo.

merci.

#2 Beatrice78

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 23 July 2013 - 11:53 AM

Je crois que c'est impossible de télécharger une appli qui dépasse les 50 Mo en APK à moins d'accéder à un wifi ;)
www.imprimez-moins-cher.com

#3 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1784 messages

Posté 25 July 2013 - 10:27 AM

Je vais passer par une extension native, je vais regarder comment fonctionne les 2 package du SDK Android qui gère ça :
- Google Play Licensing Library package
- Google Play APK Expansion Library package
http://developer.and...sion-files.html

#4 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1784 messages

Posté 15 September 2013 - 23:13 PM

j'ai réalisé mon extension native pour les applications Air Android qui ont un poids supérieur à 50 mo
vous pouvez ajouter 2 fichiers dans la console développeur de Google Play "main" et "patch" de 2 Go chacun
pour ceux qui sont confrontés au même pb, récupérer mon fichier ane

pour l'utiliser il faut récupérer la clé publique dans la console développeur de Google Play, section "Services et API"

import flash.display.Sprite;
import flash.filesystem.File;
import flash.events.Event;
import flash.display.Loader;
import flash.net.URLRequest;
import com.nativeExtensions.apkExpansionFiles.APKCompleteEvent;
import com.nativeExtensions.apkExpansionFiles.APKExpansionFiles;
public function Main(){
        addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
private function onAddedToStage(evt:Event):void {
        var apkExpansionFiles:APKExpansionFiles = new APKExpansionFiles();
        apkExpansionFiles.addEventListener(APKCompleteEvent.APK_COMPLETE, onComplete);
        var BASE64_PUBLIC_KEY:String = "your_public_key";
        var outputDir:String="/Android/data/"; // the outpout folder
        var mainVersion:String="1000023"; // the version of the APK that the file was uploaded
        var mainSize:String="18682320"; // the length of the file in bytes
        var mainUnzip:Boolean=true; // unzip the file
        //var patchVersion:String="1000024"; // the version of the APK that the file was uploaded
        //var patchSize:String="14923834"; // the length of the file in bytes
        //var patchUnzip:Boolean=true; // unzip the file
        apkExpansionFiles.expansionFilesDelivered(BASE64_PUBLIC_KEY, mainVersion, mainSize, mainUnzip, outputDir); // only main obb file
        //apkExpansionFiles.expansionFilesDelivered(BASE64_PUBLIC_KEY, mainVersion, mainSize, mainUnzip, outputDir, patchVersion, patchSize, patchUnzip); // main and patch obb files
}
private function onComplete(e:APKCompleteEvent):void{
        var conteneurImage:Loader = new Loader();
        //var getExternalStorageDirectory:String = e.params.getExternalStorageDirectory; // the shared storage space
        var file:File = new File(e.params.outputDirMain+"myImage.jpg"); // the outpout Main folder
        //var file:File = new File(e.params.outputDirPatch+"myImage.jpg");      // the outpout Patch folder
        var image:URLRequest = new URLRequest(file.url);
        conteneurImage.load(image);
        this.addChild(conteneurImage);
}

ce qu'il faut rajouter dans l'application-descriptor.xml

Citation

<android>
<colorDepth>16bit</colorDepth>
<manifestAdditions>
<![CDATA[
<manifest>
<uses-permission android:name="android.permission.PERMISSION_NAME" /> <uses-permission android:name="com.android.vending.CHECK_LICENSE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:hardwareAccelerated="true"> <service android:name="com.apk.expansion.downloader.APKDownloaderService" /> <receiver android:name="com.apk.expansion.downloader.APKAlarmReceiver" /> <activity android:name="com.apk.expansion.downloader.APKDownloaderActivity" android:theme="@android:style/Theme.Dialog" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> </application> </manifest>"]]>
</manifestAdditions>
</android>
<extensions>
<extensionID>com.nativeExtensions.APKExpansionFiles</extensionID>
</extensions>

- pensez à obscurcir votre clé publique
- dans l'exemple le fichier "main.version.air.appname.obb" est décompressé dans "/Android/data/", mainUnzip permet de le décompresser ou pas
- si mainUnzip=true, "main.version.air.appname.obb" doit être un fichier *.zip
- mainVersion à récupérer dans "main.version.air.appname.obb"
- mainSize : la taille du fichier en octets
- "e.params.outputDirMain" : dossier dans lequel main.obb a été dézipé

Fichier(s) joint(s)



#5 g4geraldine

    Ceinture Blanche

  • Members
  • Pip
  • 1 messages

Posté 17 September 2013 - 21:31 PM

Pourriez vous expliquer comment et ou - avec un accent - doit-on copier le fichier .ane dans l'application?
Dois-je simplement le copier dans le dossier contenant airglobal.swc?
Ou dois creer un dossier "com" ?

Vous avez dans votre code :
import com.nativeExtensions.apkExpansionFiles.APKCompleteEvent;
import com.nativeExtensions.apkExpansionFiles.APKExpansionFiles;
Est-ce une reference au fichier .ane?

Merci.
Geraldine


Merci.

#6 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1784 messages

Posté 18 September 2013 - 18:24 PM

le fichier ane, c'est un peu comme un swc, les classes as3 sont dedans, il y a aussi le fichier jar.

#7 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1784 messages

Posté 07 October 2013 - 13:01 PM

une mise à jour est dispo, vous pouvez utiliser l'outil jobb du sdk Android pour monter les fichiers obb
le nouveau fichier ane est dispo à l'adresse http://pol2095.free....nsionFiles.html

#8 draad

  • Members
  • PipPipPipPipPipPipPipPip
  • 654 messages

Posté 13 March 2014 - 21:13 PM

Salut,

Je me confronte justement a ce problème aujourd'hui .

Tout d'abord, merci pour l'extension ANE, cela va être très utile !

N'ayant malheureusement pas prévu le coup par avance, je me demandais s'il était possible d'unzipper l'extension apk directement dans la hierarchie de mon application (j'ai un dossier assets où je souhaiterais que tous les graphismes soient regroupés ...) ?

#9 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1784 messages

Posté 13 March 2014 - 22:01 PM

sur android je ne pense pas que tu es le droit de modifier le répertoire où est installé l'application, par contre tu peux mettre tous tes graphismes dans le main.obb et ensuite pointer vers ce dossier monté comme tu le ferais pour le dossier assets.

#10 draad

  • Members
  • PipPipPipPipPipPipPipPip
  • 654 messages

Posté 14 March 2014 - 23:05 PM

Coucou, après plus de recherche autour de ces extensions, j'ai reussi a faire fonctionner tout ça, mais sans utiliser ton ANE ni de gestion d'extensions. Il semble que l'extensions soit téléchargée automatiquement avec l'application.

Je me demande donc si je suis passé a coté de quelque chose ?

Ps : merci pour le conseil de lecture directe du .obb, ca fonctionne nickel !

#11 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1784 messages

Posté 14 March 2014 - 23:31 PM

regarde sur la page http://developer.and...sion-files.html

Citation

If Google Play is able to download the expansion files (which is the case for most devices), it downloads them along with the APK.
If Google Play is unable to download the expansion files, it downloads the APK only.

il y a des cas où l'obb n'est pas téléchargé avec l'apk, c'est une sécurité

tu le lis comment le fichier obb ?

#12 draad

  • Members
  • PipPipPipPipPipPipPipPip
  • 654 messages

Posté 15 March 2014 - 16:38 PM

Ha ok, d'où l'utilitée de checker la présence avec ton ANE et de le télécharger s'il n'existe pas.

Pour lire l'obb j'utilise la libraire airxzip : http://stackoverflow...s-using-airxzip, qui me permet d'aller lire les fichiers dont j'ai besoin au fur et a mesure de l'application

#13 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1784 messages

Posté 15 March 2014 - 17:11 PM

on peut crypter les fichiers ?

#14 draad

  • Members
  • PipPipPipPipPipPipPipPip
  • 654 messages

Posté 15 March 2014 - 17:17 PM

Il semble que oui : http://airxzip.googl...pt/ZipCrypto.as

#15 draad

  • Members
  • PipPipPipPipPipPipPipPip
  • 654 messages

Posté 15 March 2014 - 17:40 PM

Tiens, tu l'as peut-etre déjà fait, mais est-ce que a l'occasion tu pourrais écrire un tuto sur la façon de créer des ANE compatibles pour IOS et AND?



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP