项目地址: Box

文末扫码获取最新安装包 。

前言

有将近一个月没有更新文章了,一方面在啃 AOSP ,消化起来确实比较慢。在阅读的过程中,有时候上来就会陷入源码细节,其实这是没有必要的。刚开始更多的应该从整体脉络上去理解,摸清整个流程之后再去有针对性的看某些细节,才会事半功倍。下一篇应该会带来 Activity 启动流程分析

除了啃 AOSP 之外,剩下的时间都花在了开源项目的维护和更新上。一个是 Wanandroid 应用,主要技术栈是 Kotlin 、 MMVM 、 协程 ,开源了一段时间,一度觉得自己的 MVVM 写的还不错。在阅读相关架构文章以及 Google 重构了 plaid 之后,发现了自己的框架在 分离关注点 方面存在的一些问题。主要针对架构方面做了一些调整,目前来看还是比较符合 MVVM 的思想的。另外,也新增了网页版的新功能 “广场”。

说一说 Wanandroid 后续的更新计划,第一点,Jetpack 的深anzhuangb入使用。包括 Navigation 单 Activity 实现,Room ,Page 等类库的使用。第二点,完成一个 Jetpack Compse 版本,虽然 Compose 还是预览版,但我坚定看好 Compose,实在忍不住不去尝试一下,其实也已经在开发中了,完成了一些简单页面,有在学习 Compose 的朋友可以交流交流,项目地址在这里 -》 Wanandroid-Compose

Box V0.2.0

另一个开源项目就是今天要说的 Box 了,说来惭愧,已经好几个月没有更新了。这次带来了一个 "黑科技",对,没错,就是堪比 小米手机八项黑科技手机端反编译 功能。熟悉反编译的同学应该对这个功能很熟悉,但都是在 PC 上操作的,ApktoolJadx 等开源工具都提供了 PC 端的命令行操作或者图形界面。其实第一次看到手机端反编译功能是在 Trinea 的 Android 开发助手 上,当时感觉挺惊艳的,也比较好奇是如何实现的。anzhuangb

其实很简单,Apktool 和 Jadx 都是开源的,移植到 Android 上就可以了。大致浏览了一下 Jadx 源码,就开始了移植工作。鉴于 Jadx 源码的优秀设计,整个移植过程也没有费太大功夫。结合 Android 开发助手的 UI 设计,不难看出 Trinea 也是移植了 Jadx 源码。
box_app_managerbox_app_manager
下面的 gif 简单展示了反编译功能的使用:

nager

除此之外,针对之前的 当前 Activity 功能做了一些完善,主要替换了悬浮窗的依赖库,现在使用的是 EasyFloat。这是一个 Kotlin 版本,且更加稳定。下面也用一个 gif 演示一下该功能:

另外,在更新 AndroidUtilCodeKTX 的文件工具类部分时,为了能总结的尽量完整,就在 Box 里面增加了 文件管理 功能,界面相对简陋,但功能还算完整,后续会继续完善,大家可以提提 issue 。

针对 应用管理 功能,新增了对本地安装包文件的支持。无需安装也能直接查看各种应用信息。关于其中一个查看 AndroidManifest.xml 文件的功能,建议阅读 Android逆向笔记 —— AndroidManifest.xml 文件格式解析

最后

如果你有新奇的想法和功能,欢迎前来交流。

添加我的微信,加入技术交流群。

公众号后台回复 “Box”, 获取最新安装包。

文章首发微信公众号: 秉心说 , 专注 Java 、 Android 原创知识分享,LeetCode 题解。

更多最新原创文章,扫码关注我吧!

