Skip to content

UPrint/CupsClientService

 
 

Repository files navigation

CupsPrintService

This 'libcups' branch uses Android NDK, along with JNA+JNAerator, to interface with libcups (cups.org).
There are bugs, defects, and some missing features, but since it is now able to actually print documents
to a remote CUPS server, it is time to promote it to default branch.

To build this will require Android NDK installed and properly set up in Eclipse. It also requires Linux
(or possibly apple) to run a bash script called by a jni Android.mk for generating JNA shim.

Required external (all open source) libraries, at this time;

Apache commons-validator-1.4.0
  - cupsprint/Util.java: used to validate the structure of URL.
  - this really can be dropped, since URL's are generated by the application itself.

JmDNS jmdns-3.4.1
  - detect/MdnsServices.java: used to detect local network printers via zeroconf/bonjour
  - I think this can be replaced by android.net.nsd (Network Service Discovery).

JNAerator jnaerator-runtime-0.13
JNA jna-4.1.0
  - Used as an interface shim between libcups.so and Android NDK/jni.
  - note that jna-4.1.0.jar needs to be modified manually to work, Android chokes on all of the included
    native libraries, so they need to be deleted from the archive. Note, however, that libjnidispatch.so
    *is* a required library, so I've added it (armeabi build) to the project as a precompiled shared library.
  - The libjnidispatch.so can be built for android/[armeabi|x86], or found prebuilt from
    https://github.com/twall/jna/tree/master/lib/native
  - More details here; https://github.com/twall/jna/blob/master/www/AndroidDevelopmentEnvironment.md

JNAerator jnaerator-0.13
  - jni/cups_shim/. This is not the runtime library, this is the JNAerator program itself, used for generating
    the jni shim to libcups. This is run by jnaerator.sh, which is called by Android.mk

ml.rabidbeaver.cupsjni.jar is generated by JNAerator.

About

Cups for Android Service

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.2%
  • Other 0.8%