2

Based on PlatformLibrary sample code in the SDK, I have created a small hello world library, the eventual goal of the library is to add capability for 3rd part developers to develop for my custom Android image. I am currently stuck at the point on how to deploy the same so that developers can start using it, I am unable to find any pointers, please help if you have any information.

hack_tick
  • 161
  • 2
  • 10

3 Answers3

6

Ok, I figured out based on for 4.0.3

  1. Create a new sample device, based on the the existing one located at

    <SDK-ROOT>/device/sample
    
  2. build the sdk-addon

    <SDK-ROOT>$ . build/envsetup.sh
    <SDK-ROOT>$ make -j8 PRODUCT-<your-sdk-addon-name>-sdk_addon
    
  3. Once the SDK is build you will get the sdk addon archive located at

    <SDK-ROOT>/out/host/linux-x86/sdk-addon/<sdkname>.zip
    
  4. I copied the ZIP to the http server directory, so that it has a link I can refer in Android SDK manager.

  5. Created new SDK XML configuration file and put it in the http server (I used the one located at http://android-sdk-addons.motodevupdate.com/addons.xml for reference)

  6. Went to Android SDK manager, added path to new add on XML created on #5 and OK

  7. Install the new SDK On listed in the android SDK manager, after the installation is done, you can get check the add-ons directory of ur developer SDK to find the add-on.

Also bits and pieces from marakana.com/s/remixing_android,1044/index.html helped.

stkent
  • 19,772
  • 14
  • 85
  • 111
hack_tick
  • 161
  • 2
  • 10
  • hi hack, thanks for this infoemation , i go thru marakana.com/ ...but here he missed lot information..do u have any other refernece related to create+build sdk add-ons. – CoDe Mar 23 '12 at 12:11
  • What information are you missing? probably you can post a detailed question on SO, most of the stuff is not documented properly or not available easily (difficult to search for) I had to reverse engineer lots of stuff to understand this, http://androidxref.com/ should be your starting point, it helped me a lot. – hack_tick Mar 24 '12 at 10:29
6

Looks like you resolved your own issue, but just FYI - to simplify/automate your step #5 above, you can use the mk_sdk_repo_xml.sh script provided under platform/development/build/tools to build the add-on repository.

This is actually used by the phony 'sdk_repo' target (platform/development/build/tools/sdk_repo.mk), so you can take a look to see what the intended usage is. It has the benefit of managing all the packaging/checksum generation etc for you.

Note that it's supposed to provide some automagic behaviour based on the ADDON_SDK_ZIP which is defined by the sdk_addon build task, but that never worked on our customized gingerbread platform, so I ended up putting in an explicit call like this:

$(shell $(TOPDIR)development/build/tools/mk_sdk_repo_xml.sh \
    $(TOPDIR)out/host/linux-x86/sdk_addon/addon.xml \
    $(TOPDIR)sdk/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/sdk-addon-1.xsd \
    add-on any $(TOPDIR)out/host/linux-x86/sdk_addon/LIBRARY_NAME-eng-linux-x86.zip:sdk-repo-any-addon-LIBRARY_NAME.zip )
stkent
  • 19,772
  • 14
  • 85
  • 111
leet.work
  • 61
  • 1
2

I figured out based on 4.4.2 and Andrdoid Studio 1.4, and it doesn't need put sdk add on xml to web server.

1.Create a new sample device, based on the the existing one located at

<ANDROID-ROOT>/device/<your-sdk-addon-name>

2.build the sdk-addon

<ANDROID-ROOT>$ . build/envsetup.sh
<ANDROID-ROOT>$ make -j8 PRODUCT-<your-sdk-addon-name>-sdk_addon

3.Once the SDK is build you will get the sdk addon archive located at

<ANDROID-ROOT>/out/host/linux-x86/sdk-addon/<sdkname>.zip

4.Extract .zip to

<SDK-ROOT>\add-ons\<your-sdk-addon-name>

5.Copy

<ANDROID-ROOT>\device\<your-sdk-addon-name>\sdk_addon\manifest.ini

to

<SDK-ROOT>\add-ons\<your-sdk-addon-name>
  1. Create new file source.properties to <SDK-ROOT>\add-ons\<your-sdk-addon-name>

    Addon.NameId=your-sdk-addon-name

    Pkg.Desc=Provides the oem APIs to 3rd party apk developer

    Addon.VendorId=your-sdk-addon-vendor-name

    Archive.Arch=ANY

    Addon.NameDisplay=your-sdk-addon-name

    Addon.VendorDisplay=your-sdk-addon-vendor-name

    Archive.Os=ANY

    Pkg.Revision=1

    AndroidVersion.ApiLevel=19

  2. Open SDK Manager, your will see your SDK add on listed

  3. New a Android Studio project, edit build.gradle file:

    android {
    
        compileSdkVersion "<your-sdk-addon-vendor-name>:<your-sdk-addon-name>:<sdk-api-level>"
    
        ...
    }
    
  4. Build the project, your add on jar will be loaded to External Libraries in Android Studio

stkent
  • 19,772
  • 14
  • 85
  • 111
Kiki.J.Hu
  • 204
  • 2
  • 6
  • Just for the sake of clarification: , and are all defined in the 'manifest.ini' file inside the addon zip package (name, vendor, api). – David Lev Sep 11 '17 at 07:46