Box 黑科技 —— 支持手机端反编译 !Box 黑科技 —— 支持手机端反编译 !的更多相关文章

  1. 【反编译系列】一、反编译代码(dex2jar + jd-gui)和反编译资源(apktool)

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! [反编译系列]二.反编译代码(jeb) [反编译系列]三.反编译神器(jadx) [反编译系列]四.反编译so文件(IDA_Pro) 概述 ...

  2. 解决AndroidKiller APK 反编译失败,无法继续下一步源码反编译!

    报错背景 今天使用AndroidKiller V1.3.1,反编译一个APK,遇到如下报错: 当前 Apktool 使用版本:Android Killer Default APKTOOL 正在反编译 ...

  3. 编译原理--05 用C++手撕PL/0

    前言 目录 01 文法和语言.词法分析复习 02 自顶向下.自底向上的LR分析复习 03 语法制导翻译和中间代码生成复习 04 符号表.运行时存储组织和代码优化复习 05 用C++手撕PL/0 在之前 ...

  4. Atitit.反编译apk android源码以及防止反编译apk

    Atitit.反编译apk android源码以及防止反编译apk 1.1. Tool  apk逆向助手1 1.2. 二.使用dex2jar + jd-gui 得到apk的java源码1 1.3. 用 ...

  5. linux如何编译安装新内核支持NTFS文件系统?(以redhat7.2x64为例)

    内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新.新的内核修订了旧内核 ...

  6. ndk 编译 boost 库,支持serialization

    Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容.在C+ ...

  7. SQL反模式学习笔记6 支持可变属性【实体-属性-值】

    目标:支持可变属性 反模式:使用泛型属性表.这种设计成为实体-属性-值(EAV),也可叫做开放架构.名-值对. 优点:通过增加一张额外的表,可以有以下好处 (1)表中的列很少: (2)新增属性时,不需 ...

  8. 编译安装haproxy开启支持SSL

    1.下载程序包 # wget http://www.haproxy.org/download/1.7/src/haproxy-1.7.5.tar.gz # tar xvf haproxy-1.7.5. ...

  9. 编译安装FFmpeg 要支持xvid、x264、mp3、ogg、amr、faac

    编译安装FFmpeg 要支持xvid.x264.mp3.ogg.amr.faac libfaac    faac格式的编解码包libmp3lame    mp3格式编解码包libopencore-am ...

  10. Java程序员的现代RPC指南(Windows版预编译好的Protoc支持C++,Java,Python三种最常用的语言,Thrift则支持几乎主流的各种语言)

    Java程序员的现代RPC指南 1.前言 1.1 RPC框架简介 最早接触RPC还是初学Java时,直接用Socket API传东西好麻烦.于是发现了JDK直接支持的RMI,然后就用得不亦乐乎,各种大 ...

随机推荐

  1. CentOS 7 单机安装Redis Cluster(3主3从)

    首先,本篇要基于单实例的安装,你的机器上已经有一个Redishttps://gper.club/articles/7e7e7f7ff7g5egc4g6b 为了节省机器,我们直接把6个Redis实例安装 ...

  2. Vue中组件

    0828自我总结 Vue中组件 一.组件的构成 组件:由 template + css + js 三部分组成(.vue文件) 1)组件具有复用性 2) 复用组件时,数据要隔离 3) 复用组件时,方法不 ...

  3. .NET Core使用App.Metrics监控消息队列(一):初探

    一.简介 App Metrics是一个开放源代码和跨平台的.NET库,用于记录应用程序中的指标.App Metrics可以在.NET Core或也支持.NET 4.5.2的完整.NET框架上运行. A ...

  4. 聊聊面试-int和Integer的区别

    最近面试了很多候选人,发现很多人都不太重视基础,甚至连工作十几年,项目经验十几页的老程序员,框架学了一大堆,但是很多 Java 相关的基础知识却很多都答不上来.还有很多人会回答,只知道要用,但是从来不 ...

  5. Potato土豆win综合提权

    0x01 NBNS和WDAP NBNS: 在 Windows 系统中的另外一种名称就是 NetBIOS 名称,准确的说 NetBIOS 名称并非是一种名字系统,而是 Windows 操作系统网络的一个 ...

  6. Github 上热门的 Spring Boot 项目实战推荐

    最近经常被读者问到有没有 Spring Boot 实战项目可以学习,于是,我就去 Github 上找了 10 个我觉得还不错的实战项目.对于这些实战项目,有部分是比较适合 Spring Boot 刚入 ...

  7. maven子项目导出成jar包及运行

    第一步:选这idea右侧栏的maven projects 第二步:选中需要打包成jar包的项目下的lifecycle 第三步:选中package 第四步:点击开始导出 第五步:使用winRAR打开ja ...

  8. WPF使用border画框

    以前的界面中使用的框大都是由美工做好的,但是这样就遇到几个问题: 框只是换一个颜色,就需要多做出一张图,资源包中也要多一个图片资源: 文字的数量会改变,用一张固定的图进行拉伸,边角处会变得越来越不尽如 ...

  9. Java 中的 final、finally、finalize 有什么不同?

    Java 中 final.finally.finalize 有什么不同?这是在 Java 面试中经常问到的问题,他们究竟有什么不同呢? 这三个看起来很相似,其实他们的关系就像卡巴斯基和巴基斯坦一样有基 ...

  10. Java 异常(二) 自定义异常

    上篇文章介绍了java中异常机制,本文来演示一下自定义异常 上篇文章讲到非运行时异常和运行时异常,下面我们来看一下简单实现代码. 首先,先来看下演示目录 非运行时异常 也称 检查时异常 public ...