It seems android is a variant of linux, it had the same basic principle, and it uses .so as subtitute of .dll. I dont know how but I gain access to the system partitions and the local disk partition. Android divide the 4 GBytes internal SDCard as 2 GB for the applications and 2 GBytes for the system files. And I found where the .so is stored. I think I only need to create something like LoadLibrary function like on Windows to access the library and making an application for it. The only problem with speech recognitions implementations for Android is, it uses cloud processing than using built in processor codes. My nexian cell phone which for me considered as SmartPhone(Apple manager said it was trash or junk) had a built in using processors insentive for processing speech recognition, but unfortunately, lots of mistake on it. Using google voice it perfectly able to recognize Indonesia acsen which is look a like arabic acsen. "A" pronounsed like on umbrela, and "I" pronounces like "ee" and "U" pronounced like "oo" and it make it simpler to process than english. This will help you out how to reduce complexity when building a speech recognition software.
(http://2.bp.blogspot.com/-lr2rN5A622A/TWTZjam6UzI/AAAAAAAAAME/DzV7jYScEtg/s400/huruf-hiragana.gif)
I also found the OpenGLESV2.so which is mean, my tablet utilize OpenGL too. But without any GPU, it was very very slow. But let see what I can do after I found how is the so format and their APK format after the next 5 years God Willing. Maybe I can make something cool like what the "Assistant" software did, it was an artificial inteligence look like Watson but on a small scale. Any more information would apreciated.
https://www.facebook.com/photo.php?v=10201016244388382&l=5292151502796729540
Sorry for the bad qualities of the Video, Im making it in hurry, and the frame rate is not good, it was MMS quality video
I demonstrating it for you that you can change the the GUI into what kind of what you like. You wont see any GUI like that since it was a custom made GUI which is not simple to use. I even can make the GUI look a like a WinXP, but since it was a real WinXP it took a huge ammount of space and since it was a simulation for a PC it was very slow.
There is problem on my Tablet Android which is 4.0.3 (Guess what it was API 0x0F yes, API 15, my initial code name) where it doesnot had a function for doing speech recognition and now Im looking for the .so for using it. If I cant found it, I guess I'll use the dirty was, using FASM, make a .so file and then create an .APK using ARM native code. APK file is a compressed file like a zip file that works as an executable. If you open the APK file there is lots of script that are readable by human.
I Wonder Japhet or Hutch making an ARM version of MASM32 since Surface is using ARM too, I want a simplified instruction for it. I need their programming concept.
Farabi
I'm not 100% sure what you are trying to achieve but here is some info that may help you.
If you have the .so, then first thing you should do is run it thru ldd to see what other dependencies it may have.
I have never used Android so cannot vouch for how much like Linux it is and if it has ldd .
For example:
/root/$ ldd dl
linux-gate.so.1 => (0xffffe000)
libdl.so.2 => /lib/i686/libdl.so.2 (0xb7fdb000)
libc.so.6 => /lib/i686/libc.so.6 (0xb7eac000)
/lib/ld-linux.so.2 (0xb7fe7000)
/root/$
Another command that is very useful is readelf as it will show you things like relocatable items:
/root/$ readelf -r dl
Relocation section '.rel.dyn' at offset 0x520 contains 2 entries:
Offset Info Type Sym.Value Sym. Name
08049a3c 00001806 R_386_GLOB_DAT 00000000 __gmon_start__
08049a78 00001405 R_386_COPY 08049a78 stdin
Relocation section '.rel.plt' at offset 0x530 contains 8 entries:
Offset Info Type Sym.Value Sym. Name
08049a4c 00000207 R_386_JUMP_SLOT 00000000 dlsym
08049a50 00000607 R_386_JUMP_SLOT 00000000 fgets
08049a54 00000b07 R_386_JUMP_SLOT 00000000 dlerror
08049a58 00000c07 R_386_JUMP_SLOT 00000000 __libc_start_main
08049a5c 00000e07 R_386_JUMP_SLOT 00000000 printf
08049a60 00001007 R_386_JUMP_SLOT 00000000 dlclose
08049a64 00001107 R_386_JUMP_SLOT 00000000 sscanf
08049a68 00001907 R_386_JUMP_SLOT 00000000 dlopen
/root/$
To work with .so (shared libs), you need to use:
dlopen, dlsym, dlerror, dlclose.
If on the other hand the .so is not available and you are coding from "scratch", you can always include the required functions in your application.
Another option is to use the .so (if the .a is available) and statically compile your app, meaning it will not have external dependencies.
As for compiling and linking your app, if you intend to use C, then gcc is the way to go however if you intend to use ASM then look at NASM or FASMARM
as I doubt very much we will ever see a ARM version of MASM for Linux as MASM produces Windows PE binaries whereas for Linux you need the ELF format.
One final point, investigate first if the device you want to add voice recognition to does in fact have the hardware to support it else your software efforts will be for nothing.
==================
Note to hutch
==================
Please feel free to nuke, edit, move my reply if it's not in the right place or out of context.
Thanks paulo. My Nexian did not have any capability to do voice recognitions, it used Google server to do such a things. I wonder why my Tablet did not able to do the same thing. Sorry for the out of topic conversations.
Im sorry for the article, I just want to confirm wheter a .so is a dynamic link library or what, but I ended up making a journal. Thanks anyway.
see my test on Android. https://www.facebook.com/photo.php?v=10201115869238941&l=8023085953472693966
Lots of developer did not know that Android API 15 (4.0.3) is had capability of 3D Graphics even without 3D GPU, only 2D hardware accelerations, and it was fast. Lots of 3D applications is labeled as cannot run, but if you install it from non market source, it worked and can do 3D applications.
Perfect speech recognition using Google Voice https://www.facebook.com/photo.php?v=10201133846648365&l=8847896625133173094 Im making the video for MMS, as ussual, I sent it to facebook using my cellphone.