ViNT, спасибо за либу! Весьма полезна.
Но в процессе тестирования на реальных телефонах обнаружилось следующее:
1. Даже если не делать обработчик ошибок, всё равно на некоторых самсунгах может не запускаться. И через обфускатор proguard не проходит. Если создать хотя бы пустую процедуру onerror, то всё ОК. Надеюсь, эта информация пригодится тем, кто будет использовать данную либу.
2. Приём данных я делаю примерно так:
count := binsock.available;
content := '';
while (count>0) do
begin
content := content + binsock.read_bin(count);
count := binsock.available;
end;
т.е. всё скачиваю в текстовую переменную.
Я так понял, что при загрузке сначала заполняется некий буфер, а потом уже из него можно скачивать в бинарный массив.
Подобный цикл while..end понадобился, поскольку размер буфера значительно меньше размера реально скачиваемого с сервера контента.
На эмуляторе kEmulator переменная count, отображающая binsock.available, принимает максимальное значение 8192. То есть когда я скачиваю с сервера 20 кб данных, цикл проходит 3 раза.
Но бинарная картинка, скачанная таким образом, нормально собирается и отображается на эмуляторе.
На мобильниках всё не так радужно. Например, на Samsung E-200 размер буфера всего 512 байт. Текстовый контент в приведённом мной выше цикле скачивается и собирается нормально, а вот картинка - нет, приходит битая.
Может, сможешь что-нибудь посоветовать?