背景 DroidPlugin默认不支持多任务: VirtualApp是支持的: 方案 其实参考的就是VirtualApp的实现,它的核心代码是: // com.lody.virtual.client.hook.proxies.am.HCallbackStub IBinder token = ActivityThread.ActivityClientRecord.token.get(r); ...... int taskId = IActivityManager.getTaskForActivity.call( ActivityManagerNative.getDefault.call(), token, false); 其实就是反射调用ActivityMa
问题 dex包里面的build.gradle通过api引用了一个包,同事主工程调用dex包里面的方法抛出ClassNotFoundException。 分析 使用AS的Analyze APK发现该类其实是存在
背景 最近在处理异常时遇到一个诡异的问题:自己的Demo里面混淆一个类后,打印Crash堆栈时这个类里面的调用点直接失踪了! 下面用测试代码说明。 测试代码 // MainActivity.java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Test().fun1(); } } // Test.java public class Test
背景 之前项目的混淆配置一直没开启Proguard的优化选项 -dontoptimize 最近为了做安装包优化,把这行注释掉了 #-dontoptimize 问题 于是项目里的各种优化配置开始生效了,但是测试反馈了一个Bug:悬浮窗的搜索框点击之后没有反应了。 排
问题背景 Android中存在大量需要动态下发文件的场景: 下发布局资源文件实现UI动态化 下发Dex文件、lua文件,实现局部功能的动态化 下发Android插件 下发多媒体资源等 等等 对于其中一些文件,如De
背景 在做沙箱动态化时遇到一个问题: 请假其他同事之后发现是因为Android高版本上,默认是64-bit的方式运行,而某些游戏是32-bit的,所以出现了冲突,解决办法就是强制使用32-bit的,而不是
今天遇到一个问题,前端反映说我们共同约定的一个隐藏WebView无法调试,现象如下: 可以看到,小测试这个Tab一出现就消失了,但是同样的代码放在测试Demo里面就没问题,分析之后发现是实际工程里面产生
背景 安装包膨胀的原因 业务的增加、产品的演进是安装包大小增加的本质原因。但是在演进之路上,由于一些所谓的技术债务,如: 使用的资源未经裁剪(如全量字体文件、分辨率过大的图片) 不合理的大资源(如大的视频、音
背景 目前Android安装包的优化方法论比较成熟,比如 混淆代码(Proguard、AndResGuard) 移除不在使用的代码和资源 对于音频、图片等使用更轻量的格式 等等 这些方法都比较常规,在项目成熟后优
‘android:excludeFromRecents踩坑指南’ 工作中遇到的一个小问题,记录一下。 现象 从Activity A跳转到B,B的launchMode设置为singleI