我正在使用PackageStats并在打印PackageStats的codeSize,cacheSize,dataSize时,一些数据将变为负数.
几个问题:
另外,对于Android N,它给了我"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;
};
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含多个模块的项目,一个模块使用其他模块功能.因此,具有依赖项的模块具有编译依赖项中的jar文件.因此,当我尝试转到源代码时,它会转到jar中的.class文件.相反,我希望它转到依赖模块的.java文件.
一种方法是手动执行AttachSources.
因为,我有多个具有多个依赖关系的模块;
项目结构:
项目A:
还有更多模块.
我最近检查了我的GP崩溃日志,我经常收到这个callstack.请你帮助我好吗.
一些东西:
failed to add asset path有时可见/data/app/com.xxx.xxx.xxx-x/base.apk,有时/mnt/asec/com.xxx.xxx.xxx-x/base.apk.Android version显示Android 7.0所有崩溃,但设备列表包含Android version6.0,5.0等设备,目前还不清楚.failed to add asset path有时显示/data/app/P2,有时/mnt/asec/P1.这不正确,是什么原因造成的?调用堆栈:
java.lang.RuntimeException: Unable to create BackupAgent android.app.backup.FullBackupAgent: android.content.res.Resources$NotFoundException: failed to add asset path data/app/com.P2.xxx/base.apk
at android.app.ActivityThread.handleCreateBackupAgent(ActivityThread.java:3452)
at android.app.ActivityThread.-wrap5(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1796)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6688)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
Caused by: android.content.res.Resources$NotFoundException: failed to add asset path /data/app/com.P2.xxx/base.apk
at …Run Code Online (Sandbox Code Playgroud) 我最近通过以下更改更改了AndroidManifest.xml:
现在,当我这样做时aapt dump badging <apk-path>| grep launchable-activity,没有输出。在上述更改之后发生了这种情况。
<activity
android:name="com.a.b.NewMainActivity"
....
android:launchMode="singleTask" >
</activity>
<activity-alias
android:name="com.a.b.OldMainActivity"
android:launchMode="singleTask"
android:targetActivity="com.a.b.NewMainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity-alias>
Run Code Online (Sandbox Code Playgroud)