I have found that using tv_grab_file is a lot easier than trying to understand sockets. You may find this article, starting at the third paragraph and continuing to the first "EDIT:" useful - ignore the parts about free-to-air and about zap2xml, they do not apply in your case - you are only really interested in the parts about using tv_grab_file:
https://freetoairamerica.wordpress.com/2014/12/03/some-hints-for-getting-free-to-air-satellite-channels-into-the-electronic-program-guide-in-kodi-or-xbmc-or-another-frontend/
Note especially the paragraph that begins, "NOTE: There are some people that find that for whatever reason, they cannot run the tv_grab_file script. This most often happens on systems or devices where bash is not installed (to determine whether that is the case, enter which bash at a Linux command prompt and if bash is installed it will display the path, typically /bin/bash). ..." That may apply to you if you are running on Android.
I'm not sure if Tvheadend will automatically assign listings data to channels, but I don't think so, at least not in all cases. You're probably not going to watch all 3000+ channels and the list is likely going to change over time, so just map the listings to the channels you actually watch. Ignore the ones that are in languages you don't speak, or that cover topics of no interest to you.
You have to keep in mind that when Tvheadend was originally written, there was no such thing as IPTV, and even in the existing settings there are many things I wish were easier to set (for example, all newly created services default to "auto check enabled", which is not the setting you want with transponders that can go down for an entire weekend or for hours or days at a time. My preference would be to have them all set initially to disabled, or to be able to select a group and change them all at once, but you can't do that and it's really annoying). I think just about everyone that uses Tvheadend wishes it were easier to use in some way or another, but it's really the only program of its type that works well under Linux. I can't tell say anything about Android; I've always run Tvheadend on a system with an Intel CPU, using Debian or Ubuntu Server as the OS.