You need a protocol for it. Post your code here. I am sure u used delay in your code. You are slowing the data stream yourself for it. There is no short answer to your problem. But the main idea is , arduino can accept and process a curtain amount of data at a time. Due to this limitation, you have to specify a transfer protocol. For example if you want to send a 1 word string that has 1000 character, you cannot send all of the data and record it to sd card. What you do is , send data 20 character at a time by adding 2 character at the beginning and ending of that 20 character. Call this a batch. There will be 50 batch you have to send. Do this in for loop at android side and wait for a signal from arduino. At arduino side, use datareceived event and define a string variable that stores batches. When batch is processed by arduino send a signal to android device and so on. Your problem is overflowing the serial buffer. You need a protocol. And you need to increase baud rate if you are doing the transfer at 9600. We cannot help without the code and time. This is not a rookie job. You will struggle a lot.