Страница 1 из 1

Как очистить память? Android [Решено]

СообщениеДобавлено: 06 июн 2020, 21:25
VladikDEV
Синтаксис:
Используется csharp
        private string GetFileMD5(string path)
        {
            using (System.IO.FileStream fs = System.IO.File.OpenRead(path))
            {
                System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
                byte[] fileData = new byte[fs.Length];
                fs.Read(fileData, 0, (int)fs.Length);
                byte[] checkSum = md5.ComputeHash(fileData);
                string result = System.BitConverter.ToString(checkSum).Replace("-", string.Empty);
                return result;
            }
        }
 


на андроиде проверяю хешсуммы obb и global-metadata файлов чтобы бороться со взломщиками:D
после этого Mono memory usage возрастает на 130 мб, итого ~140 мб там висит, и никогда не пропадает, и после GC.Collect() тоже. на девайсах с 1GB RAM это заканчивается крашем через несколько минут.
вопрос как очистить память?

Re: Как очистить память? Android

СообщениеДобавлено: 06 июн 2020, 23:24
seaman
Ну для начал я бы попробовал напрямую из потока считать md5
https://docs.microsoft.com/ru-ru/dotnet ... IO_Stream_

Re: Как очистить память? Android

СообщениеДобавлено: 07 июн 2020, 10:35
Jarico
VladikDEV писал(а):на андроиде проверяю хешсуммы obb и global-metadat файлов чтобы бороться со взломщиками:D


Я по другому делал, при компиляции C# -> IL2CPP некоторые исходники берутся из папки редактора (Unity_Version/Data/il2cpp) и там есть точка входа в библиотеку (DllMain.cpp)
В неё можно запихать самовалидацию DLL и если валидация не удалась крашить игру

Re: Как очистить память? Android

СообщениеДобавлено: 07 июн 2020, 11:36
VladikDEV
Jarico писал(а):Я по другому делал, при компиляции C# -> IL2CPP некоторые исходники берутся из папки редактора (Unity_Version/Data/il2cpp) и там есть точка входа в библиотеку (DllMain.cpp)
В неё можно запихать самовалидацию DLL и если валидация не удалась крашить игру

ого, звучит интересно) а можно где-то почитать подробнее, это сложно? с dll даже и не работал никогда, как бы чего не сломать:D

Re: Как очистить память? Android

СообщениеДобавлено: 07 июн 2020, 14:24
VladikDEV
seaman писал(а):Ну для начал я бы попробовал напрямую из потока считать md5
https://docs.microsoft.com/ru-ru/dotnet ... IO_Stream_

спасибо, это решило проблему