首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
小肥阳
掘友等级
移动开发工程师
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
26
文章 26
沸点 0
赞
26
返回
|
搜索文章
赞
文章( 26 )
沸点( 0 )
Android AOP方案(二)——ASM
ASM是一个通用的Java字节码操作和分析框架。它可以直接以二进制形式用于修改现有类或动态生成类。ASM提供了一些常见的字节码转换和分析算法,可以从中构建定制的复杂转换和代码分析工具。ASM提供了与其他Java字节码框架类似的功能,但是侧重于性能。因为它的设计和实现是尽可能的小…
Android UI Test 在 Application onCreate 前执行代码
现在Android 模块化开发越来越讲究了,比如你开发一个模块,先是在一个独立仓库开发,然后打包成jar或者aar包发布到私有maven仓库,然后APP 的project依赖你的SDK包,基本常规操作就是再在Application onCreate中添加一下初始化方法。 怎么办…
Android Espresso是如何获取View? (一)—— Espresso源码篇
Espresso是如何获取AlertDialog上面的确定按钮的呢?想到这里,感觉事情并不是想的那么简单。来,让我们一起从Espresso的源码中寻找奥秘。 虽然代码很多,但是熟悉反射的同学会发现,这么一大串代码实际根据不同的Android版本反射不同的类,为了便于解释,我们这…
Android Espresso是如何获取View? (二)—— Android源码篇
本文基于 AOSP android-7.1.2_r28 的代码进行分析,虽然和后续Android源码稍微有些出入,但是基本一致。 我们先从简单的入手,AlertDialog是如何将RootView添加到window,显示View的。 我们看到AlertDialog 在onCre…
iOS越狱后对HTTPS验证的第三方APP抓包
昨天同事在调试bug发现开发手机上某款APP竟然不能抓包,甚至还弹出下面的界面,问我是什么情况。 看上去是APP自己对HTTPS证书进行验证了,就像我们无法使用Charles对微信和App Store进行抓包一样。经过我百般思索(google),终于发现github上面就有一个…
Hook方法的新姿势--Stinger (使用libffi实现AOP )
众所周知,使用runtime的提供的接口,我们可以设定原方法的IMP,或交换原方法和目标方法的IMP,以完全代替原方法的实现,或为原实现前后相当于加一段额外的代码。 使用知名的AOP库 Aspects ,可以更便捷地为原方法实现前后增加(代替)额外的执行。 另外,Aspects…
KVO与Aspects共存研究
在对Obj进行先KVO再Hook其setter函数后,调用obj的setter函数崩溃。 反之,若先Hook再KVO,则正常运行。 1.先对比两种添加顺序,导致的obj的isa和函数列表的不同。 通过下面的函数打印出,当前的obj→isa 及其函数列表。 对比可以发现,如果先K…
因一纸设计稿,我把竞品APP扒得裤衩不剩(下)
快速定位到目标代码,弄清逻辑,完成核心代码的抽取。 你可以可以用:adb shell dumpsys activity top > info.txt 把Activity详细信息打印到文件中。 Apktool反编译apk后,生成的是「Smali」文件,而非「Java」文件,Sma…
Crash监控平台Sentry的iOS SDK源码解析(二)
那么这篇文章我们就要去细读异常事件是如何被处理和上报的。 其中g_onExceptionEvent是一个函数指针,用于处理异常事件的。该函数指针在初始化的时候已经赋值,具体如下 总的看下来,Sentry的Crash日志采集的逻辑还是比较简单的,就是拦截Crash事件,记录并上报…
Crash监控平台Sentry的iOS SDK源码解析(一)
Sentry是一个实时事件日志记录和汇集的平台。其专注于错误监控以及提取一切事后处理所需信息而不依赖于麻烦的用户反馈。在国内例如Bugtags、Bugly等APP crash 采集平台。但是Sentry 的优势在于支持服务端、Android、iOS、Web等N种平台。还有最重要…
下一页
个人成就
文章被点赞
239
文章被阅读
82,306
掘力值
1,658
关注了
2
关注者
101
收藏集
3
关注标签
5
加入于
2017-06-08