[fpc-pascal] how to customize so Pandroid would be usable from Lazarus for windows

Mgr. Janusz Chmiel janusz.chmiel at volny.cz
Thu Apr 18 12:32:46 CEST 2019


I have found out that Pandroid bundle is The onlyone project which is 
able to call .so libraryes in JVM mode and is also able to support all 
Android API functions call, I have big plea to you.
I have started to transform this big bundle from Linux mode to Windows.

Project is available here:

https://github.com/zeljkoc/pandroid
What have Iallready done?
1. I have used SDK manager for Windows and I have put necessary 
buildtools and Platform tools and Platform to The corresponding Pandroid 
folder after I have unzipped it to Windows NTFS file system.
I have also started to transform build.sh to Windows batch file.
Which issues AM I facingnow?
1. is it necessary to really use so old FPCJVM compiler, which is The 
part of Pandroid? Or can I use never from DEC 2017?
How to transform The following series of build commands from Linux BASH 
shell style to Windows batch file?
Here are The commands.

echo ppcjvm ---------------------------------------------
$TYPHON/fpc/fpc64/bin/x86_64-linux/ppcjvm 
@$TYPHON/fpcsrc/rtl/android/jvm/rtl.cfg -Ur -Tandroid -Pjvm -Ur -Xs -O2 
-n -Fi$TYPHON/fpcsrc/rtl/inc -Fi$TYPHON/fpcsrc/rtl/jvm 
-Fi$TYPHON/fpcsrc/rtl/java -FE. -Fi$TYPHON/fpcsrc/rtl/android/jvm 
-FUbin/classes -djvm -dRELEASE -Us -Sg $TYPHON/fpcsrc/rtl/java/system.pp
$TYPHON/fpc/fpc64/bin/x86_64-linux/ppcjvm 
@$TYPHON/fpcsrc/rtl/android/jvm/rtl.cfg -Ur -Tandroid -Pjvm -Ur -Xs -O2 
-n -Fi$TYPHON/fpcsrc/rtl/inc -Fi$TYPHON/fpcsrc/rtl/jvm 
-Fi$TYPHON/fpcsrc/rtl/java -FE. -Fi$TYPHON/fpcsrc/rtl/android/jvm 
-FUbin/classes -djvm -dRELEASE $TYPHON/fpcsrc/rtl/inc/uuchar.pp
$TYPHON/fpc/fpc64/bin/x86_64-linux/ppcjvm 
@$TYPHON/fpcsrc/rtl/android/jvm/rtl.cfg -Ur -Tandroid -Pjvm -Ur -Xs -O2 
-n -Fi$TYPHON/fpcsrc/rtl/inc -Fi$TYPHON/fpcsrc/rtl/jvm 
-Fi$TYPHON/fpcsrc/rtl/java -FE. -Fi$TYPHON/fpcsrc/rtl/android/jvm 
-FUbin/classes -djvm -dRELEASE $TYPHON/fpcsrc/rtl/java/objpas.pp
$TYPHON/fpc/fpc64/bin/x86_64-linux/ppcjvm 
@$TYPHON/fpcsrc/rtl/android/jvm/rtl.cfg -Ur -Tandroid -Pjvm -Ur -Xs -O2 
-n -Fi$TYPHON/fpcsrc/rtl/inc -Fi$TYPHON/fpcsrc/rtl/jvm 
-Fi$TYPHON/fpcsrc/rtl/java -FE. -Fi$TYPHON/fpcsrc/rtl/android/jvm 
-Fu$PANDROID/units -FUbin/classes -djvm -dRELEASE $PROJECT/Vibrator.lpr

#$PANDROID/compiler/ppcjvm -n -Tandroid -Fu$PANDROID/units/typhon 
-Fu$PANDROID/units -FEbin/classes $PROJECT/Vibrator.lpr


I have modified The builddebug.sh script which is available inside
C:\usr\local\pandroid\example\Vibrator\android
folder
But I do not know, if I can replace fi command by pause?
Or can I remove fi and add ppcjvm to The next line with The options?
Because there are no other free project based on JVMandroid Pascal 
except JavaVCL or Pandroid. Lamw required position values for every object.
And I have tried precompiled examples for Pandroid and all of them are 
working smoothly, including calling API functions and author have 
introduce very strange technique for calling .so libraryes even without 
using JNI.
Inside examples
C:\usr\local\pandroid\example\Vibrator
and
C:\usr\local\pandroid\example\DemoPModule
There is other but very strange technique for calling .so library.
All provided examples are working so I think, that his project is very 
probably The best available free solution for writing applications by 
using JVMandroid mode and Android API and .so libraries call is supported.
I Am standing at The crossing. Combine some units from Pandroid with 
units from Javavcl, or should I had to really transform Pandroid to Windows?
Pandroid also contain unit StdCtrls, for writing GUI apps with no need 
to add position values so for little GUI with not many items it should 
also work for Me.
Resulting .dex file is very small, only needed units are being merged 
to it.
Any help will be very welcomed.



More information about the fpc-pascal mailing list