如何看待 Lody 新开源的 VirtualApp 插件框架
占坑,慢慢更。
LBE平行空间没有研究过,DroidPlugin倒是非常熟悉;我简单比较一下VA和DP吧。
首先,VA利用ContentProvider的同步特性构建了一套跨进程同步通信机制;这使得整个框架的核心得以摆脱AIDL Service异步过程的苦恼,代码看起来比较整洁,用起来也非常方便;同时,这个机制也解决了插件之间跨进程通信的难题;类似DroidPlugin这样的多进程机制的插件系统,如果插件之间需要通信,必须使用IPC机制:广播,AIDL等等,这些通信都是异步的,写起来非常蛋疼;而构建在ContentProvider机制上的同步AIDL通信使得插件的跨进程通信就像普通函数调用一样简单。它的实现原理就是把ContentProvider当作一个ServiceManager,所有的Binder都放在这里管理,利用query/call的同步调用方式,把Binder对象透传到不同的进程;这一点我会专门写文章介绍。
其次,对于组件Hook技术来说;我大致看了一下代码,Activity的处理方式和DroidPlugin没有本质的不同;但是对Service组件以及ContentProvider组件的处理有较大改进;非常清晰,处理方式也是直击要害;可以看出年轻的lody对Android Framework已经有相当的功力了。这里插个广告,Android插件化原理解析——ContentProvider的插件化 对于ContentProvider的处理跟我这篇文章类似,读者可以领略一下。
然后,在Hook框架方面,lody使用了基于注解的依赖注入技术;这使得虽然hook的对象很多,代码确井井有条;DP的hook都是相当直接的。当然,除去写法上的不同,在Java层他们hook的本质是相同的。关于如何hook可以参考我对DroidPlugin的介绍:
Android插件化原理解析——Hook机制之动态代理
Android插件化原理解析——Hook机制之Binder Hook
接着,VA处理了一部分native层的hook;从引入的libxhook.so可以看出来;这使得VA对于插件so的支持更加完善。具体hook了什么还不是很清楚,待研究。(已确认这个so没有用,thx @朱立志 提醒!)
二三四五属于什么类型的股票?
上海二三四五网络科技有限公司于2005年9月建立,是一家以互联网运营和软件开发为一体,拥有高水平的产品、运营团队及雄厚资本实力的国内领先互联网企业。上海二三四五网络科技有限公司于2005年9月建立,是一家以互联网运营和软件开发为一体,拥有高水平的产品、运营团队及雄厚资本实力的国内领先互联网企业。上海二三四五网络科技有限公司致力于打造网民首选的上网入口平台,旗下拥有2345网址导航、2345软件大全(原多特软件站)、2345好压、2345浏览器、2345看图王、2345影视大全等知名网站和软件产品,覆盖互联网用户超过2.3亿,是国内为数不多的拥有亿万级用户平台的公司。扩展资料:普通股股东按其所持有股份比例享有以下基本权利:(1)公司决策参与权。普通股股东有权参与股东大会,并有建议权、表决权和选举权,也可以委托他人代表其行使其股东权利。(2)利润分配权。普通股股东有权从公司利润分配中得到股息。普通股的股息是不固定的,由公司赢利状况及其分配政策决定。普通股股东必须在优先股股东取得固定股息之后才有权享受股息分配权。(3)优先认股权。如果公司需要扩张而增发普通股股票时,现有普通股股东有权按其持股比例,以低于市价的某一特定价格优先购买一定数量的新发行股票,从而保持其对企业所有权的原有比例。(4)剩余资产分配权。当公司破产或清算时,若公司的资产在偿还欠债后还有剩余,其剩余部分按先优先股股东、后普通股股东的顺序进行分配。参考资料来源:百度百科-股票
如何看待 Lody 新开源的 VirtualApp 插件框架
LBE平行空间没有研究过,DroidPlugin倒是非常熟悉;我简单比较一下VA和DP吧。
首先,VA利用ContentProvider的同步特性构建了一套跨进程同步通信机制;这使得整个框架的核心得以摆脱AIDL Service异步过程的苦恼,代码看起来比较整洁,用起来也非常方便;同时,这个机制也解决了插件之间跨进程通信的难题;类似DroidPlugin这样的多进程机制的插件系统,如果插件之间需要通信,必须使用IPC机制:广播,AIDL等等,这些通信都是异步的,写起来非常蛋疼;而构建在ContentProvider机制上的同步AIDL通信使得插件的跨进程通信就像普通函数调用一样简单。它的实现原理就是把ContentProvider当作一个ServiceManager,所有的Binder都放在这里管理,利用query/call的同步调用方式,把Binder对象透传到不同的进程;这一点我会专门写文章介绍。
其次,对于组件Hook技术来说;我大致看了一下代码,Activity的处理方式和DroidPlugin没有本质的不同;但是对Service组件以及ContentProvider组件的处理有较大改进;非常清晰,处理方式也是直击要害;可以看出年轻的lody对Android Framework已经有相当的功力了。这里插个广告,Android插件化原理解析——ContentProvider的插件化 对于ContentProvider的处理跟我这篇文章类似,读者可以领略一下。
然后,在Hook框架方面,lody使用了基于注解的依赖注入技术;这使得虽然hook的对象很多,代码确井井有条;DP的hook都是相当直接的。当然,除去写法上的不同,在Java层他们hook的本质是相同的。关于如何hook可以参考我对DroidPlugin的介绍:
Android插件化原理解析——Hook机制之动态代理
Android插件化原理解析——Hook机制之Binder Hook