使用ClassyShark分析Apk包的信息

欢迎Follow我的GitHub, 关注我的CSDN.

应用本质上是一个apk包, 即一个zip包, 可以直接显示其中的内容. 通过apk文件, 我们可以获知apk的版本信息, so库和第三方库, 并了解一些主流公司的应用框架. 分析工具主要是ApkTool和ClassyShark, 本人比较喜欢Shark(鲨鱼). 本着窥探的心理, 我给大家简单分析一下–美团. 恭喜她, 中奖了!

美团. 让我们看看, 有什么好玩且有用的架构信息?


1 框架

噢, 美团的编译版本非常新, 紧跟时代, 23版本(Android 6.0).

但是TargetSdkVersion仍然是22版本(Android 5.1), 即6.0手机无法运行.

最低版本是16(Android 4.1), 4.1以下的手机无法运行.

使用MultiDex, 而且竟然有三个, 说明方法非常之多, 可能引入了大量第三方库.


2 方法

文件非常之多, 共有9万多个, 使用了大量的主流开源库.

我来介绍一下这些库, 不认识的朋友最好学习一下, 这些都是非常流行的开源库.

2.1 com

sankuai, 美团的核心类;

xiaomi, 小米推送(xiaomi);

squareup, Squareup的EventBus(otto), okhttp, picasso;

readystatesoftware, 状态栏沉浸效果库;

dianping, 大众点评, 已经合并一家, 东西也得用;

baidu, 百度地图;

viewpagerindicator, viewpager的滚动效果, 早期实现toolbar效果的方式;

weibo, 新浪微博;

fasterxml, 即jackson, json解析库;

iflytek, 科大讯飞的语音集成;

flurry, 统计库;

actionbarsherlock, actionBar的Tab效果, 和viewpagerindicator一起用.

meituan, 美团的核心类;

alipay, 支付宝;

handmark, 下拉刷新;

ms, Square的TextView文字扩展库, ExpandableTextView;

facebook, 图片处理库, 美团有大量的图片需求;

google, Gson解析库, ZXing二维码识别库, Dagger依赖注入;

unionpay, 银联支付;

tencent, 腾讯的QQ和微信;

ta, utdid2, 消息推送;

huawei, 华为手机的推送机制;

umpay, 联动优势支付;

amap, 高德地图;

nineoldandroids, ListView项的左右删除;

sina, 新浪登录;

2.2 其他

de.greenrobot, EventBus, 又一个, 看来代码开发还很混乱, 没有统一;

retrofit, 网络库, 2.x版本, 升级很及时;

javax, java注释, 配合dagger2使用;

org, apache的一些库;

rx, rxjava异步请求处理;

okio, square的存储数据读写库;

uk, photoview实现图片放大缩小功能;

android, 这个才是android提供的支持库;

bolts, 异步task关联库.

roboguice, Google Guice, Google的依赖注入库, 和Dagger2重复;

net, lingala, 处理zip压缩的库.


3. 总结

美团是一个技术非常Open的公司, 使用主流的开源框架, 减少开发成本.

这些开源库, 我也均有涉猎, 都是非常优秀的库, 不了解的朋友可以学习一下.

虽然方法很多, 但是使用开源库, 会大大减少开发成本, 增强应用稳定性.

Dagger+Retrofit+RxJava的业内标配, 美团也有所涉猎, 非常不错.



通过分析App的开源库, 是不是感觉架构其实也不是那么难, 多涉猎些东西, 使用起来才会得心应手. 武器库里多些趁手的武器, 打仗才会无往不胜. 去美团面试的朋友可以说, 我比你更了解公司的架构, 哈哈, 都是开玩笑的了.

OK, that’s all! Enjoy it.

时间: 2024-08-05 06:13:58

使用ClassyShark分析Apk包的信息的相关文章

提取目录下所有的apk包签名信息

for i in `find . -name "*.apk"`; do rm -rf toriko_apk; java -jar apktool.jar d -f $i -o toriko_apk; keytool -printcert -file ./toriko_apk/original/META-INF/CERT.RSA >> 1.log; done;

android获取apk安装包信息

