j***@gmail.com
2017-12-15 17:58:20 UTC
My first venture in Android programming is not terribly simple. I need to
port some mathematical modelling libraries, compiled from C and C++ code,
to Android. The code is thoroughly portable, and runs on many platforms
already but I have no experience with Android. I'm also partially sighted,
which makes it very difficult for me to use IDEs, so I'm planning to do
everything from the Linux command line.
I am not going to be building an app for distribution. The product I work
on is libraries, which are licensed to ISVs, who use them in applications
programs. The libraries will run on-device, and have no web or cloud
interfaces or APIs of any kind. Customers who want to run them in the cloud
already do that, using the Linux or Windows builds. They're fairly
heavyweight code, which needs a fair bit of memory and floating-point for
serious work, so I'm hoping to only build for 64-bit Android, or if a
32-bit build is necessary, to confine it to AArch32. I will have to build
an app to run tests, but this will be an Android wrapper round the existing
test harness.
So I seem to need to build my libraries into .so shared libraries, which is
familiar from Linux. But since I'm not building for one specific app, and
the testing process for these libraries is lengthy, even though it is fully
automated, I'd like to build to be compatible with a range of levels of
Android.
My initial customer is using NDK 14b. I could use that, or I could use the
latest NDK, 16b. If I compile C and C++ code with NDK 16b, the same
compiler (Clang), a compatible instruction set and the same C++ run-time
(libc++) and target API (21) version as my customer, will they be able to
use my shared libraries in their NDK 14b app?
The other way around is also interesting: if I used NDK 14b, and another
customer comes along who uses NDK 16b, will shared libraries I've built
with 14b work in their 16b-built app? I'd be using Clang, targeting an
equal or earlier API to them, and the same instruction set and C++
run-time.
Thanks in advance,
John
port some mathematical modelling libraries, compiled from C and C++ code,
to Android. The code is thoroughly portable, and runs on many platforms
already but I have no experience with Android. I'm also partially sighted,
which makes it very difficult for me to use IDEs, so I'm planning to do
everything from the Linux command line.
I am not going to be building an app for distribution. The product I work
on is libraries, which are licensed to ISVs, who use them in applications
programs. The libraries will run on-device, and have no web or cloud
interfaces or APIs of any kind. Customers who want to run them in the cloud
already do that, using the Linux or Windows builds. They're fairly
heavyweight code, which needs a fair bit of memory and floating-point for
serious work, so I'm hoping to only build for 64-bit Android, or if a
32-bit build is necessary, to confine it to AArch32. I will have to build
an app to run tests, but this will be an Android wrapper round the existing
test harness.
So I seem to need to build my libraries into .so shared libraries, which is
familiar from Linux. But since I'm not building for one specific app, and
the testing process for these libraries is lengthy, even though it is fully
automated, I'd like to build to be compatible with a range of levels of
Android.
My initial customer is using NDK 14b. I could use that, or I could use the
latest NDK, 16b. If I compile C and C++ code with NDK 16b, the same
compiler (Clang), a compatible instruction set and the same C++ run-time
(libc++) and target API (21) version as my customer, will they be able to
use my shared libraries in their NDK 14b app?
The other way around is also interesting: if I used NDK 14b, and another
customer comes along who uses NDK 16b, will shared libraries I've built
with 14b work in their 16b-built app? I'd be using Clang, targeting an
equal or earlier API to them, and the same instruction set and C++
run-time.
Thanks in advance,
John
--
You received this message because you are subscribed to the Google Groups "android-ndk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-ndk+***@googlegroups.com.
To post to this group, send email to android-***@googlegroups.com.
Visit this group at https://groups.google.com/group/android-ndk.
To view this discussion on the web visit https://groups.google.com/d/msgid/android-ndk/d93eae76-10b3-4cd4-947b-c13545f6ff0a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "android-ndk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-ndk+***@googlegroups.com.
To post to this group, send email to android-***@googlegroups.com.
Visit this group at https://groups.google.com/group/android-ndk.
To view this discussion on the web visit https://groups.google.com/d/msgid/android-ndk/d93eae76-10b3-4cd4-947b-c13545f6ff0a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.