A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

自己给自己备注的学习资料:
一:一个安装的apk里面的一个TestA要去调用一个放在sd卡上的没安装的apk里面的TestB。
二:TestBActivity运行会报错,大伙不用管,只要拿到TestBActivity运行后的apk,放倒sd卡上就行(注意跟MainActivity里路径的对比),然后运行TestA。点击button就会调用到testb.apk里的类了~~
三:特别强调一点:1.我们知道一个activity具有严格意义上的生命周期必须要在ActivityThread里面去创建,所以通过   DexClassLoader加载的ActivityB是没有生命周期的,它也就是一个普通的类;
2.有人会问,为什么还要让ActivityA 来加载ActivityB,而不是直接ActivityA去load 另外一个类比如classC呢? 这个问题很简单,因为我们在打包成APK的时候,有activity会更方便和直观(自己去体会)。简单的游戏,往往一个activity就够了。那么ActivityA 也仅仅只需要加载一个类实例。
3.假如调用的罪过testB.apk里类要多次跳转就会报空指针异常了,因为我们把它看得太强大了。这里面不能再去跳转了,因为这个Activity是一个普通的类(通过反射后得来的),已经没有Activity的特性了,应该是可以有多个View的,但是只能通过new来得,而不是layout
四:关于静默安装一个完整的有生命的activity,要root手机才能,跳过root步骤的方法还没实现,查了很多资料说Ubuntu系统中调试源码就可以实现静默安装了,我Ubuntu系统还没装起来没法调试,据说就算是在Ubuntu系统调试源码也要root手机,关于这点还没确认,麻烦知道的童鞋提醒下。用Ubuntu系统调试源码到底需要不需要root手机~~~



   



源码:[attach]48989[/attach]

类似qq加载未安装的apk.rar

77.57 KB, 下载次数: 145

1 个回复

倒序浏览
不错,很值得学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马