Why is the PackageInfo.signatures field an array, and when would there be anything other than one value here?
<p>I'm checking package signatures against each other to determine if they are incompatible (compiled against different keystores).  I noticed that <code>PackageInfo.signatures</code> is almost always a collection containing a single entry, which makes sense to me.  I build my app with either a debug or production keystore, and that determines the signature of the package (that is my simplistic understanding of the apk signing process at this point).  I know that this will be null if I don't specifically ask for this information (by passing the <code>PackageManager.GET_SIGNATURES</code> flag), but I don't quite understand the case in which there would be more than one.</p>

<p>I wrote some debug code and ran it on my personal Android phone.  Of the 300+ packages installed on my phone, everything had exactly one signature except for a few packages that seemed to be from my service provider (com.verizon.* namespaces).</p>

<p>I feel like it's acceptable for my use case (package management) to consider that app packages will have a single signature, but I want to make sure that I'm not missing something that could introduce an edge case bug.</p>
