Introduction
Google Play currently requires that your APK file be no more than 50MB. For most applications, this is plenty of space for all the application's code and assets. However, some apps need more space for high-fidelity graphics, media files, or other large assets. Previously, if your app exceeded 50MB, you had to host and download the additional resources yourself when the user opens the app. Hosting and serving the extra files can be costly, and the user experience is often less than ideal. To make this process easier for you and more pleasant for users, Google Play allows you to attach two large expansion files that supplement your APK.Google Play hosts the expansion files for your application and serves them to the device at no cost to you. The expansion files are saved to the device's shared storage location (the SD card or USB-mountable partition; also known as the "external" storage) where your app can access them. On most devices, Google Play downloads the expansion file(s) at the same time it downloads the APK, so your application has everything it needs when the user opens it for the first time. In some cases, however, your application must download the files from Google Play when your application starts.
Overview
Each time you upload an APK using the Google Play Android Developer Console, you have the option to add one or two expansion files to the APK. Each file can be up to 2GB and it can be any format you choose, but we recommend you use a compressed file to conserve bandwidth during the download. Conceptually, each expansion file plays a different role:- The main expansion file is the primary expansion file for additional resources required by your application.
- The patch expansion file is optional and intended for small updates to the main expansion file.
Screen:
Please see below screen for how apk expansion work.
File name format
Each expansion file you upload can be any format you choose (ZIP, PDF, MP4, etc.).[main|patch].. .obb
There are three components to this scheme:
main or patch
Specifies whether the file is the main or patch expansion file. There can be only one main file and one patch file for each APK.
<expansion-version>
This is an integer that matches the version code of the APK with which the expansion is first associated.
Developer Console allows you to re-use an uploaded expansion file with a new APK,
<package-name>
Your application's Java-style package name.
For example, suppose your APK version is 314159 and your package name is com.example.app. If you upload a main expansion file, the file is renamed to:
main.314159.com.example.app.obb
Ex. main.1.packagename.obb.zip name used in my project.
Storage location
When Google Play downloads your expansion files to a device, it saves them to the system's shared storage location. To ensure proper behavior, you must not delete, move, or rename the expansion files. In the event that your application must perform the download from Google Play itself, you must save the files to the exact same location.The specific location for your expansion files is:
<shared-storage>/Android/obb/<package-name>/
<shared-storage> is the path to the shared storage space, available from getExternalStorageDirectory().
<package-name> is your application's Java-style package name, available from getPackageName().
Ex: sdcard/Android/obb/packagename/main.1.packagename.obb
If you must unpack the contents of your expansion files, do not delete the .obb expansion files afterwards and do not save the unpacked data in the same directory
For example, we've provided a library project called the APK Expansion Zip Library that reads your data directly from the ZIP file.
Note: Unlike APK files, any files saved on the shared storage can be read by the user and other applications.
Download process
Most of the time, Google Play downloads and saves your expansion files at the same time it downloads the APK to the device. However, in some cases Google Play cannot download the expansion files or the user might have deleted previously downloaded expansion files. To handle these situations, your app must be able to download the files itself when the main activity starts, using a URL provided by Google Play.The download process from a high level looks like this:
- User selects to install your app from Google Play.
- 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. - When the user launches your application, your app must check whether the expansion files are already saved on the device.
1. If yes, your app is ready to go.
2. If no, your app must download the expansion files over HTTP from Google Play. Your app must send a request to the Google Play client using the Google Play's Application Licensing service, which responds with the name, file size, and URL for each expansion file. With this information, you then download the files and save them to the proper storage location.
Use Download Library to implement your download behavior. Its Very Easy to use & Implement Downloading behavior using Download Library. you can also take reference from Sample Demo App.
Downloading the Expansion files
In most cases, Google Play downloads and saves your expansion files to
the device at the same time it installs or updates the APK. This way,
the expansion files are available when your application launches for the
first time. However, in some cases your app must download the expansion
files itself by requesting them from a URL provided to you in a
response from Google Play's Application Licensing service.
1. When your application starts, look for the expansion files on the shared storage location (in the Android/obb/<package-name>/ directory).
a. If the expansion files are there, you're all set and your application can continue.
b. If the expansion files are not there:
1.) Perform a request using Google Play's Application Licensing to get your app's expansion file names, sizes, and URLs.
2.) Use the URLs provided by Google Play to download the expansion files and save the expansion files. You must save the files to the shared storage location (Android/obb/<package-name>/) and use the exact file name provided by Google Play's response.
Note:
The URL that Google Play provides for your expansion files is unique for every download and each one expires shortly after it is given to your application.
Note: Whether your application is free or not, Google Play returns the expansion file URLs only if the user acquired your application from Google Play.
Sample Demo App:
You can Download Sample App from SDK Manager. And Take Reference from it.You have to download below Library from SDK Manager in Eclipse.
Google Play Licensing Library
Google Play APK Expansion Library
Download from SDK Manager |
You have to add total three Library in your Project for APK Expansion
1) APK Expansion Zip Library (SDK/extras/google/play_apk_expansion/zip_file)
2) Application Licensing (SDK/extras/google/market_licensing)3) Downloader Library (SDK/extras/google/play_apk_expansion/downloader_library)
APK Expansion Zip Library
This is an optional library that helps you read your expansion files when they're saved as ZIP files. Using this library allows you to easily read resources from your ZIP expansion files as a virtual file system.
Downloader Library
To use APK expansion files with your application and provide the best user experience with minimal effort on your behalf, we recommend you use the Downloader Library that's included in the Google Play APK Expansion Library package. This library downloads your expansion files in a background service, shows a user notification with the download status, handles network connectivity loss, resumes the download when possible, and more.
Application Licensing
If the files are not on the device, use Google Play's Application Licensing service to request URLs for the expansion files, then download and save them.
Downloaded Sample Demo Available at below paths in your system.
ex. /Android SDK / extras/ google / play_apk_expansion/
Declaring user permissions
Note: By default, the Downloader Library requires API level 4, but the APK Expansion Zip Library requires API level 5.
Implementing the downloader service
In order to perform downloads in the background, the Downloader Library provides its own Service subclass called DownloaderService that you should extend. In addition to downloading the expansion files for you, the DownloaderService also:All you need to do is create a class in your application that extends the DownloaderService class and override three methods to provide specific application details:
getPublicKey()
This must return a string that is the Base64-encoded RSA public key for your publisher account, available from the profile page on the Developer Console (see Setting Up for Licensing).
getSALT()
This must return an array of random bytes that the licensing Policy uses to create an Obfuscator. The salt ensures that your obfuscated SharedPreferences file in which your licensing data is saved will be unique and non-discoverable.
getAlarmReceiverClassName()
This must return the class name of the BroadcastReceiver in your application that should receive the alarm indicating that the download should be restarted (which might happen if the downloader service unexpectedly stops).
For example, here's a complete implementation of DownloaderService:
public class SampleDownloaderService extends DownloaderService { // You must use the public key belonging to your publisher account public static final String BASE64_PUBLIC_KEY = "YourLVLKey"; // You should also modify this salt public static final byte[] SALT = new byte[] { 1, 42, -12, -1, 54, 98, -100, -12, 43, 2, -8, -4, 9, 5, -106, -107, -33, 45, -1, 84 }; @Override public String getPublicKey() { return BASE64_PUBLIC_KEY; } @Override public byte[] getSALT() { return SALT; } @Override public String getAlarmReceiverClassName() { return SampleAlarmReceiver.class.getName(); } }
Notice: You must update the BASE64_PUBLIC_KEY value to be the public key belonging to your publisher account. You can find the key in the Developer Console under your profile information. This is necessary even when testing your downloads.
Remember to declare the service in your manifest file:
...
Note: You have to add your BASE64 public key in SampleDownloaderService in your app.
This key you can get when you create app in Google Market.
Implementing the alarm receiver
In order to monitor the progress of the file downloads and restart the
download if necessary, the DownloaderService schedules an RTC_WAKEUP
alarm that delivers an Intent to a BroadcastReceiver in your
application. You must define the BroadcastReceiver to call an API from
the Downloader Library that checks the status of the download and
restarts it if necessary.
For example:
public class SampleAlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { try { DownloaderClientMarshaller.startDownloadServiceIfRequired(context, intent, SampleDownloaderService.class); } catch (NameNotFoundException e) { e.printStackTrace(); } } }
Notice that this is the class for which you must return the name in your service's getAlarmReceiverClassName() method (see the previous section).
Remember to declare the receiver in your manifest file:
...
Activity for Expansion Handling
public class VideoDownloaderActivity extends Activity implements IDownloaderClient { /** * Here is where you place the data that the validator will use to determine * if the file was delivered correctly. This is encoded in the source code * so the application can easily determine whether the file has been * properly delivered without having to talk to the server. If the * application is using LVL for licensing, it may make sense to eliminate * these checks and to just rely on the server. */ private static final XAPKFile[] xAPKS = { new XAPKFile(true, // true // signifies // a main // file 1, // the version of the APK that the file was uploaded // against 191696333L // the length of the file in bytes ), private class CopyTask extends AsyncTask<Void, Void, Boolean> { private ProgressDialog mProgressDialog; private Context context; public CopyTask(Context context) { this.context = context; } /** * Display the dialog first when the webservice call. */ @Override protected void onPreExecute() { super.onPreExecute(); if (context != null) { mProgressDialog = ProgressDialog.show(context, "", context.getString(R.string.copy_video_message), true, false); } } /** * Call the webservice and parse the data from the service in * background. */ @Override protected Boolean doInBackground(Void... params) { // return wsLinks.executeService(currentPage); for (XAPKFile xf : xAPKS) { String fileName = Helpers.getExpansionAPKFileName( VideoDownloaderActivity.this, xf.mIsMain, xf.mFileVersion); if (!Helpers.doesFileExist(VideoDownloaderActivity.this, fileName, xf.mFileSize, false)) return true; fileName = Helpers.generateSaveFileName( VideoDownloaderActivity.this, fileName); ZipResourceFile zrf; try { zrf = APKExpansionSupport.getAPKExpansionZipFile( VideoDownloaderActivity.this, 1, 0); File path = new File( Environment.getExternalStorageDirectory() + File.separator + getString(R.string.app_name)); if (!path.exists()) { // create a File object for the // parent directory File photoDirectory = new File( path.getAbsolutePath()); // have the object build the // directory structure, if needed. photoDirectory.mkdirs(); } else { if (path.isDirectory()) { String[] children = path.list(); Log.v(LOG_TAG, "file length:" + children.length); for (int i = 0; i < children.length; i++) { new File(path, children[i]).delete(); } } } for (ZipEntryRO entry : zrf.getAllEntries()) { Log.v(LOG_TAG, "name:" + entry.mFileName); DataInputStream is = new DataInputStream( zrf.getInputStream(entry.mFileName)); // AssetFileDescriptor af = // zrf.getAssetFileDescriptor(entry.mFileName); long length = entry.mCompressedLength; byte[] buf = new byte[1024 * 256]; Log.v("assetfilediscripter", "" + length); // FileOutputStream fos = new FileOutputStream(""); // OutputStream stream = new BufferedOutputStream(new // FileOutputStream("/storage/sdcard0/Download/sample.mp3")); String[] bits = entry.mFileName.split("/"); String lastOne = bits[bits.length-1]; Log.v(LOG_TAG, "path:" + path + ":"+ lastOne); OutputStream stream = new BufferedOutputStream( new FileOutputStream(path + "/" + lastOne)); int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int len = 0; while ((len = is.read(buffer)) != -1) { stream.write(buffer, 0, len); } if (stream != null) stream.close(); // break; } return true; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } } return true; } /** * onPostExecute method after called webService and Set the data into * adapter after background task is complete. this method set footerView * into listView according to totalPAge. */ @Override protected void onPostExecute(Boolean result) { super.onPostExecute(result); if (mProgressDialog != null && mProgressDialog.isShowing()) { mProgressDialog.dismiss(); } if (result) { finish(); Intent intent = new Intent(VideoDownloaderActivity.this, VideoListActivity.class); startActivity(intent); } else { errorDialog(context, context.getString(R.string.copy_failed)); } } } }
Testing Your Expansion Files
Before publishing your application, there are two things you should test: Reading the expansion files and downloading the files.
Testing file reads
1.) On your device, create the appropriate directory on the shared storage where Google Play will save your files.
For example, if your package name is com.example.android, you need to create the directory Android/obb/com.example.android/ on the shared storage space. (Plug in your test device to your computer to mount the shared storage and manually create this directory.)
2.) Manually add the expansion files to that directory. Be sure that you rename your files to match the file name format that Google Play will use.
For example, regardless of the file type, the main expansion file for the com.example.android application should be main.0300110.com.example.android.obb. The version code can be whatever value you want. Just remember:
- The main expansion file always starts with main and the patch file starts with patch.
- The package name always matches that of the APK to which the file is attached on Google Play.
Here are some reminders about handling the expansion files:
- Do not delete or rename the .obb expansion files (even if you unpack the data to a different location). Doing so will cause Google Play (or your app itself) to repeatedly download the expansion file.
- Do not save other data into your obb/ directory. If you must unpack some data, save it into the location specified by getExternalFilesDir().
Because your application must sometimes manually download the expansion files when it first opens, it's important that you test this process to be sure your application can successfully query for the URLs, download the files, and save them to the device.
To test your application's implementation of the manual download procedure, you must upload your application to Google Play as a "draft" to make your expansion files available for download:
1.) Upload your APK and corresponding expansion files using the Google Play Developer Console
2.) Fill in the necessary application details (title, screenshots, etc.). You can come back and finalize these details before publishing your application.
Click the Save button. Do not click Publish. This saves the application as a draft, such that your application is not published for Google Play users, but the expansion files are available for you to test the download process.
3.) Install the application on your test device using the Eclipse tools or adb.
4.) Launch the app.
If everything works as expected, your application should begin downloading the expansion files as soon as the main activity starts.
References: http://developer.android.com/google/play/expansion-files.html
good post, thanks i have few issues like when i run the app it says
ReplyDelete02-21 03:05:04.782: E/AndroidRuntime(1483): FATAL EXCEPTION: main
02-21 03:05:04.782: E/AndroidRuntime(1483): java.lang.NoClassDefFoundError: com.google.android.vending.licensing.APKExpansionPolicy
02-21 03:05:04.782: E/AndroidRuntime(1483): at com.google.android.vending.expansion.downloader.impl.DownloaderService$LVLRunnable.run(DownloaderService.java:756)
02-21 03:05:04.782: E/AndroidRuntime(1483): at android.os.Handler.handleCallback(Handler.java:587)
02-21 03:05:04.782: E/AndroidRuntime(1483): at android.os.Handler.dispatchMessage(Handler.java:92)
02-21 03:05:04.782: E/AndroidRuntime(1483): at android.os.Looper.loop(Looper.java:130)
02-21 03:05:04.782: E/AndroidRuntime(1483): at android.app.ActivityThread.main(ActivityThread.java:3683)
02-21 03:05:04.782: E/AndroidRuntime(1483): at java.lang.reflect.Method.invokeNative(Native Method)
02-21 03:05:04.782: E/AndroidRuntime(1483): at java.lang.reflect.Method.invoke(Method.java:507)
02-21 03:05:04.782: E/AndroidRuntime(1483): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-21 03:05:04.782: E/AndroidRuntime(1483): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-21 03:05:04.782: E/AndroidRuntime(1483): at dalvik.system.NativeStart.main(Native Method)
what does this mean ?
where am i going wrong
Hello varun,
Deletehad you added market_licensing library project in your project?
if yes, remove library,clean it,add again library because class not found in your project.
if no,market_licensing library available in your updated SDK (SDK/extras/google/market_licensing) Please add library project in your project.
you have to add three library Project
1)SDK/extras/google/play_apk_expansion/zip_file
2)SDK/extras/google/play_apk_expansion/downloader_library
3)SDK/extras/google/market_licensing
Thanks, Now its working but i ma not able to test it locally, i mean before uploading the apk file to android market.
DeleteI have put the obb file in /Android/obb/package-name/my_obb_file
But when i am testing it says "XAPK file Validation Failed"
What might be the problem?
Hello varun,
DeleteYou have to comment APK Downloadig & Validation code & after that you have to Test it. This validateXAPKZipFiles() method Validate the expansion files so you have to comment it & Modify Some code for testing locally without uploading.
Hey, just wondering what did you have to modify and change to make it work locally. I'm in the same problem and could really do with some help :)
DeleteThank you!
Josh
I like the helpful information you provide in your articles. I will bookmark your blog site and check again here regularly for best paid & latest Apps/Games
DeleteAndroid Market Apk I'm quite certain & learn lots of new stuff right here!Best of luck for the next post. Thank u very much
Ankit can you please come on skype with me for few minutes?
DeleteImeiBaterai
DeleteKonslet
Memory Card
Konektor Charger
Firmware Android
Imei Null
Octoplus Samsung
Cara Baca Skema HP
Cara Flash HP
Ankit Thakkar ,
ReplyDeleteThanks a lot, it works now,
1) but i need to know are we extracting the data to some where here, i mean the data in the .obb file to some location in sdcard?.
2)by using APK Expansion Zip Library i got to know that we can directly read the data from zip file only that is .obb file and we need not have to extract it.
3) I have folder in the .obb file like birthdays, data in my .obb files and they are images ... how to read the data from there?
Hi Ankit Thakkar,
ReplyDeleteThanks for the explanation.
I have project for which i want to implement the expansion files. Video and image files are in projects raw folder, i want to put the raw folder as an expansion file. And unable to implement the expansion file concept in my project.
how to write the code to access the files from the shared storage into the application?
can i zip all the available files together?
Ok. Thank you so much for your quick reply. Let me try to implement.
DeleteHi
DeleteI have tried implementing expansion files into my application.Zipped raw folder and named it according to google doc.
I have created a folder and placed the expansion file:
android/obb/com.myappname/main.1.com.myappname.obb.zip
now i have removed raw folder from the application.
my code is as given below
String path1 = "android.resource://" + getPackageName() + "/" + R.raw.e4;
intent.putExtra ("FILE_PATH", path1);
as soon as i remove raw folder from application, got the error under raw saying raw can't be resolved to a variable.
how to overcome this issue .? how to change the code?
Hi Ankit Thakkar,
DeleteFinally I have Implemented and launched my application. But i am seeing only black screen. and there are no errors in log cat or in the console.
i do not know the reason for this. can you tell me the reason for this.
Thanks
when i run the app in emulator i got the error as : " error opening the trace file: no such file or directory(2)
DeleteHi Ankit Thakkar,
ReplyDeleteI have tested the APK from Eclipse on my nexus 7.
I have uploaded the APK and expansion files into google play and saved as draft.
Now the App is downloading the expansion files from google play and saving on the device memory.
now the problem is the code what i have written to access the .JPG and MP4 is not working. I need to research it.
i do not know how to check the internal SD card folder on nexus 7.
Please suggest me
hello,
ReplyDeleteHi i created one apk file, when i directly install in mobile its working correctly.
if same time i upload same apk file in google play and my web page, that apk file can't able to download. its shows error...
please give me the solution mail:adhamsheriff89@gmail.com...
Thankyou.
Hello
DeleteIf resource not found error occured, It takes sometime for downloading from google play. so you have to wait for it.
You have to check in real device.
Can i know which error gives?? So i can give you solution.
http://wininterview.blogspot.in/2013/04/download-file-in-android-from-remote.html
ReplyDeleteHey Ankit Thakkar!
ReplyDeleteIs there a standard way to deal with a situation when on app start the connection was off? I took the code from the downloader example from the SDK and and it worked good. But there's an issue I cannot solve and don't see any information on that.
If the connection is off on the start of the application I get STATE_FAILED_FETCHING_URL in onDownloadStateChanged. And it cannot fetch the URL even after I switch the connection back.
Hi Ankit Thakkar,
ReplyDeleteI am able to implement the expansion files now. Thanks a lot for the good explanation.
But i have one small doubt. Will this app which has expansion files concept implemented is licensed app? I mean to say will it check for License always or do we need to implement it separately?
Hello Chittee,
DeleteThis Library will check for License always so we don't need to implement it separately.
Hi Ankit Thakkar,
DeleteThat is great. Thanks a lot for the support and clarifications in implementing expansion files in my project.
Hi Chittee,
DeleteHow did you reference the media inside your expansion file?
I am try to play video, can you please help me :)
Thanks!
Hi Joshy Sav,
DeleteHere is the code what i have implemented to reference the video files in the expansion files.
Note: images is the folder name inside the zip under which i have all the video files.
Below given is the method used in the class in which i want to refer the expansion fie. It should not in the oncreate method.
public ZipResourceFile getExpansionFile() {
String fileName = Helpers.getExpansionAPKFileName(this, true, 2);
int filesize = 65966673;
if (Helpers.doesFileExist(this, fileName, filesize, false)) {
try {
return APKExpansionSupport.getAPKExpansionZipFile(
getBaseContext(), 2, 0);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null; }
After getting the reference of video file using above method, i have played the video in another class using intent.
here is the code:
Intent intent = new Intent(getApplicationContext(), VideoDisplay.class);
String videoname = "null";
videoname = "images/a1.mp4";
intent.putExtra("image",videoname);
on the other end of the intent( the class in which the video is getting played).
code is:
Intent i = getIntent();
Bundle bd = i.getExtras();
String videopath = bd.getString("image");
mVideoView.setVideoURI(Uri.parse(CONTENT_URI + "/" +videopath));
mVideoView.setMediaController(new MediaController(this)); mVideoView.requestFocus();
mVideoView.start();
Hope it is clear.
Hello
DeleteI am facing same issue like you. i have create one app using PhoneGap Android
and i am plying video in that app and all the videos are in src/raw folder.
so my app size is around 150 mb so please guide me
what to do.
actully java is new for me.
Please Help me....
Thanks in advance
HI..
ReplyDeletei have problem for my OBB files..
i install *Iron Man 3* Game App with OBB files.. and then i install another Game App with OBB files.. my two games are remove.. the game is missing.. when i remove the OBB files for other game.. only 1 game are running then the rest are not.. please need some help..
question.. how can i install 2 obb file for each games??..
kolokoyjas@gmail.com send me.. please thanks..
Hello!
ReplyDeleteTrying to split an apk with augmented reality via vuforia plugin, but keep getting this error:
java.lang.Error: FATAL EXCEPTION [GLThread 11]
Unity version : 4.1.5f1
Device model : samsung GT-I9001
Device fingerprint: samsung/GT-I9001/GT-I9001:2.3.4/GINGERBREAD/XXKP4:user/release-keys
Caused by: java.lang.Error: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000000c
Build fingerprint: 'samsung/GT-I9001/GT-I9001:2.3.4/GINGERBREAD/XXKP4:user/release-keys'
Revision: '0'
pid: 29203, tid: 29212, name: UnityMain >>> com.OutsideReality.NuclearPlantAR <<<
r0 00000007 r1 00000001 r2 00000000 r3 00000000
r4 00000000 r5 40568b58 r6 002b3718 r7 4055dde8
r8 47f52bc8 r9 47f53684 sl 47f5366c fp 47f52be8
ip aca94d3c sp 47f52ba0 lr aca42d45 pc aca42d44 cpsr 0000000b
at libdvm.00042d44(Native Method)
at libunity.003fdf18(Native Method)
at Unknown.000053f4(Unknown Source)
at AndroidJNI.SetStaticStringField(Unknown Source)
at AndroidJavaObject._SetStatic(<0x00378>:888)
at AndroidJavaObject.SetStatic(<0x0003b>:59)
at GooglePlayDownloader..cctor(<0x00097>:151)
at Object.runtime_invoke_void(Unknown Source)
at DownloadObbExample.OnGUI(Unknown Source)
at DownloadObbExample.OnGUI(<0x00018>:24)
at Object.runtime_invoke_void__this__(Unknown Source)
at libmono.00023823(Native Method)
at libmono.mono_runtime_invoke(mono_runtime_invoke:144)
at libmono.mono_runtime_invoke(mono_runtime_invoke:56)
at libunity.002d484c(Native Method)
at libunity.002c7eb4(Native Method)
at libunity.0022e110(Native Method)
at libunity.0023cb8c(Native Method)
at libunity.0023d7c8(Native Method)
at libunity.002a547c(Native Method)
at libunity.002a5dec(Native Method)
at libunity.003b1c38(Native Method)
at libunity.003b1cd8(Native Method)
at libdvm.00011db4(Native Method)
What could it be?
I'm struggling for days, but I have no idea what I'm doing wrong or what I did forget.
ReplyDeleteI have downloaded the sampledownloaderactivity. Downloading the obb succeed.
Then I want to download my own obb.
I have uploaded a signed apk with an obb. No problem so far.
- Then I changed the public key in the sample to the key of the apk
- I changed the size of the obb and I change the package name.
But the download failed. I have no idea what I did wrong or what I forget. I see that the sample has the right xapkfile what he wants to download.
I hope someone has an idea.
I am getting the issue.
ReplyDeletedownload failed because resources could not be found.when download the apk from google play.
I follow the following steps:-
-Create a zip file as expansion file
-Upload the apk in alpha test mode in google play
-add expansion file with apk
Thanks in advance!!
Jagdish
I have the same problem with Google Play : "download failed because resources could not be found"
ReplyDeletecan you send me the source codeof the example ?
ReplyDeletecan you know me about how to create .obb file?
ReplyDeleteHi Ankit,
ReplyDeleteI saw your post.It is very nice.But i am little bit confused about expansion files.My app size is 56 MB play store not accepting that much of size so i want to implement expansion files for my app.Can u please help me.Thanks a lot in advance....
Hi can you please send me the source code of the example ? and how to add expansion file with apk?
ReplyDeleteCan you send source code of example ? please..my email id is raghuramidi@gmail.com
ReplyDeletei need to remove a few obb files from the /android/obb folder as well as a copy of that obb off the SDcard, the files are write protected preventing me from deleting them, can you help me remove those files to reclaim the 400mb they are taking up?
ReplyDeleteHi Ankit
ReplyDeletei have made 2 projects using expension files,i need to know whether it is necessary to keep byte[] salt unique or same for 2 projects??
Hi Ankit,
ReplyDeleteIf you have face the following problem , please suggest
http://stackoverflow.com/questions/19835580/expansion-file-download-sample-not-showing-full-progress
Dear Ankit, will you please upload the code/pckage for this project
ReplyDeleteThank you very much. really very helpful tutorial.
ReplyDeleteApp Development Manchester & Smartphone App developrs
Hi I'm having so much trouble with this I have set everything up abut the Helper.doesFileExist method keeps returning false. Even when I manually add the file to the Android/obb folder.
ReplyDeleteHi Anit
ReplyDeleteIs the code in your example enough to get this working or down we need to add more code from the sdk sample?
Hi Ankit,
ReplyDeleteIt is a nice post, It's clear my funda.
We need more code dear. Please share with us.
ReplyDeleteDeveloppement licensing & Qu’est ce que le licensing?
Yes give us full code. So we do it as you post.
ReplyDeleteLizenzagentur & Lizenzprodukt(e)
I like your post. It's very informative Territori sotto licenza & Agenzia di marchi sportivi
ReplyDeleteHi Ankit,
ReplyDeleteThis post was very nice.But i am little bit confused about expansion files.My app size is more than 50 MB so play store was not accepting that much of size so i want to implement expansion files for my app.Can u please help me.Thanks a lot..........
Hi Ankit,
ReplyDeleteI need help please. I am using Android Studio and I have made sure that libraries you mentioned are installed on Android SDK Manager. However, Android Studio cannot recognize DownloderService class
Gradle: error: cannot find symbol class DownloaderService
Also, DownloaderClientMarshaller
Gradle: error: cannot find symbol variable DownloaderClientMarshaller
Thank you in advance
Q: apparently in the past few days (?) something may have changed on the google-play side of things... as we've been unable to download content from an expansion APK for an app that is in "draft beta" status... seems that it must be in "published beta" status now in order for it's expansion-APK to be accessible from the app.
ReplyDeleteNote in order to be able to toggle the app to "published beta", one must simply complete (or put placeholders in) for all of the required "meta-data" fields (e.g. images under the "Store Listing" and the legal checkboxes "Pricing & Distribution" sections).
Anyways, curious if anyone else has run into this "change"... and hope this is helpful... :) cheers, --dk
Its simply superb.Feeling good to share the link to practice android interview questions @ http://skillgun.com
ReplyDeletenice extension files on android version.. thanks for sharng..
ReplyDeleteTop Android Apps|apk free apps
Thanks for nice tutorial
ReplyDeleteI need complete example please send me zip file on
kaushik.patel1991@gmail.com
thanks
vtu results
Deletevtu info
best whatsapp status
epass
epass karnataka
epass ap
epass telangana
epass scholarship
ap epass
I like your post. It's very informative here you can find more tutorial about apk expansion
ReplyDeletevisit here for smartphone details click here
I like your post. It's very informative here you can find more tutorial about this article
ReplyDeleteyour expansion and presentation is very nice i like the post thank you for sharing the blog..
ReplyDeleteFCA authorization
i like your article .its so informative.
ReplyDeleteMobile Phone Specifications
I like the helpful information you provide in your articles. I will bookmark your blog site and check again here regularly for best paid & latest Apps/Games
ReplyDeleteAndroid Market Apk I'm quite certain & learn lots of new stuff right here!Best of luck for the next post. Thank u very much.....
Android Apps Developer
Hi Ankit, I need a help on this, Please mail me once u free.
ReplyDelete
ReplyDeletefinally i got the exact information about the free video downloader for androidyou also try it
I find a professional yet easy to play mp4 on android
ReplyDeleteathttp://www.avdshare.com/play-mp4-on-android
ReplyDeleteMy cousin recommended this blog and she was totally right keep up the fantastic work!
Google App Integration Chennai
Nice tutorial.
ReplyDeleteCan u send me complete example
It is really informative..Pls visit us:web-based-erp-development-india
ReplyDeleteThanks for sharing this Information, Got to learn new things from your Blog on Android.The freeware version of Web app that comes with monitoring status of server and worldwide locations.
ReplyDeletehttps://play.google.com/store/apps/details?id=com.webapps.webapps.
For example, suppose my APK version 1 and my name is com.mypackage.app package. If I upload a key file extension, the file extension is renamed:
ReplyDeletemain.1.com.mypackage.app.obb
I upload the app on google play, then I update the app, APK version will be 2, so I can reuse old .obb file or need to modify the file extension main.2.com.mypackage .app.obb
Hi sir, i would just like to ask if you happen to have a video tutorial about this post. I have searched all over the net about this topic i am new to android and the things i have seen so far about expansion files are so confusing i don't even know where to start which i think a video demo would be a great help for me. Thanks
ReplyDeleteThanks for this post is very informative and interesting.all the points are very useful. Simple but very effective writing. Thanks for sharing such a nice post.
ReplyDeleteGoogle App Integration Chennai
Good information.
ReplyDeleteAndroid Training in Chennai
Best Android Training
Máy lạnh Reetech
ReplyDeleteMáy lạnh Samsung
Máy lạnh Aikibi
Máy lạnh Nagakawa
Máy lạnh Midea
Máy lạnh Mitsubishi Electric
Máy lạnh Mitsubishi Heavy
Máy lạnh Sumikura
Máy lạnh Sanyo
Máy lạnh Funiki
Máy lạnh Sharp
Máy lạnh Hitachi
Máy lạnh Ascent
Máy lạnh Kendo
Nice Blog! Your blog has always been a good source for me to get quality knowledge in Android. Thanks once again. Sharing some additional knowledge on APK expansion
ReplyDeleteThese technical details had been of great help. Thanks for sharing!!Keep updating new posts on your blog!!
ReplyDeleteSEO Services in Bangalore | Website Design Company in Bangalore
interesting blog. It would be great if you can provide more details about it. Thanks you
ReplyDeleteGoogle App Integration Chennai
ReplyDeleteReport Bugs Topic tells about the bug reports of this blogs....
Mobile Application Development and Testing Training
I love it. I hope that more and more Blogger will use this feature in the future, because it just makes the internet better I think!
ReplyDeleteVoot Apk For Andoird
Bigg Boss 10 Full Episode
Google Play Store For LYF
Jioplay APK For Android
Your post, regarding Android Development is very effective for learners. I have got some important suggestions from it.I'm working in Brave Technologies Private Limited.
ReplyDeleteشركة تسليك مجاري المطبخ بالرياض
ReplyDeleteشركة تسليك مجاري بالرياض
شركة تسليك مجارى الحمام بالرياض
level تسليك المجاري بالرياض
افضل شركة تنظيف بالرياض
تنظيف شقق بالرياض
شركة تنظيف منازل بالرياض
شركة غسيل خزنات بالرياض
افضل شركة مكافحة حشرات بالرياض
رش مبيدات بالرياض
شركة تخزين عفش بالرياض
شركة تنظيف مجالس بالرياض
تنظيف فلل بالرياض
ابى شركة تنظيف بالرياض
Your blog keeps getting better and better! Your older articles are not as good as newer ones you have a lot more creativity and originality now keep it up!
ReplyDeleteTerritori sotto licenza
Thanks for sharing INformation
ReplyDelete
ReplyDeleteThank you for sharing such a informative information with us. Keep on sharing the blog like this.
PhD Thesis Writing Services
Dissertation Writing Services
Research Paper Writing Services
Master Thesis Writing Services
Great article. nice information as you are shared. its really helpful for learning andriod.
ReplyDeletegrameenphone internet Offer
ReplyDeletevery specific nice content. This article is very much helpful and i hope this will be an useful information for the needed one.Keep on updating these kinds of informative things...
ReplyDeleteMobile App Development Company
Android app Development Company
ios app development Company
Mobile App Development Companies
Given so much info in it, These type of articles keeps the users interest in the website, and keep on sharing more ... good luck.
ReplyDeleteAndroid Training in chennai | Best Android Training in chennai|Android Training in chennai with placement | Android Training
"Excellent .. Amazing .. I will bookmark your blog and take the feeds additionally? I’m satisfied to find so many helpful information here within the put up, we want work out extra strategies in this regard, thanks for sharing.."!!
ReplyDeleteandroid apps development service
I wanted to thank you for this great read!! I definitely enjoying every little bit of it Smile I have you bookmarked to check out new stuff you post.
ReplyDeleteTerritori sotto licenza Territori sotto licenza
Wow, this is quite informative and I would like to congratulate the author for the good work he or she has demonstrated. It is always rare to find a comprehensively written blog such as this in addition to having a simple design that allows the online users to read the article without disruptions from pop-pups and add-ons. I found this site to be very informative and I will be recommending it to clients accessing our writing service with requests such as “Eliminate Errors from my Conceptual Framework”
ReplyDeleteThese ways are very simple and very much useful, as a beginner level these helped me a lot thanks fore sharing these kinds of useful and knowledgeable information.
ReplyDeleteMobile App Development Company
Mobile App Development Company
Mobile app Development Companies
Wonderful, what a web site it is! This blog provides helpful facts to us, keep it up.
ReplyDeleteWeb Development Company in coimbatore
Opencart Development
Custom software application development services
Internet product development company
Software development company in coimbatore
Mobile app development company in coimbatore
Ecommerce development company
Erp software development services
In this content information is really great. We shared this knowledge really excellent. As a Beginner in this android programming, your post really helps and with my friend also.
ReplyDeleteAndroid Training in Chennai
Selenium Training in Chennai
Selenium Training Institute in Chennai
Best Android Training Institute in Chennai
Hadoop Training in Chennai with Placement
Android has established one of the best IDEs and it assisting the developers get all they can to support them in development. Learning about the Android extensions gives the developers an easy time in software development. Therefore, I find this blog to be very useful for the Android developers. Order professional SEO Article Writing Services and be enabled to have your programming/technology articles reach many readers.
ReplyDeleteThis article is very much helpful and i hope this will be an useful information for the needed one. Keep on updating these kinds of informative things...
ReplyDeleteAndroid App Development Company
Free easy & simple way to learn java online and much more.. go to =>> http://foundjava.blogspot.in
ReplyDeletegta san andreas apk is a new game
ReplyDeletecricasia is asian live cricket site
ReplyDeletePretty article! I found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing..
ReplyDeleteios App Development Company
Mobile App Development Company
Best Mobile App Development Company
PRetty Cool Article.
ReplyDeleteHy author, I am founder of happy new year 2018 happy new year 2018 Quotes happy new year 2018 wishes happy new year 2018 coverphotos happy new year 2018 wallpapers happy new year 2018 images happy new year 2018 poems happy new year 2018 Sayings happy new year 2018 inspirational quotes happy new year 2018 cartoon images
I like your article THANKS FOR SHARING
I have read your blog is great data about APK Expansion Files in Android. We give Android live project training in Ahmedabad with lab facility provided Learn android classes in Ahmedabad
ReplyDelete"Great blog created by you. I read your blog, its best and useful information. You have done a great work. Super blogging and keep it up.php jobs in hyderabad.
ReplyDelete"
thanks for the useful post
ReplyDeleteWebdesign Lüdenscheid
Tap the Settings adapt in your Gmail toolbar.
ReplyDeleteSelect Settings from the menu that will have showed up.
Go to General.
gmail signature feature
gmail image signature
gmail text signature
Your website content nice nice and interesting to observe.
ReplyDeleteoffice 2013 professional plus key deutsch
ReplyDeleteHappy new year 2018 Wallpapers
great poost.
ReplyDeletehappy new year images
happy new year pics
happy new year gifs free
new year photos
Black Friday WP Theme Deals
ReplyDeleteAmazon Black Friday Shoes Deals
Amazon Black Friday Beauty Product Deals
Amazon Black Friday Headphone Deals
Amazon Black Friday TV Deals
Amazon Black Friday Video Games Deals
Amazon Black Friday Movie DVD Deals
Amazon Black Friday Books Deals
Merry Christmas 2017 Greetings
Merry Christmas 2017 top Wallpapers
Merry Christmas 2017 Wallpapers
ReplyDeleteMerry Christmas 2017 Poems
Merry Christmas 2017 Animated Pictures
great lakes student loans
mysybwaycard
govt jobs 2017
usps jobs
Post Office Recruitment
mygiftcardsite
Informative and impressive. Keep Updating
ReplyDeletessd festplatte
https://ankitthakkar90.blogspot.in/2013/01/apk-expansion-files-in-android-with.html?showComment=1477656620101#c4196391134428117400
ReplyDeleteI really really appreciate this article Thanks For Sharing People also like this WifiKill for Windows, Mac, Android & iPhone Awesome post
ReplyDeleteInteresting post! This is really helpful for me. I like it! Thanks for sharing!
ReplyDeleteWordPress Ludenscheid
nice article.
ReplyDeletenew pics 2018
free hd wallpapers
2018 quotes sms
gif for gifts
Nice blog..! I really loved reading through this article. Thanks for sharing such
ReplyDeletea amazing post with us and keep blogging...
core java internships in kukatpally
core java internships in amerpet
core java internships in gachibowli
Thanks for sharing this important information which give some tips about on this topic.
ReplyDeleteweb application development | social media marketing service
Your website content nice nice and interesting to observe.
ReplyDeletepersonalrekrutierung
Excellent tips. Really useful stuff .Never had an idea about this, will look for more of such informative posts from your side... Good job...Keep it up
ReplyDeleteandroid app development uk | ios app development london
nice post.
ReplyDelete2018 easter
This comment has been removed by the author.
ReplyDeleteAwesome,
ReplyDeleteThank you so much for sharing such an awesome blog...
Mobile app training institutes
iphone training classes
epf balance status
ReplyDeleteepf balance status
epf balance status
epf balance status
epf balance status
epf balance status
epf balance status
kerala lottery results
kerala lottery results
kerala lottery results
really good
ReplyDeletejobbörse südwestfalen
Thanks for posting the useful information to my vision. This is excellent information,.
ReplyDeleteiphone app training course
best of best i have ever scene best site amazing blog best i have ever scene admin doIng amazing work hats off woow
ReplyDeletenew Kingroot Apk Download
ReplyDeletebest of best i have ever scene best site amazing blog best i have ever scene admin doIng amazing work hats off woow
ReplyDeletewooow amazing blog
nformative and impressive.
ReplyDeletejobbörse südwestfalen
Get the Epass Complete Information Here
ReplyDeleteepass
Get Epass Status
ReplyDeleteap epass andhrapradesh
Epass Karnataka
This comment has been removed by the author.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteGet Epass Status
ReplyDeleteap epass andhrapradesh
Epass Telangana
Epass Karnataka
Get Epass Status
ReplyDeleteap epass andhrapradesh
Epass Telangana
Epass Karnataka
ReplyDeleteThis is really amazing article. Here we bookmarked this article for reading in future. thanks for sharing this article with us.
macys insite
macys insite login
mcdvoice
Nice Sharing! I like it.... Here Get the Happy Fathers Day Details : Happy Fathers Day 2018
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteAwesome article. It is so detailed and well formatted that i enjoyed reading it as well as get some new information too.salesforce training in hyderabad
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteNice Post
ReplyDeleteThanks For Sharing
Check out Research paper.Phd thesis Writing Services
http://www.phdassistance.com/services/phd-dissertation/
Aio downloader
ReplyDeleteaio Downloader
aio downloader apk
aio downloader for ios
aio downloader ios
apk downloader for ios
apk downloader for android
all in one downloader
download aio downloader
AIO DOWNLOADER FOR PC
ReplyDeleteMobile Application Development Services UK
Thank you for sharing valuable information
ReplyDeleteMobile app development company in chennai
web design company in chennai
web development company in chennai
Celebrity Goa Escorts Provided
ReplyDeleteGoa Escorts
Thanks for sharing this useful information and its definitely going to help out people who are looking to develop their own android application.
ReplyDeleteecommerce website development in chennai
ecommerce development chennai
I likable the posts and offbeat format you've got here! I’d wish many thanks for sharing your expertise and also the time it took to post!!
ReplyDeleteClick here:
angularjs training in btm
Click here:
angularjs training in rajajinagar
Awesome article. It is so detailed and well formatted that i enjoyed reading it as well as get some new information too.
ReplyDeleteBlueprism training in Chennai
Blueprism training in Bangalore
Blueprism training in Pune
Nice blog
ReplyDeleteweb design company in chennai
web designing company in chennai
seo company in chennai
Nice blog and too informative
ReplyDeleteReturn gifts in Chennai
navratri gift items chennai
Whatever we gathered information from the blogs, we should implement that in practically then only we can understand that exact thing clearly, but it’s no need to do it, because you have explained the concepts very well. It was crystal clear, keep sharing..
ReplyDeleteAndroid Mobile apps Development Training in Chennai
android training in bangalore
Android Training in Thirumangalam
Android Training in T nagar
I have been looking for this information over a long period of time and thanks for sharing it with the community.
ReplyDeletelow cost web design services
I really liked your post.. it was very nice to visit your blog, Keep up the good work..
ReplyDeleteDevOps Online Training
This is most informative and also this post most user friendly and super navigation to all posts... Thank you so much for giving this information to me..
ReplyDeletebest rpa training in chennai |
rpa training in chennai |
rpa training in bangalore
rpa training in pune | rpa online training
Quality minutes that you can go through with progressive Call Girls in udaipur escorts are stunning. These delights are notable for serving their one of a kind camaraderie and prepared to offer you their 100% tasteful service. Contract the incredible udaipur escorts and have intercourse with them more than ever. The glow of their body will stimulate your sexy wants and offer your sensual sentiments.
ReplyDeleteudaipur escorts | udaipur escort | udaipur escorts agency | udaipur escorts service | independent udaipur escorts | escorts in udaipur | escorts service in udaipur | udaipur independent escorts | independent escorts in udaipur | udaipur call girls | call girls in udaipur | independent call girls service in udaipur | udaipur female escorts | udaipur model escorts | escorts udaipur | Russian escorts in udaipur | Russian udaipur escorts | Female Escorts in Udaipur | Escorts Agency in Udaipur | Udaipur Call Girl Whatsapp Number | Call Girls Whatsapp Number Udaipur | Udaipur Call Girls Phone Number | Udaipur Airhostess Call Girls Escorts | Udaipur Airhostess Escorts | Udaipur Vip Escorts | Vip Udaipur Escorts | Escorts Service Udaipur | Vip Call Girls Udaipur
Nice tips. Very innovative... Your post shows all your effort and great experience towards your work Your Information is Great if mastered very well.
ReplyDeletejava training in chennai | java training in USA
java training in indira nagar
Well done! Pleasant post! This truly helps me to discover the solutions for my inquiry. Trusting, that you will keep posting articles having heaps of valuable data. You're the best!
ReplyDeleteData Science training in rajaji nagar | Data Science with Python training in chenni
Data Science training in electronic city | Data Science training in USA
Data science training in pune | Data science training in kalyan nagar
cute blog with colourful images, really I appreciate your works. All the articles are very interesting to read Web Developers in Bangalore | Website Developers in Bangalore | Web Designers in Bangalore Bangalore
ReplyDeleteThis is a nice article here with some useful tips for those who are not used-to comment that frequently. Thanks for this helpful information I agree with all points you have given to us. I will follow all of them.
ReplyDeleteangularjs-Training in velachery
angularjs Training in bangalore
angularjs Training in bangalore
angularjs Training in btm
angularjs Training in electronic-city
angularjs online Training
indian lottery tickets online purchase
ReplyDeletepurchase lottery tickets online
indian lottery tickets online purchase
kerala lottery
ReplyDeletekerala lottery
kerala lottery
Excellent post. Thank you for sharing.
ReplyDeleteERP in Chennai
SAP Hana Support in Chennai
SAP Support in India
SAP B1 in India
HR Payroll Software
Leave Management Software
Thanks for your contribution in sharing such a useful information. Waiting for your further updates.
ReplyDeleteBest Spoken English Classes in Coimbatore
Spoken English Course in Coimbatore
Spoken English Coaching in Coimbatore
Spoken English Class in Coimbatore
Spoken English Coimbatore
Best Spoken English Class in Coimbatore
Spoken English Training near me
Thanks for sharing this valuable information.Its more useful to us.its very interesting to know the blog with clear vision.
ReplyDeletebest php training in bangalore
php training center in bangalore
Best Web Development Training Institute in Bangalore
Web Design And Development Courses in Bangalore
Thanks for sharing this post
ReplyDeleteifb washing machine service center in hyderabad
The blog which you have shared is more informative… Thanks for your information.
ReplyDeleteAndroid App Development Course in Chennai
Android Course
Android Classes in Bangalore
Android Coaching Center in Madurai
Goyal packers and movers in Panchkula is highly known for their professional and genuine packing and moving services. We are top leading and certified relocation services providers in Chandigarh deals all over India. To get more information, call us.
ReplyDeletePackers and movers in Chandigarh
Packers and movers in Panchkula
Packers and movers in Mohali
Packers and movers in Panchkula
Packers and movers in Chandigarh
it is great!
ReplyDeletemáy lạnh âm trần
máy lạnh âm trần Daikin giá rẻ
Lower cholesterol naturally
ReplyDeletekerala lotteries result
ReplyDeleteUAN status
Its really an Excellent post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog. Thanks for sharing....
ReplyDeleteDevops Training courses
python Training in chennai
Devops Training in Bangalore
I believe there are many more pleasurable opportunities ahead for individuals that looked at your site.
ReplyDeleteDevops Training courses
python Training in chennai
Devops Training in Bangalore
All the points you described so beautiful. Every time i read your i blog and i am so surprised that how you can write so well.
ReplyDeleteMicrosoft azure training in Bangalore
Power bi training in Chennai
Whoa! I’m enjoying the template/theme of this website. It’s simple, yet effective. A lot of times it’s very hard to get that “perfect balance” between superb usability and visual appeal. I must say you’ve done a very good job with this.
ReplyDeleteAWS TRAINING IN BTM LAYOUT | AWS TRAINING IN BANGALORE
AWS Training in Marathahalli | AWS Training in Bangalore
I really like your blog. You make it interesting to read and entertaining at the same time. I cant wait to read more from you.
ReplyDeletepython Online training in chennai
python training institute in marathahalli
python training institute in btm
Python training course in Chennai
Thanks for splitting your comprehension with us. It’s really useful to me & I hope it helps the people who in need of this vital information.
ReplyDeleteData Science Training in Indira nagar
Data Science training in marathahalli
Data Science Interview questions and answers
Data Science training in btm layout
Data Science Training in BTM Layout
Data science training in bangalore
Nice Blog. It is very interesting and more information.
ReplyDeletewebsite development company in chennai
website designing company in Chennai
Website design company in chennai
web designing company in chennai
web design company in chennai
This is quite educational arrange. It has famous breeding about what I rarity to vouch.
ReplyDeleteColossal proverb. This trumpet is a famous tone to nab to troths. Congratulations on a career well achieved.
This arrange is synchronous s informative impolite festivity to pity. I appreciated what you ok extremely here.
Selenium interview questions and answers
Selenium Online training
Selenium training in Pune
selenium training in USA
selenium training in chennai
I was recommended this web site by means of my cousin.
ReplyDeleteI am now not certain whether this post is written through him as nobody else recognise such precise about my difficulty. You're amazing! Thank you!
selenium training in Chennai
selenium training in Tambaram
selenium training in Velachery
selenium training in Omr
selenium training in Annanagar
After reading this web site I am very satisfied simply because this site is providing comprehensive knowledge for you to audience.
Thank you to the perform as well as discuss anything incredibly important in my opinion. We loose time waiting for your next article writing in addition to I beg one to get back to pay a visit to our website in
I was recommended this web site by means of my cousin.
ReplyDeleteI am now not certain whether this post is written through him as nobody else recognise such precise about my difficulty. You're amazing! Thank you!
selenium training in Chennai
selenium training in Tambaram
selenium training in Velachery
selenium training in Omr
selenium training in Annanagar
After reading this web site I am very satisfied simply because this site is providing comprehensive knowledge for you to audience.
Thank you to the perform as well as discuss anything incredibly important in my opinion. We loose time waiting for your next article writing in addition to I beg one to get back to pay a visit to our website in
I was recommended this web site by means of my cousin.
ReplyDeleteI am now not certain whether this post is written through him as nobody else recognise such precise about my difficulty. You're amazing! Thank you!
selenium training in Chennai
selenium training in Tambaram
selenium training in Velachery
selenium training in Omr
selenium training in Annanagar
After reading this web site I am very satisfied simply because this site is providing comprehensive knowledge for you to audience.
Thank you to the perform as well as discuss anything incredibly important in my opinion. We loose time waiting for your next article writing in addition to I beg one to get back to pay a visit to our website in
Great blog to read thanks for posting
ReplyDeleteBest blue prism training in chennai
I wanted to thank you for this great read!! I definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post.is article.
ReplyDeletePython Online training
python Course institute in Chennai
Python Course institute in Bangalore
This is my 1st visit to your web... But I'm so impressed with your content. Good Job!
ReplyDeletepython training in chennai
Python Online training in usa
python course institute in chennai
C Language coaching in Bhopal
ReplyDeleteNodejs Training in Bhopal
Big Data Training in Bhopal
FullStack Training in Bhopal
AngularJs Training in Bhopal
Cloud Computing Training in Bhopal
Best PHP Training Institute in Bhopal
Graphic designing training in bhopal
I likable the posts and offbeat format you've got here! I’d wish many thanks for sharing your expertise and also the time it took to post!!
ReplyDeleteAIO https://aiodownloaderatoz.blogspot.com
Neutrino+ https://aiodownloaderatoz.blogspot.com/2018/04/neutrino-191-mod.html
TrackView https://aiodownloaderatoz.blogspot.com/2018/03/trackview-pro-248-pro.html
very specific nice content. This article is very much helpful and i hope this will be an useful information for the needed one.Keep on updating these kinds of informative things
ReplyDeleteI likable the posts and offbeat format you've got here! I’d wish many thanks for sharing your expertise and also the time it took to post!!
AIO https://aiodownloaderatoz.blogspot.com
TrackView Pro https://aiodownloaderatoz.blogspot.com/2018/03/trackview-pro-248-pro.html
CamScanner -Phone PDF https://aiodownloaderatoz.blogspot.com/2018/01/camscanner-phone-pdf-creator.html
Neutrino+ https://aiodownloaderatoz.blogspot.com/2018/04/neutrino-191-mod.html
very specific nice content. This article is very much helpful and i hope this will be an useful information for the needed one.Keep on updating these kinds of informative things
ReplyDeleteI likable the posts and offbeat format you've got here! I’d wish many thanks for sharing your expertise and also the time it took to post!!
AIO https://aiodownloaderatoz.blogspot.com
TrackView Pro https://aiodownloaderatoz.blogspot.com/2018/03/trackview-pro-248-pro.html
CamScanner -Phone PDF https://aiodownloaderatoz.blogspot.com/2018/01/camscanner-phone-pdf-creator.html
Neutrino+ https://aiodownloaderatoz.blogspot.com/2018/04/neutrino-191-mod.html
Маш сайн, маш сайн нийтлэл. Баярлалаа
ReplyDeletechó Bull Pháp
bán chó bull pháp
chó bull pháp giá bao nhiêu
mua chó bull pháp
Thanks Great article shared.
ReplyDeleteLogin
Login
Login
Login
Login
Nice information keep sharing with us.
ReplyDeleteweb design company in Chennai
website designing company in Chennai
Excellent and very cool idea and the subject at the top of magnificence and I am happy to this post..Interesting post! Thanks for writing it. What's wrong with this kind of post exactly? It follows your previous guideline for post length as well as clarity..
ReplyDeleteMobile App Development Company In Chennai
Android App Development Company In Chennai
Android Application Development Company In Chennai
Mobile App Development Company In India
ReplyDeleteHi My Name is Alisha Petel at I read your all Blog. Your blog is very informative. When you hook up with our high-profile Model you are bound to get maximum erotic pleasure from them. (07045557873)As all of these Model come from a higher class and are well-educated, sensuous and seductive, they take the sensual pleasure of clients to unimagined heights. Dating this class of escorts will not only arouse your passion and rejuvenate your senses but will let you feel exhilarated and ecstasy.http://puneindependentescorts.com/ You and your partner will be enjoying the same feelings and emotions. Remember that lovemaking is not only confined to a single partner. Instead, it is confined to both of you. There is nothing to be doubtful about the quality of these escorts since they are very attractive and keep your senses gratified when you hire any of these escorts and spend some quality time with her. For more details please visit here.Thank You for Sharing Blog.
Pune escorts
Bangalore Escorts
Mumbai Escorts
While having a company with an Alisha you should also adopt a good attitude. You too should be generous in your attitude. Consider her as your true friend not merely as sexual partner. Share your innermost feelings with her and do not waste much time in having a gossip with her.
Sex Services In Mumbai
Koregaon Park Escorts
Escorts Girls In Mumbai
For more details please visit here.Thank You for Sharing Blog.
We will lead you to the best of Bangalore escorts and if you are looking for the girls, we would like to say, that a browse into our website should be enough.
ReplyDeleteBangalore Escorts
Independent Escorts in Bangalore
Escorts Service in Bangalore
Escorts in Bangalore
Call Girls in Bangalore
ReplyDeleteHi My Name is Alisha Petel at I read your all Blog. Your blog is very informative. When you hook up with our high-profile Model you are bound to get maximum erotic pleasure from them. (07045557873)As all of these Model come from a higher class and are well-educated, sensuous and seductive, they take the sensual pleasure of clients to unimagined heights. Dating this class of escorts will not only arouse your passion and rejuvenate your senses but will let you feel exhilarated and ecstasy. http://escortsgirlinmumbai.com/ You and your partner will be enjoying the same feelings and emotions. Remember that lovemaking is not only confined to a single partner. Instead, it is confined to both of you. There is nothing to be doubtful about the quality of these escorts since they are very attractive and keep your senses gratified when you hire any of these escorts and spend some quality time with her. For more details please visit here.Thank You for Sharing Blog.
Pune escorts
Bangalore Escorts
Mumbai Escorts
While having a company with an Alisha you should also adopt a good attitude. You too should be generous in your attitude. Consider her as your true friend not merely as sexual partner. Share your innermost feelings with her and do not waste much time in having a gossip with her.
Sex Services In Mumbai
Mumbai Escorts
Escorts Mumbai
Mumbai escorts services
Andheri Escorts
Independent Mumbai Escorts
High Profile Mumbai Escorts
For more details please visit here.Thank You for Sharing Blog.
Nice topic
ReplyDeletemáy lạnh tủ đứng LG tại TPHCM
máy lạnh tủ đứng Reetch tại Long An
máy lạnh tủ đứng giá rẻ tại Bình dương
máy lạnh tủ đứng Gree tại Đồng nai
may lanh tu dung midea 3hp tại miền tây
may lanh tu dung panasonic 3hp tại khu vực Đông nam bộ
The Geek Web (TGW) is an online media platform that focuses on delivering fresh technology news to the audience. Our main goal is to talk about different news in the technology field.
ReplyDeletespotify mod apk
Nice information. Thank you for sharing.
ReplyDeletemoviebox for mac
Keşke her zaman mutlu ve şanslı olsan. Umarım daha iyi makaleleriniz vardır.
ReplyDeletegiảo cổ lam giảm cân
giảo cổ lam giảm béo
giảo cổ lam giá bao nhiêu
giảo cổ lam ở đâu tốt nhất
Nice work.
ReplyDeletemoviebox for pc
moviebox for pc windows
Nice post.
ReplyDeletemoviebox apk
moviebox for pc windows
Nice post. Thank you for sharing.
ReplyDeletemoviebox ipa
moviebox
Thanks for sharing this post.
ReplyDeleteWant to make your own website!!!
Contact ACIL the best web design company in Delhi.
WEB DESIGN COMPANY IN DELHI
Interested in Graphic Designing Course!!!
Contact ACIL for the best Graphic designing Institute in Gurgaon.
GRAPHIC DESIGNING INSTITUTE IN GURGAON
Interested in Python training!!!
Contact ACIL for the best Python Training Institute in Gurgaon.
PYTHON TRAINING INSTITUTE IN GURGAON