美文网首页
Logos 基本使用

Logos 基本使用

作者: Devil_Chen | 来源:发表于2019-01-27 16:14 被阅读0次

    前言

    • Theos创建tweak工程,默认生成的源文件是tweak.xm,而Logos即是其所用的语法
    • 本文直接使用MonkeyDev创建项目演示Logos使用(MonkeyDev包含了Theos)
    • 查看Logos文档(当然要有英语基础啦)-->Logos文档

    基本语法

    Logos语法分为三大类

    • Block level
      这一类型的指令会开辟一个代码块,以%end结束。
      %group、%hook、% subclass 、 %end
    • Top level
      这个TopLevel指令不放在BlockLevel中。
      %config、%hookf、%ctor、%dtor
    • Function levell
      这一块的指令就放在方法中。
      %init、%class、%c、 %orig、%log

    Logos语法常用指令

    • %hook
      指定需要hook(勾住)的class,必须以%end结尾。
    • %log
      能够输出日志,输出方法调用的详细信息,可以%log([(),…..])的格式追加其他打印信息。
    • %orig
      该指令在函数内部使用,表示调用原本的函数。
    • %group
      用于将%hook分组,便于代码管理及按条件初始化分组,必须以%end结尾。 一个%group可以包含多个%hook,所有不属于某个自定义group的%hook会被隐式归类到%group_ungrouped中。
    • %init
      该指令用于初始化某个%group,一般在%ctor内调用;如果带参数,则初始化指定的group,如果不带参数,则初始化_ungrouped。只有调用了%init,对应的%group才能起作用。
    • %ctor
      构造函数 Tweak的constructor,完成初始化工作;如果不显示定义,Theos会自动生成一个%ctor,并在其中调用%init(_ungrouped)
    • %dtor
      析构函数
    • %c
      类似getClass函数,获得一个类对象。一般用于调用类方法。
    • %new
      给hook的Class添加新函数

    实践

    hook登录按钮点击和增加方法

    image.png image.png

    分组%group

    image.png image.png image.png

    相关文章

      网友评论

          本文标题:Logos 基本使用

          本文链接:https://www.haomeiwen.com/subject/ysigjqtx.html