yusakul / analysisapp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AnalysisApp

原项目,后续计划:更新sdk列表并自动读取清单文件


这是一个快速分析某个app使用哪些sdk的小工具。对广告sdk进行了特别的关照,因为一开始是想写一个分析使用哪些广告sdk的工具。

大致思路是读取android app的AndroidManifest.xml文件,将其转换成相应的对象。然后遍历该对象中Activity、Service、meta-data、Receiver等元素列表,将其跟sdk的特征值进行匹配。如果匹配成功表示app包含该sdk,并记录下来。

Handler用于处理sdk的特征值,它大部分使用groovy编写,因为groovy的语法糖可以少写很多代码。

整个项目使用Spring来管理各个Handler,使用责任链(Chain of Responsibility)模式将各个Handler串联起来。

对于某些特别复杂的Handler,比如TencentHandler和BaiduHandler,采用DFA的算法进行优化。

Main.java的main()是整个程序的入口,只需修改AndroidManifest.xml在main()的路径即可运行。


这个工具可以分析的sdk ,目前总共100个,还在不断添加中。

About

License:Apache License 2.0


Languages

Language:Groovy 58.4%Language:Java 41.6%