It's a well-studied topic in EE and CS. WiFi network throughput mainly depends on two factors: signal-to-noise (SNR) value, and network congestion. The former one is a physical-layer (PHY) issue, while the latter one a MAC layer issue. Data rate measured at both layers are definitely different.
At PHY, data rate is determined by SS (or more precisely, signal-to-noise ratio). Higher SS means higher data rate, according to Shannon's information theory. Data rate at PHY assumes that a single WiFi device transmits continuously without any contention. But this is not the case in real world. 54Mbps is a typical PHY data rate with high SS.
At MAC, data rate is got by PHY data rate multiplied by the percentage of time a WiFi device win the contention under CSMA protocol. Even if there's only one pair WiFi devices, data rate measured at MAC layer (which is almost the same as measured at application layer) is roughly half of PHY data rate.
Back to your question, in a clear WiFi network, divide the network speed returned from Android API by half for a rough estimate on the real data rate. In a busy network your real data rate can be derived only by online measurement and it changes all the time.