hooks. Helps remove redundancy of similar functionality from apps Helps abstracting higher level development away from lower level development Static library -> Built and distributed with the app Dynamic library -> linked from the software
Can be in form of a library or just documentation ABI = Application Binary Interface; for closed source binary function call hooks Some APIs are internationally standardised In procedural languages -> like header files In OOP languages -> like importable classes
software for a particular platform. Usually a set of APIs, building tools and configs, debugging & testing utilities SDK's license can dictate the freeness of the software you develop A non-distributable copy of platform could be part of sdk
.jar libraries are mostly functionality based libraries, where data handling, data manipulation, service/framework integration is handled Generally cannot be used to implement UX/UI features as android resources not present
java code along with android resources and also android manifest stubs Project structure exactly as an Android app **Support only recently added in Android Studio 0.5.0
form of the whole directory structure from where project was built Need to import the whole project into IDE and add it as a module on which your App depends
whether to use only-java library or a full android library Step 2 : Create data-agnostic functions/classes in library. Keep in mind various different apps will use the library Step 3 : Make sure functions to be used by client program are public and everything else private
document the usage of the library. If not for anyone else but for yourself Step 5 : Test properly for all use cases and corner cases Step 6 : Decide distribution methodology (open source, binary etc) Step 7 : Distribute, share documentation, popularise, rejoice !!
party usage The person who will develop a software using your library needs to know how to make best use of your library Even open source libraries must have proper documentation because you should not expect 3rd party to understand your code.
comments in code. Javadoc takes the step further. Write comments in code in javadoc format, then run javadoc on the source, and get autogenerated software-manual like HTML pages