News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

[Android] What is .so File?

Started by Farabi, September 23, 2013, 02:16:08 AM

Previous topic - Next topic

Farabi

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.



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.
http://farabidatacenter.url.ph/MySoftware/
My 3D Game Engine Demo.

Contact me at Whatsapp: 6283818314165

Farabi

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.
http://farabidatacenter.url.ph/MySoftware/
My 3D Game Engine Demo.

Contact me at Whatsapp: 6283818314165

Paulo

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.



Farabi

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.
http://farabidatacenter.url.ph/MySoftware/
My 3D Game Engine Demo.

Contact me at Whatsapp: 6283818314165

Farabi

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.
http://farabidatacenter.url.ph/MySoftware/
My 3D Game Engine Demo.

Contact me at Whatsapp: 6283818314165

Farabi

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.
http://farabidatacenter.url.ph/MySoftware/
My 3D Game Engine Demo.

Contact me at Whatsapp: 6283818314165

Farabi

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.
http://farabidatacenter.url.ph/MySoftware/
My 3D Game Engine Demo.

Contact me at Whatsapp: 6283818314165