THANKS, @Michael_Oborne!
Sending of the first packet was the trick, WTF.
Here is working code for any others:
            DatagramSocket ds = new DatagramSocket();
            ds.connect(InetAddress.getByName("localhost"), 14552);
            byte[] probe = new byte[16];
            DatagramPacket out = new DatagramPacket(probe, probe.length,  InetAddress.getByName("localhost"), 14552);
            if(out != null)ds.send(out);
            while (!ds.isClosed()) {
                ds.receive(dp);
                Log.i("UDP ","Hey I got MavLink packet!");
            }