hylander0 / Iteedee.ApkReader

.NET library written in C# for reading/parsing APK manifest (AndroidManifest.xml) and resource data (Resources.arsc)
98 stars 42 forks source link

Increase performance/speed #21

Open MustafaBalti opened 5 years ago

MustafaBalti commented 5 years ago

Working perfectly but taking 1:30 to 2:00 mints for Apk extraction/response .How to improve the performance/speed? MyCode

        Stream stream = System.IO.File.OpenRead(filePath);
        using (ICSharpCode.SharpZipLib.Zip.ZipInputStream zip = new ICSharpCode.SharpZipLib.Zip.ZipInputStream(stream))
        {
            using (var filestream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
            {
                ICSharpCode.SharpZipLib.Zip.ZipFile zipfile = new ICSharpCode.SharpZipLib.Zip.ZipFile(filestream);
                ICSharpCode.SharpZipLib.Zip.ZipEntry item;

                foreach (ICSharpCode.SharpZipLib.Zip.ZipEntry entry in zipfile)
                {
                    if (entry.Name.ToLower() == "androidmanifest.xml")
                    {
                        Stream stream1 = zipfile.GetInputStream(entry);
                        manifestData = new byte[50 * 1024];
                        stream1.Read(manifestData, 0, manifestData.Length);
                    }
                    if (entry.Name.ToLower() == "resources.arsc")
                    {
                        Stream stream2 = zipfile.GetInputStream(entry);
                        BinaryReader binaryReader = new BinaryReader(stream2);
                        resourcesData = binaryReader.ReadBytes((int)entry.Size);
                    }
                }
            }

            ApkReader apkReader = new ApkReader();
            ApkInfo info = apkReader.extractInfo(manifestData, resourcesData);
            model.packageName = string.Format("Package Name: {0}", info.packageName);
            model.VersionName = string.Format("Version Name: {0}",info.versionName);
            model.VersionCode = string.Format("Version Code: {0}",info.versionCode);

        }