On Feb 8, 2012, at 4:35 AM, John Murray wrote:
> I recall some time ago a thread about this – the size of Monodroid apks – 
> cant seem to find it.

Who needs a thread when we have docs? :-)

        http://docs.xamarin.com/android/advanced_topics/linking

> I have  a reviewer making an issue of the size – strangely Android Market is 
> reporting it at 12mb whereas the apk I uploaded was only 6mb

That's rather odd. It might be interesting to download your app and compare it 
to the .apk you uploaded. Perhaps Google is doing something screwy to increase 
.apk sizes?

> Does the whole apk 6mb translate into a 6mb footprint in memory ?

No, and "memory" doesn't necessarily mean much either.

The .apk will contain three sets of data: native libraries, assemblies, and 
everything else. ;-)

Native libraries, including libmonodroid.so, are compressed, as is everything 
else (usually...).

Assemblies are _not_ compressed within the .apk, they're "stored." The reason 
for this is that during startup we mmap the .apk and read the (stored) 
assemblies from the mmap'd memory region.

Does this use process address space? Yes. Does this use RAM? No. It's backed by 
the disk, is readonly, and can be discarded by the kernel whenever it feels 
like it. :-)

Similarly, loading the native libraries will require process address space, but 
that's also largely up to ld.so and ELF; it's hard to say how much of 
libmonodroid.so will actually be in memory, and (again) is that r+w memory or 
read-only?

In short, it's horrendously complicated, and will likely be swamped by objects 
your code creates. The GC adds an entirely new complication here, even in Java.

Anyone who thinks that .apk size can be equate to memory use, in any way, is 
delusional.

 - Jon

_______________________________________________
Monodroid mailing list
[email protected]

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to