Skip to content
marsupilami79 edited this page Mar 7, 2022 · 5 revisions

Welcome to the mdns4Delphi wiki!

Here is just some information for firther development. Nothing interesting really...

Some links that I needed during header translation and first test programs

Windows

Android

Some lessons learned

  • libmdnssd.so and libc++.so cannot be loaded directly in Android because they are not regarded a public API by the android dynamic linker. But they can be copied and used then. liblog.so, which is also a dependency of libmdnssd.so is part of the public API. Google wants us to delivber our own versions of libraris that are not regarded part of the public API. But does that make sense in the case of libmdnssd.so? How do we know that the interface to the demon hasn't changed? Also building the libraries correctly seems to be a PITA. For the stable API thing see: https://developer.android.com/ndk/guides/stable_apis, https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk

Building libmdnssd

Building libmdnssd can be done as a part of an (partial) Android build. I didn't get it to build with the NDK easily. The machine used for this should have about 24GB of memory and 200 GB of free disk space. Basically one has to do the following (according to the google documentaion on building android over at https://source.android.com/setup/start?hl=en

  • Install some basic development packages
  • install the repo tool
  • initilize some version of Android
  • run some form of repo sync
  • run . ./build/envsetup.sh
  • run lunch and select a proper architecture
  • cd external/libmdnsresponder
  • run mm to build the responder including its library and all dependencies. This takes a while...