System and method for reducing the static footprint of mixed-language java™ classes
Abstract
A system and a method for minimizing the functionality-gap between JAVA™ and native platforms while keeping the impact on each JAVA™ API static footprint as small as possible. A JAVA™ Runtime Dynamic Invocation API is used for low-level bridging between JAVA™ and C/C++, enabling the dynamic invocation of native C/C++ functions and C++ class/object methods from the JAVA™ side without adding any additional ad hoc implemented native code to the overall JAVA™ component implementation. Thereby, the need to write new native code when implementing a JAVA™ component that needs to invoke some native functionality is reduced.
Claims
exact text as granted — not AI-modifiedWhat is claimed:
1 . A method comprising:
providing, in an electronic device, a runtime dynamic invocation (RDI) application program interface (API) configured to interact with applications, native APIs, or some combination thereof; and enabling the applications, the native APIs, or some combination thereof to manipulate native language entities at runtime via the RDI API using a plurality of interfaces, without necessitating additional application-specific native code.
2 . The method of claim 1 , wherein the plurality of interfaces each include boilerplate code for manipulation of the native language entities.
3 . The method of claim 1 , wherein the plurality of interfaces include a construction interface, and wherein the construction interface is used by the applications, the native APIs, or some combination thereof to create basic native language entities.
4 . The method of claim 1 , wherein the plurality of interfaces include a destruction interface, and wherein the destruction interface is used by the applications, the native APIs, or some combination thereof to destroy basic native language entities.
5 . The method of claim 1 , wherein the plurality of interfaces include an invocation interface, and wherein the invocation interface is used by the applications, the native APIs, or some combination thereof to invoke native language methods and functions at runtime.
6 . The method of claim 1 , wherein the basic native language entities available for manipulation by the applications, the native APIs, or some combination thereof include objects, primitive data-type variables, structures, and function pointers.
7 . The method of claim 1 , wherein the manipulation of the native language entities includes using the RDI API to at least selectively invoke native APIs exported by a dynamic link library.
8 . The method of claim 1 , wherein the manipulation of the native language entities includes using the RDI API to at least selectively invoke native APIs that have not been exported by a dynamic link library.
9 . The method of claim 8 , wherein unexported native APIs are each wrapped in at least one downcalling wrapper function.
10 . The method of claim 9 , wherein the wrapped, unexported native APIs are included in a dynamic invocation library.
11 . The method of claim 10 , wherein the dynamic invocation library includes an entry point table, wherein the entry point table is usable by the RDI for performing the invocation of an existing native API.
12 . The method of claim 8 , wherein the unexported native APIs include template functions and inlined functions.
13 . The method of claim 1 , wherein a plurality of pointers are used to dynamically represent native entities on a side of the RDI API.
14 . The method of claim 13 , wherein the plurality of pointers include at least one native object pointer, native function pointer, native primitive data-type pointer and native structure pointer.
15 . A computer program product, embodied in a non-transitory computer readable medium, comprising:
computer code for providing a runtime dynamic invocation (RDI) application program interface (API) configured to interact with applications, native APIs, or some combination thereof; and computer code for enabling the applications, the native APIs, or some combination thereof to manipulate native language entities at run-time via the RDI API using a plurality of interfaces, without necessitating additional application-specific native code.
16 . The computer program product of claim 15 , wherein the plurality of interfaces each include boilerplate code for manipulation of the native language entities.
17 . The computer program product of claim 15 , wherein the plurality of interfaces include a construction interface, and wherein the construction interface is used by the applications, the native APIs, or some combination thereof to create basic native language entities.
18 . An apparatus, comprising:
a processor; and a memory unit communicatively connected to the processor, wherein the memory unit comprises a runtime dynamic invocation (RDI) application program interface (API) configured to enable applications, native APIs, or some combination thereof to manipulate native language entities at run-time via the RDI API using a plurality of interfaces, without necessitating additional application-specific native code.
19 . The apparatus of claim 18 , wherein the plurality of interfaces each include boilerplate code for manipulation of the native language entities.
20 . The apparatus of claim 18 , wherein the plurality of interfaces include a construction interface, and wherein the construction interface is used by the applications, the native APIs, or some combination thereof to create basic native language entities.Join the waitlist — get patent alerts
Track US2014282452A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.