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.
3 Answers
Ok, I figured out based on for 4.0.3
Create a new sample device, based on the the existing one located at
<SDK-ROOT>/device/sample
build the sdk-addon
<SDK-ROOT>$ . build/envsetup.sh <SDK-ROOT>$ make -j8 PRODUCT-<your-sdk-addon-name>-sdk_addon
Once the SDK is build you will get the sdk addon archive located at
<SDK-ROOT>/out/host/linux-x86/sdk-addon/<sdkname>.zip
I copied the ZIP to the http server directory, so that it has a link I can refer in Android SDK manager.
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)
Went to Android SDK manager, added path to new add on XML created on #5 and OK
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.
-
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
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 )
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>
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
Open SDK Manager, your will see your SDK add on listed
New a Android Studio project, edit build.gradle file:
android { compileSdkVersion "<your-sdk-addon-vendor-name>:<your-sdk-addon-name>:<sdk-api-level>" ... }
Build the project, your add on jar will be loaded to External Libraries in Android Studio
-
Just for the sake of clarification:
, – David Lev Sep 11 '17 at 07:46and are all defined in the 'manifest.ini' file inside the addon zip package (name, vendor, api).