热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用ClassyShark分析Apk包的信息

欢迎Follow我的GitHub,关注我的CSDN.应用本质上是一个apk包,即一个zip包,可以直接显示其中的内容.通过apk文件,我们可以获知apk的版本信息,so库和第三方

欢迎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.

使用ClassyShark分析Apk包的信息


推荐阅读
  • andr ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • Vue 2 中解决页面刷新和按钮跳转导致导航栏样式失效的问题
    本文介绍了如何通过配置路由的 meta 字段,确保 Vue 2 项目中的导航栏在页面刷新或内部按钮跳转时,始终保持正确的 active 样式。具体实现方法包括设置路由的 meta 属性,并在 HTML 模板中动态绑定类名。 ... [详细]
  • 本文探讨了如何通过最小生成树(MST)来计算严格次小生成树。在处理过程中,需特别注意所有边权重相等的情况,以避免错误。我们首先构建最小生成树,然后枚举每条非树边,检查其是否能形成更优的次小生成树。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • VPX611是北京青翼科技推出的一款采用6U VPX架构的高性能数据存储板。该板卡搭载两片Xilinx Kintex-7系列FPGA作为主控单元,内置RAID控制器,支持多达8个mSATA盘,最大存储容量可达8TB,持续写入带宽高达3.2GB/s。 ... [详细]
author-avatar
Dearlily2046_394
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有