public class TestActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  String archiveFilePath="sdcard/jb51.net.apk";//安装包路径  PackageManager p

查看APK包名签名等信息

有些游戏第三方比如分享需要配置游戏包名和签名,不同渠道包名签名又不同,所以时常需要查看不同apk包等签名信息,之前是使用等微博开放平台的手机客户端查看apk签名,前提是知道包名,网上找了下查看签名和包名的方法,找到一个比较好用的工具分享一下. 微博开放平台查看签名工具:下载 然而,不知道包名的情况下还是无法获取的,更何况还要安装到手机上使用app获取,在开发中显然下面到方式更简便. 获取 Apk 包名.VersionCode.VersionName 等相关信息 通过使用 aapt,可以获取 Ap

php获取apk包信息

这段时间太忙了,一个月没有写博客了,稍微闲下来就感觉把在开发中遇到的问题记录下来 php上传安卓apk包的时候,需要获取安卓apk包内的信息 <?php /*解析安卓apk包中的压缩XML文件,还原和读取XML内容 依赖功能:需要PHP的ZIP包函数支持.*/ include('./Apkparser.php'); $appObj = new Apkparser(); $targetFile = a.apk;//apk所在的路径地址 $res = $appObj->open($targetFi

Unity - Apk包的代码与资源提取

最近在研究如何给Unity游戏进行加密,让别人不能轻易破解你的apk包,不过网上的加密方法都是有对应的破解方法~_~!!结果加密方法没找到好的,逆向工程倒会了不少.今天就来讲解如何提取一个没做任何保护的apk包中的资源和代码. (1)打开apk包 首先,将你的apk包重命名为zip或者rar类型的文件,然后进行解压缩,如下: 重命名为,然后进行解压缩,得到如下的目录内容: 各个部分的说明如下表: assets Unity游戏里面的资源和代码 lib arm和x86需要的so文件 META-INF

Android 4.4(KitKat)中apk包的安装过程

原文地址:http://blog.csdn.net/jinzhuojun/article/details/25542011 其实对于apk包的安装,4.4和之前版本没大的差别.Android中app安装主要有以下几种情况:系统启动时安装,adb命令安装,Google Play上下载安装和通过PackageInstaller安装.安装的最核心方法是scanPackageLI(),以上几个安装方式最后都是调用这个函数完成主要工作的,区别在于在此之前的处理过程不同.本文以前两种为主,简要介绍这四种安装

如何使用Ant脚本编译出Jar和Apk包

一.前言 今天我们来看一个非常出名的工具ant,我们知道AndroidStudio中已经集成了gradle了,那么ant已经没有往日的辉煌了,但是他并没有被淘汰,因为在web项目中打出war包的时候也是可以用到的,虽然maven也很火,其实我开始工作已经快三年了,但是真心的还没用过ant脚本,因为在第一年的时候,我没有实际的出过release包,后面又开始用gradle了,所以直接略过了ant脚本了,但是今天因为有一个需求,就是想自动化的打出一个jar包,所以就想到了ant脚本,正好也算是学习了

转载:分析apk工具aapt的使用,解析其原理

通过apktool我们的确可以反编译已经序列化后的AndroidManifest.xml和资源文件等等,但是有没有一种快速有效的工具在不解包的前提下可以获得某一apk的基本内容.权限以及该apk的基本信息呢?答案就是有,这个工具就是今天要介绍的aapt. aapt简介 aapt即Android Asset Packaging Tool,我们可以在SDK的platform-tools目录下找到该工具.aapt可以查看. 创建. 更新ZIP格式的文档附件(zip, jar, apk). 也可将资源文

分析apk工具aapt的使用,解析其原理

通过apktool我们的确可以反编译已经序列化后的AndroidManifest.xml和资源文件等等,但是有没有一种快速有效的工具在不解包的前提下可以获得某一apk的基本内容.权限以及该apk的基本信息呢?答案就是有,这个工具就是今天要介绍的aapt. aapt简介 aapt即Android Asset Packaging Tool,我们可以在SDK的platform-tools目录下找到该工具.aapt可以查看. 创建. 更新ZIP格式的文档附件(zip, jar, apk). 也可将资源文