On 05/11/2017 01:29 AM, Felipe Monteiro de Carvalho wrote:
On Thu, May 11, 2017 at 1:19 AM, Jon Foster
<jon-li...@jfpossibilities.com> wrote:
Yeah. The wiki is cluttered with inaccurate and abandoned information for
Android development. It needs a serious scrubbing. And access to needed
sources is somewhat hidden. I've combed it for a few years, now, to try and
deduce what's real and what's not. I'm not even sure where I got the bits of
source I'm using now. I've just been clinging to it like a shipwreck
survivor clinging to flotsam.
I don't think the wiki page I posted is inaccurate, all the stuff
there is valid AFAIK, but it is simply very incomplete. A lot more
should be written, and also note that there are 2 different ways:
1> Via NDK combining native Pascal + Java
2> Via JVM compiler
The wiki I posted is only for approach 1, even a link to a full
compilable example is posted there (thought it is for OpenGL). I never
used approach 2 and dont plan on using it.
Thanks for the info Felipe. I'll bookmark that page somewhere. I was also
referring to the many other Android pages on the wiki that are misleading.
Its hard for us outsiders to know what's authoritative and current.
I would like to hazard there is, yet, another way:
3> #1 w/o Java - pure native.
However that would never be entirely accurate as all "native activities"
have to be chaperoned by a Java "Activity". And JNI will have to be used to
interface to any Android supplied services as everything else is stuck in
Dalvik land. All part of what makes Android so inefficient. But my intent
is not to have to do Java once an FPC based activity is launched. Might
have to build a better "NativeActivity" class with ppcjvm too... I think
that's something Lazarus did/does.
I should also throw out here that it would be *REALLY* nice, and even
somewhat needful on the Android front, if FPC could interface directly with
C++ libs and use their classes and objects. Besides Java, Google prefers to
use C++ (for obvious reasons) and their supplied native code libraries are
C++. If you look at Google's software architecture diagram they say they
use FreeType2. But, even rooted, if you search the Android file system you
won't find a FT2 lib anywhere. Digging through the AOSP source base it
turns out that FT2 is statically linked into Skia. Skia is a C++ library
used by Dalvik (and other places) to do the usual 2D text/graphics
rendering. This acts much like AggPas, used by Graeme's AggCanvas. I did
find it exports a limited set FT2 functions in standard C style. But it
looks like, for full functionality, I'm going to have to bridge the C++ divide.
Anyhow tips on the FPC->C++ front would be appreciated. I will probably
search the list archives as I know this topic comes up repeatedly. I don't
understand how ginormous an undertaking this might be but maybe I can
contribute something on this front.
--
Sent from my Debian Linux workstation -- http://www.debian.org/intro/about
Jon Foster
JF Possibilities, Inc.
j...@jfpossibilities.com
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal