Android Jar libraries

How do you setup a project that can result in a jar library file that can be used for android? I want to create a custom library across all projects.

Few other questions:

  • Does it need to be compiled against a specific version of android sdk?
  • When an android package is compiled against a jar library does the classes necessary to work with the code get compiled with main code into the apk or does the entire jar get included?
  • Any notable optimizations or pitfalls I need to know about with using a jar instead of integrating the code directly?
  • Does the jar have to be signed like the apk needs to?

  • Google just release a new version of the SDK that handles Shared Libraries!

    https://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject

    ADT 0.9.7 (May 2010)

    Library projects:
    The ADT Plugin now supports the use of library projects during development, a capability that lets you store shared Android application code and resources in a separate development project. You can then reference the library project from other Android projects and, at build time, the tools compile the shared code and resources as part of the dependent applications. More information about this feature is available in the Developing in Eclipse with ADT document. If you are not developing in Eclipse, SDK Tools r6 provides the equivalent library project support through the Ant build system.


    There is nothing special you need to do to your project setup to create a jar file that will work in an Android app. Just create a normal Java project in Eclipse.

  • It doesn't need to be compiled against Android at all. You can include any jar file as long as it doesn't reference classes that aren't included in Android. Just include your jar file in your build path of your Android projects in Eclipse, and it will automatically be included in your APK file.

  • Not sure but I assume all classes in the jar file get included in the APK.

  • I don't think just including some classes in a jar vs. in the project directly will make any difference in the resulting APK.


  • I asked myselft the same question: can I export and reuse a layout in Android. I tried the following: export a project with XML resources to a JAR file, and then try to access a layout through it's R.layout. Of course it didn't work, as R.layout.main was an integer, the same integer as was associated to the single layout (relative.xml) defined in the host project's R.layout.

    The Android SDK kompiles layout xml files into View resources, and as XML files in the included JAR file are not layout xml files, they are not compiled and no ID is associated to them in R.layout.

    If you want to export a layout from your project, then you should export it as XML, and import it to the new project as a layout resource, not as part of an external library.

    If you want to reuse layouts from a JAR, you have to create a sublcalss of a View, and build the layout from code. Than you can instantiate it and set the created instance as the View of the Activity, or add the instance to the View of your Activity.

    链接地址: http://www.djcxy.com/p/62792.html

    上一篇: 创建一个用于分发的Android Jar库

    下一篇: Android Jar库