|
Dex加密(下)—替换Application
在 dex加密 中我们使用了解密的ProxyApplication作为了application的name,但是通常我们都会在主App中自定义一个MyApplication,并在其中做一些初始化工作,这个时候我们就需要把ProxyApplication替换成原本的MyApplication。
在替换之前,我们先看看Application在系统中是什么时候开始创建的。
ActivityThread的main方法是一个进程的入口,这里会调用attach()方法,从而通过binder机制调用ActivityManagerService的attachApplication()方法,然后这个方法又反过来调用ActivityThread的bindApplication()方法,接着发Handler调用handleBindApplication()方法。
在handleBindApplication方法中调用makeApplication去创建一个Application对象。
在newApplication()中才是真的去创建一个新的Application。
回过头来看看实例化完Application之后在哪些地方用到了这个Application。
替换完成之后看看四大组件中Application是否改动:
Activity和service已经修改成功,Provider修改失败了,BroadCastReciver有点不同是个ReceiverRestrictedContext。
先看看 BroadCastReciver:
在ActivityThread中的
|
上一篇:删除的说说怎么找回?,删除的说说怎么恢复
下一篇:如何开展聊天话题,怎么开展话题
|