मैं पैकेजस्टैट्स का उपयोग कर रहा हूं और पैकेजस्टैट के कोड साइज, कैश साइज, डेटा साइज को प्रिंट करने पर, कुछ डेटा नकारात्मक के रूप में आ रहा है।एंड्रॉइड पैकेजस्टैट्स नकारात्मक मान देता है
कुछ सवाल:
- यह कैसे संभव है?
- परिदृश्य क्या हैं जब एपीके आकार 50 एमबी के आसपास कोडसाइज नकारात्मक हो सकता है?
- उपरोक्त जानकारी निकालने के लिए किसी अन्य तरीके का विश्वसनीय रूप से उपयोग किया जा सकता है?
इसके अलावा, Android के लिए एन यह मुझे देता है "NoSuchMethodException" तो,
- इसके लिए एंड्रॉयड एन हटा दिया है या किसी तरह से इसका इस्तेमाल करने की है?
- कोई भी विकल्प जो मुझे उपर्युक्त आकारों की गणना करने में मदद कर सकता है?
कोड:
PackageManager packageManager = context.getPackageManager();
Method myUserId = UserHandle.class.getDeclaredMethod("myUserId");
int userID = (Integer) myUserId.invoke(packageManager);
Method getPackageSizeInfo = packageManager.getClass().getDeclaredMethod("getPackageSizeInfo", String.class, int.class,
IPackageStatsObserver.class);
getPackageSizeInfo.invoke(packageManager, context.getPackageName(), userID, new IPackageStatsObserver.Stub() {
@Override
public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException {
long codeSize = pStats.codeSize/MB; //long MB = 1024*1024;
long cacheSize = pStats.cacheSize/MB;
long dataSize = pStats.dataSize/MB;
long appSize = codeSize + cacheSize + dataSize;
};
}
क्या आप एक कोड उदाहरण जोड़ सकते हैं जिसमें आप मूल्य को प्रदर्शित/जांच रहे हैं और साथ ही उस मूल्य पर किए गए किसी भी गणना को प्रदर्शित कर सकते हैं? – Zachary
ठीक है यकीन है। मैं 1 को छोड़कर कोई गणना नहीं कर रहा हूं जिसमें एमबी में मान प्राप्त करने के लिए मैं मानों को 1024 * 1024 से विभाजित करता हूं। – thepace