On Android, loading a JAR can be accomplished as follows:
String sdPath = Environment.getExternalStorageDirectory() + "/"; String fullPath = sdPath + "nativebridge.jar"; // produced by dx tool File f = new File(fullPath); final String libPath = fullPath; final File tmpDir = getDir("dex", 0); f = new File(libPath); final DexClassLoader classloader = new DexClassLoader(libPath, tmpDir.getAbsolutePath(), null, this.getClass() .getClassLoader()); final Class classToLoad = (Class) classloader.loadClass("cx.ath.journeyman.MyBroadcastReceiver");
where the following is true:
The above allows an Android application to load any class.
Alternatively, use the LoadAPK magic function in the Android2DelphiImport tool.
In 2017, with the release of Delphi 10.2 Tokyo, Embarcadero introduced a specialized implementation of the Observer pattern into the System.Classes unit. While it has been in the wild for 9 years, it remains a "hidden" architecture for many, primarily because it serves as the invisible engine behind LiveBindings. Other than live bindings, you can also use the Observer pattern as a way to update component settings to the Windows registry, an .ini file, or persist it elsewhere.
System.Classes