Does a spv client need to download the full blockchain headers? how much does it occupy? is it better for security? I saw a blockchain-headers file in my android wallet that only occupies -30MB.
SPV clients need to download the blockchain headers so that it knows that it is following the blockchain with the most work. Each header is 80 bytes, and with 474994 blocks (as of writing this post), the size of all blockchain headers is 37999520 bytes which is ~38 MB.