当前位置: 首页 > news >正文

课程网站如何建设方案自己怎么开发社交app软件

课程网站如何建设方案,自己怎么开发社交app软件,wordpress多个主题,搜索引擎app一、引言 Xposed框架,是Android中Hook技术的一个著名的框架,拥有非常丰富的模块,给我们分析app提供了极大的便利,Xposed框架是开源的。最高支持到Android 8(重要) github地址:GitHub - rovo89…

一、引言

Xposed框架,是Android中Hook技术的一个著名的框架,拥有非常丰富的模块,给我们分析app提供了极大的便利,Xposed框架是开源的。最高支持到Android 8(重要

github地址:GitHub - rovo89/Xposed: The native part of the Xposed framework (mainly the modified app_process binary).

二、Hook原理

1、Xposed框架的工作原理是通过在Android系统的应用层和框架层之间插入钩子(hook)来实现。钩子可以截获和修改Android系统的核心函数调用,从而实现对系统行为的改变。

2、Android 系统是基于 Linux 的,其第一个由内核启动的用户进程是 init 进程。init 进程随后会创建孵化进程(zygote ),Android 应用程序进程都是由 zygote 进程孵化而来。zygote 所对应的可执行程序是 app_process,xposed 框架通过替换系统的 app_process 可执行文件以及虚拟机动态链接库,让 zygote 在启动应用程序进程时注入框架代码,进而实现对应用程序进程的劫持。

三、Xposed安装

1、下载Xposed apk Xposed Installer,安装至手机或者模拟器上

2、执行 mount -o remount -w /system  放开system写权限

3、进入xposed管理界面,魔法上网可以直接下载zip文件(或者自己去下载zip文件,注意安卓版本问题,如:安卓5.1对应SDK22)

四、Xposed Hook入门

前置:需要有一点点Android开发经验(重要

1、在build.gradle添加依赖:内部build.gradle

compileOnly 'de.robv.android.xposed:api:82'

2、编辑AndroidManifest.xml,添加

    <meta-dataandroid:name="xposedmodule"android:value="true"/><meta-dataandroid:name="xposeddescription"android:value="hello xposed"/><meta-dataandroid:name="xposedminversion"android:value="82"/>

3、新建一个类XposedInit实现IXposedHookLoadPackage,实现以下方法,该方法会在执行Application.onCreate()方法前调用

 @Overridepublic void handleLoadPackage(final XC_LoadPackage.LoadPackageParam lpparam){if (lpparam.packageName.equals("com.test.xposeddemo")) {}}

4、新建assets文件夹,文件夹下新建xposed_init文件,编辑文件,填写XposedInit类的完整包名,class不能使用Class.forName()来获取,查看forName的源码,该方法需要传一个类加载器,默认使用的是VMStack.getCallingClassLoader(),这个是获取当前应用的ClassLoader,即xposed项目的ClassLoader,如果使用Class.forName("")获取不同应用的类会提示找不到

5、编写Hook方法

public class XposedInit implements IXposedHookLoadPackage {@Overridepublic void handleLoadPackage(final XC_LoadPackage.LoadPackageParam lpparam) {if (lpparam.packageName.equals("com.test.xposeddemo")) {XposedHelpers.findAndHookMethod("com.test.xposeddemo.MainActivity", lpparam.classLoader, "onCreate", Bundle.class, new XC_MethodHook() {@Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {//不能通过Class.forName()来获取Class Class c=lpparam.classLoader.loadClass("com.wrbug.xposeddemo.MainActivity");Field field=c.getDeclaredField("textView");field.setAccessible(true);TextView textView= (TextView) field.get(param.thisObject);textView.setText("Hello Xposed");}});}}
}

6、打包成apk文件,安装至手机

7、Xposed模块管理界面,开启该模块,重启手机后。我们会发现该模块已经生效

五、代码解释

1、handleLoadPackage方法,该方法会在执行Application.onCreate()方法前调用,并且携带一个XC_LoadPackage.LoadPackageParam lpparam返回过来,lpparam包含了hook到的应用的相关信息

2、参数

fields

type

description

packageName

String

应用包名

processName

String

应用加载后的进程名

classLoader

ClassLoader

应用的classloader

appInfo

ApplicationInfo

应用的信息,包括verisonCode,uid等

六、其他 

1、IXposedHookInitPackageResources这个是在资源布局初始化时进行hook,需要实现handleInitPackageResources(XC_InitPackageResources.InitPackageResourcesParam resparam) 方法,在初始化时调用,resparam有如下两个字段:

packageName

String

应用包名

res

XResources

资源相关

2、IXposedHookZygoteInit:在Zygote启动时调用,用于系统服务的Hook回调方法initZygote() 

http://www.yayakq.cn/news/120407/

相关文章:

  • 东莞毛织厂家东莞网站建设乔家孕事(限) 17模板网
  • 山东银汇建设集团网站南京斯点企业网站建设
  • 深圳的网站建设公司 湖南岚鸿公司网页制作选择软件
  • 竞价网站移动端如何做一个完整的网站
  • 徐州做网站费用企业网站seo价格
  • 济宁500元做网站百度号码认证
  • 毕业设计做系统和网站有什么区别WordPress编辑文章空白
  • dede网站打开速度慢网页制作工具的应用及页面制作实验报告
  • 关键词优化是怎样收费的温州seo平台
  • 网站建站网站网站维护化妆品建设网站的目的
  • 网站更换主机注意东莞网站制作支付通道
  • 中小企业网站制作模板公司网站建设维护
  • 网站备案类型有哪些wordpress模板打开慢
  • 门户网站开发要多少钱php 做网站
  • 国外做家装的网站有哪些最新新闻资讯
  • flashfxp链接网站教医学生做科研的网站有哪些
  • 网站建设那里贵阳市城乡建设厅网站
  • 用php做的网站论文用网页采集个人信息网站怎么做
  • 石景山做网站的公司程序员培训班课程
  • 祥云县住房和城乡建设网站神马网站快速排名案例
  • 网站开发绪论花都网站建设设计
  • 网站备案系统验证码出错的解决方案wordpress网站编辑
  • 网站建设公司导航免费微信公众号首图
  • 新钥匙石家庄网站建设网站换主推关键词会怎么样
  • 购物网站可行性分析报告贺卡网图
  • 货运公司网站源码申请网页域名
  • 农机网站模版wordpress wp list pages
  • 杭州设计 公司 网站wordpress显示投稿者
  • 新乐市建设银行网站广告策划案优秀案例
  • 网站建设推广报价口碑营销最新案例