Monday, November 8, 2010

Offline installation of Anrdoid SDK (Platforms and addons)

I installed Android SDK the other day to explore the apps platform for 2.1 (now that I have an Android phone!)…

Things you need:

A. SDK Starter package which just needs to be unzipped into a location (no installation as such):
PlatformPackageSizeMD5 Checksum
Windowsandroid-sdk_r07-windows.zip23669664 bytes69c40c2d2e408b623156934f9ae574f0
Mac OS X (intel)android-sdk_r07-mac_x86.zip19229546 bytes0f330ed3ebb36786faf6dc72b8acf819
Linux (i386)android-sdk_r07-linux_x86.tgz17114517 bytese10c75da3d1aa147ddd4a5c58bfc3646


B. Platform package which is one or more of the various android versions for which you will be coding. Eg: 2.2, 2.1, 1.6, 1.5, etc.

This has to be selected and downloaded from within the Android SDK.


But Google was forcing me to download the platform package only through the SDK. Why can’t I have a set of zips I can reuse on my laptop, desltop1, desktop2 as needed instead of having to download the Android platform repeatedly from the net for each machine?


The answer was simple after a little investigation but apparently undocumented. See below steps for full offline installation:

1) First you need to download repository.xml file. To find out the download link for this file, launch Android AVD Manager (after unzipping the sdk, manually from %AndroidSDKDir%\tools\Android.bat or from the Eclipse plugin). Here, when you select available Packages, you will see the default target: http://dl.google.com/android/repository/repository.xml (maybe slightly different for you). Download this respository.xml file from the net (and close the AVD manager).

2) Open the repository.xml file and search for <sdk:platform>. You will see around 5 entries for each Android platform/version.

Identify the version you want and look for the platform filename inside the <sdk:url> tag. In my case, I wanted the 2.1 platform:

<sdk:platform>
<sdk:version>2.1</sdk:version>
<sdk:api-level>7</sdk:api-level>
<sdk:codename/>
<sdk:revision>02</sdk:revision>
<sdk:min-tools-rev>6</sdk:min-tools-rev>
<sdk:description>Android SDK Platform 2.1_r2</sdk:description>
<sdk:desc-url>http://developer.android.com/sdk/</sdk:desc-url>
<sdk:archives>
<sdk:archive os="linux" arch="any">
<sdk:size>72356359</sdk:size>
<sdk:checksum type="sha1">a89d32ddf9d8629f15e682bdf220a88ca2392349</sdk:checksum>
<sdk:url>android-2.1_r02-linux.zip</sdk:url>
</sdk:archive>
<sdk:archive os="macosx" arch="any">
<sdk:size>71054909</sdk:size>
<sdk:checksum type="sha1">8492e2f0b61819c4ca2e16601fc3260b341a3f06</sdk:checksum>
<sdk:url>android-2.1_r02-macosx.zip</sdk:url>
</sdk:archive>
<sdk:archive os="windows" arch="any">
<sdk:size>72950641</sdk:size>
<sdk:checksum type="sha1">00cfb0bbbf24fc56c493990186deb0bfd44630e5</sdk:checksum>
<sdk:url>android-2.1_r02-windows.zip</sdk:url>
</sdk:archive>
</sdk:archives>
</sdk:platform>



3) In the url obtained from step 1 (http://dl.google.com/android/repository/repository.xml), replace repository.xml with the identified filename to get the actual url of the platform file. So in this example, the url would be: http://dl.google.com/android/repository/android-2.1_r02-windows.zip

Download this file (by typing into your browser url for eg).

4) Once the file is downloaded, extract this file into the <Androidsdk>\platforms directory. So you would end up with a new directory here as %AndroidSDKDir%\platforms\android-2.1_r02-windows.

That’s it!

If you now open the AVD manager again and click on Installed Packages, the extracted platform will show up as “SDK Platform Android a.b-update c, API d, revision e”


Use similar steps to download any Addons like Google APIs, but extract the Add-ons into %AndroidSDKDir%\add-ons directory. Just make sure that before you install the Addons, you have the corresponding platform already unzipped into the platforms directory.


To summarise, now I don’t need a net connection when to install the full android SDK – I just have to keep the following files handy:

· android-sdk_r07-windows.zip (unzip into a location where you want to install Android SDK, %AndroidSDKDir%)

· android-2.1_r02-windows.zip (unzip into %AndroidSDKDir%\platforms)

· google_apis-7_r01.zip (unzip into %AndroidSDKDir%\add-ons)

· ADT-0.9.9.zip (optional but useful Eclipse plugin – see here how to install this offline into Eclipse)



Happy droiding!

13 comments:

  1. helpful post. but i used this method to download the compatibility zip file, and samples and documentation. which directory will i put them in.

    ReplyDelete
  2. helped a lot to install android sdk from the proxy of my college..thanks..

    ReplyDelete
  3. i came back for a second time, and it was for the DIRECTORY in which to unzip stuff.

    "To summarise, now I don’t need a net connection when to install the full android SDK – I just have to keep the following files handy:

    · android-sdk_r07-windows.zip (unzip into a location where you want to install Android SDK, %AndroidSDKDir%)

    · android-2.1_r02-windows.zip (unzip into %AndroidSDKDir%\platforms)

    · google_apis-7_r01.zip (unzip into %AndroidSDKDir%\add-ons)

    · ADT-0.9.9.zip (optional but useful Eclipse plugin – see here how to install this offline into Eclipse)
    "


    this is especially useful. after i unziped the .zip's into the destinatins, the SDK Manager reported (when i run it) that those packages that i have unziped are 'installed'. which is satisfying.

    ReplyDelete
  4. i would suggest adding

    usb_driver_r04-windows.zip (unzip all files in the same folder as the inf file into %AndroidSDKDir%\extras\google\usb_driver)

    ReplyDelete
  5. Happy to see you all found this useful.

    @Eason Chen
    i guess the usb driver is required while debugging your app on a real phone? I got detracked from further android exploration right after this post.

    ReplyDelete
    Replies
    1. yes, i suppose it is needed. i have debugged on my android tablet, and got a little hello world running fine. but i also suppose that the 'usb-driver' alone is not sufficient. i actually somehow installed the driver when i just rooted my tablet. anyway, this article really helps, and as you can see, i'm back again...

      Delete
  6. oh wait...i found a way more straightforward/universal way of installing (expectedly) any SDK package. the method was mentioned by 'sathya' in the stackoverflow page i mentioned, and i HAVE noticed it, but didn't understand it - now i do!

    put any zip into "%SDK dir%/temp" and run SDK Manager as if to install online. and everything would be dealt with!

    tested with my internet connection disabled! simply neat and gives a peace of mind~

    ReplyDelete
  7. please give me the procedure to get the addon file for the offline installation,I am new in this....

    ReplyDelete
    Replies
    1. check it out
      http://lijnam.blogspot.com/

      Delete
    2. check it out
      http://lijnam.blogspot.com/

      Delete
  8. I read this blog it's really good to see thanks for sharing please share more content on Android Online Course

    ReplyDelete

 
Superblog Directory