
1、Xposed:Java层的HOOK框架,由于要修改Zgote进程,需要Root;
2、CydiaSubstrator:本地层的HOOK框架,本质上是一个inline Hook;
3、dexposed框架
4、AndFix框架;
5、Sophix 框架;
6、AndroidMethodHook框架;
7、Legend框架:在AndFix框架的基础上,在方法进行替换前进行了方法的备份;
8、YAHFA框架;
9、EPIC框架;
10、VirtualXposed:Virtual APP与Xposed的一个结合。
扩展资料
使用框架的原因
因为软件系统很复杂,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮助完成一些基础工作,只需要集中精力完成系统的业务逻辑设计。
而且框架一般是成熟,稳健的,可以处理系统很多细节问题,比如,事务处理,安全性,数据流控制等问题。
还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,可以直接享受别人升级代码带来的好处携含。框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。
框架开发
框架的最大好处就是重用。面向对象系统获得的最大的复用方式就是框架,一个大辩誉笑的应用系统往往可能由多层互相协作的框架组成。
由于框架能重用代码,因此从一已有构件库中建立应用变得非常容易,因为构件都采用框架统一定义的接口,从而使构件间的通信简单。
框架能重用设计。它提供可重用的抽象算法及高层设计,并能将大系统分解成更小的构件,而且能描述构件间的内部接口。
这些标准接口使在已有的构件基础上通过组装建立各种各样的系统成为可能。只要符合接口定义,新的构件就能插入框架中,构件设计者就能重用构架的设计。
框架还能重用分析。所有的人员若按照框架的思想来分析事务,那么就能将它划分为同虚喊样的构件,采用相似的解决方法,从而使采用同一框架的分析人员之间能进行沟通。
参考资料来源:百度百科-框架
android程序如果出问题,因为实际是java程序,所以会抛出异常,比如这样。d出的警告对话框中没有异常信息,如果需要闷缓看到日志内容,可执行:adb logcat即可见到异常信息。或者通过ddms,备罩亏通过device》run logcat通仿神过图形界面查看日志,和上面的命令效果一样。这是一个异常的内容:W/dalvikvm(26121): threadid=3: thread exiting with uncaught exception (group=0x4000fe70)E/AndroidRuntime(26121): Uncaught handler: thread main exiting due to uncaught exceptionE/AndroidRuntime(26121): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.easymorse.activity/com.easymorse.activity.ActivityTest}: java.lang.SecurityException: Requires READ_PHONE_STATE: Neither user 10032 nor current process has android.permission.READ_PHONE_STATE.E/AndroidRuntime(26121): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268)E/AndroidRuntime(26121): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284)E/AndroidRuntime(26121): at android.app.ActivityThread.access$1800(ActivityThread.java:112)E/AndroidRuntime(26121): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)E/AndroidRuntime(26121): at android.os.Handler.dispatchMessage(Handler.java:99)E/AndroidRuntime(26121): at android.os.Looper.loop(Looper.java:123)E/AndroidRuntime(26121): at android.app.ActivityThread.main(ActivityThread.java:3948)E/AndroidRuntime(26121): at java.lang.reflect.Method.invokeNative(Native Method)E/AndroidRuntime(26121): at java.lang.reflect.Method.invoke(Method.java:521)E/AndroidRuntime(26121): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)E/AndroidRuntime(26121): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)E/AndroidRuntime(26121): at dalvik.system.NativeStart.main(Native Method)E/AndroidRuntime(26121): Caused by: java.lang.SecurityException: Requires READ_PHONE_STATE: Neither user 10032 nor current process has android.permission.READ_PHONE_STATE.E/AndroidRuntime(26121): at android.os.Parcel.readException(Parcel.java:1234)E/AndroidRuntime(26121): at android.os.Parcel.readException(Parcel.java:1222)E/AndroidRuntime(26121): at com.android.internal.telephony.IPhoneSubInfo$Stub$Proxy.getLine1Number(IPhoneSubInfo.java:223)E/AndroidRuntime(26121): at android.telephony.TelephonyManager.getLine1Number(TelephonyManager.java:498)E/AndroidRuntime(26121): at com.easymorse.activity.ActivityTest.onCreate(ActivityTest.java:18)E/AndroidRuntime(26121): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)E/AndroidRuntime(26121): … 11 more日志引用在android系统中获取imei号和其他手机信息 发送文章为PDF欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)