为什么要分析手淘的小蜜

因为可能需要做一款类似的产品.

如何分析

  1. 反编译手淘
  2. 查看UI布局

分析步骤

1. 反编译手淘查看反编译后的源码分析实现框架

2. 反编译资源文件查看资源信息(没有得逞)

3. 通过hierarchyviewer分析布局结构

3. 通过抓包分析网络请求

分析结果

通过反编译android淘宝app,发现:
1. 手淘使用的是atlas插件框架
2. 小蜜是作为一个插件形式存在于手淘中
3. 小蜜是通过WVUCWebView的FrameLayout代理了webview

关于第三点的实现猜测:
WVUCWebView对webview中的标签做了原生控件的映射.
映射为view/button等对象,然后把文本绘制上去,有超链接的处理超链接.

相当于对原生的webview做了一层代理. 可以通过Android Device Monitor查看布局结构.

总结

插件加载, 插件相关的可以看atlas相关的资料. FrameLayout封装的原生和webview的代理挺好的,而且使用起来体验很不错.

环境和工具

Ubuntu 16.04
d2j-dex2jar
apk-tool
Android Device Monitor

两张截图

通过反编译的方式分析阿里手淘小蜜的实现方式相关推荐

  1. android 反编译_Box 黑科技——支持手机端反编译

    项目地址: https://github.com/lulululbj/Box 文末扫码获取最新安装包 . 前言 有将近一个月没有更新文章了,一方面在啃 AOSP ,消化起来确实比较慢.在阅读的过程中, ...

  2. 【Java 虚拟机原理】Dalvik 虚拟机 ( 打包 Jar 文件和 Dex 文件 | 反编译 Dex 文件 | 分析 Dex 文件反编译结果 )

    文章目录 前言 一.打包 Jar 文件和 Dex 文件 1.示例代码 2.打包 Jar 文件 3.打包 Dex 文件 二.反编译 Dex 文件 三.分析 Dex 文件 1.Student 类相关信息 ...

  3. 反编译并修复过的手写识别类--(android 搜狗 libhanwonhw_v15)

    android的搜狗拼音输入法中,手写识别库貌似接口非常简单,所以我动了要用它的念头,于是反编译之.并修正了代码如下: // HWIMEInterface.java package com.sohu. ...

  4. 最新‘微信小程序’反编译最新教程(如何找回微信小程序源码手把手教程)

    前言: 简单聊一下xxxxx.wxapkg 先来想想一个很简单的问题,小程序的源文件存放在哪? 当然是在微信的服务器上. 但是在微信服务器上,普通用户想要获取到,肯定是十分困难的,有没有别的办法呢? ...

  5. vue.js反编译_基于electron-vue开发的微信小程序反编译客户端

    开源一个小程序反编译客户端 咨询小程序反编译的同学比较多,虽然有开源库但是还是有同学不清楚如何去操作,所以索性做了一个客户端方便进行小程序的反编译 # 技术选型 网上已经有大佬实现了C#版的反编译工具 ...

  6. MySQL数据库:我的阿里手淘面试经历分享,爱了爱了

    前言 其实前几篇文章已经写了好多有关于Spring源码的文章,事实上,很多同学虽然一直在跟着阅读.学习这些Spring的源码教程,但是一直都很迷茫,这些Spring的源码学习,似乎只是为了面试吹逼用, ...

  7. SQL分析阿里云淘宝电商数据

    本文使用SQL语句对50w条淘宝用户数据进行分析. 数据库:SQL Server. 文章结构 一.提出问题 1.分析目的 2.分析框架 二.数据准备 1.数据来源 2.数据描述 3.数据预处理 3.1 ...

  8. 阿里手淘猜你喜欢Swing算法介绍

    Swing算法原理比较简单,是阿里早期使用到的一种召回算法,在阿里多个业务被验证过非常有效的一种召回方式,它认为 user-item-user 的结构比 itemCF 的单边结构更稳定. Swing指 ...

  9. 阿里手淘可伸缩布局方案amfe-flexible解决vue移动端适配问题

    前言: 由于viewport单位得到众多浏览器的兼容,lib-flexible这个过渡方案已经可以放弃使用,不管是现在的版本还是以前的版本,都存有一定的问题.建议大家开始使用viewport来替代此方 ...

最新文章

  1. mysql优化零基础_MySQL8数据库 | MySQL调优|MySQL底层原理|MySQL零基础新手教程
  2. uglify压缩angular控制器注意
  3. c语言的运算符表格,C语言教案(运算符和表格达式).ppt
  4. java广度优先遍历
  5. C#替换字符串起始/结尾指定的字符串
  6. 【CodeForces - 298B 】Sail (模拟,题意)
  7. Django-安装xadmin的方法及主要配置方法
  8. 苹果支持安卓手机以旧换新,华为P30顶配最高才抵扣200元?
  9. Redis set集合结构及命令详解
  10. 数据字典怎么写_做数据分析,我只会同环比,谁能教我怎么写结论?
  11. Nero刻录软件下载
  12. 万恶的火狐插件IE Tab Plus+引起的Superfish.com
  13. macbookair有没有touchbar_Touch Bar 真的好用吗?苹果全新 MacBook Pro 触控条上手体验...
  14. 【JAVASE】泛型基础
  15. 外贸电商:除了paypal,这些支付方式也能帮到你
  16. 智能手环---设计与实现
  17. 一个牛逼的程序员是什么样的?
  18. 02333软件工程——结构化方法
  19. 更新KB5005565补丁后win10局域网打印机不能共享打印
  20. python获取中文字体点阵坐标_Python实现点阵字体读取与转换

热门文章

  1. Windows 更新永恒之蓝 补丁包方法
  2. Python实现KNN(K近邻)回归模型(KNeighborsRegressor算法)并应用网格搜索算法寻找最优参数值项目实战
  3. 程序设计基础第四版清华大学出版社任务4.2某地刑侦大队对涉及6个犯罪嫌疑人的一桩疑案进行分析
  4. 关于VSFTPD匿名用户文件上传权限的问题
  5. 创意十足的抽奖二维码制作教程
  6. WIN7/8 默认网关总是自动消失
  7. 微信状态出新玩法,又被网友玩坏了
  8. 未来的 Web3会带来什么?
  9. c语言-------水仙花数
  10. 为什么XM1008K6U6可以不软件就替换STM32F031K6U6?