android apk解包和打包

2024-06-08 04:38
文章标签 android 打包 apk 解包

本文主要是介绍android apk解包和打包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近项目开发,我的jar包和资源文件给别的同事打包,这样我自己测试很麻烦,每次改一点东西都要找人打包测试,很麻烦,就想着能够解包,更新一下自己的部分代码,再打包apk直接测试。后来找了一些网上内容,也没那么麻烦,成功搞定。主要分为下面几个大的步骤:

一、下载apktools

网上下载apktools工具,应该有很多工具来解包。

二、用apktools解包

apk可以直接修改后缀名为zip,直接解压,但是直接解压出来的源码还是在dex中的,还是需要工具将dex转为jar包,但是直接使用apktools能够将apk包解包,dex文件也能解压为smali文件,此文件应该是类似于android虚拟机的class文件。解压命令如下:

java -jar apktool.jar d app-debug.apk

解压完成后目录如下:

三、更新自己代码或资源

解压后的包中,assets为资源文件,smali中为类似class文件的源码,此处要注意,如果要替换class文件,需要将你的源码打成apk包,再用上面的解包解出smali文件来替换此处的smali文件,即你新的源码也要通过此方法转为smali格式去替代老的smali文件。

四、用apktools打包

修改完成后,再通过apktools进行打包,打包命令如下

java -jar apktool.jar b app-debug

其中b为打包标识,app-debug为需要打包的文件夹,就是之前解包解出的文件夹。打包如下:

注意打包命令后,打出的apk 包是在app-debug文件夹下dist中生成,即在app-debug文件中生成文件夹。

五、用jarsign给apk包签名

打包完成后,还未结束,需要加签名,不签名是安装不了的,当然此处我用的kesstore是我自己的,文件如下:

通过如下方式进行签名:

jarsigner -verbose -keystore aeo_android.keystore -signedjar app-debug_signed.apk app-debug.apk aeo_android.keystore

签名完成生成如下签名后的apk文件:

签名后的apk包即可正常使用。

这篇关于android apk解包和打包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1041217

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

javafx 如何将项目打包为 Windows 的可执行文件exe

《javafx如何将项目打包为Windows的可执行文件exe》文章介绍了三种将JavaFX项目打包为.exe文件的方法:方法1使用jpackage(适用于JDK14及以上版本),方法2使用La... 目录方法 1:使用 jpackage(适用于 JDK 14 及更高版本)方法 2:使用 Launch4j(

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

springboot3打包成war包,用tomcat8启动

1、在pom中,将打包类型改为war <packaging>war</packaging> 2、pom中排除SpringBoot内置的Tomcat容器并添加Tomcat依赖,用于编译和测试,         *依赖时一定设置 scope 为 provided (相当于 tomcat 依赖只在本地运行和测试的时候有效,         打包的时候会排除这个依赖)<scope>provided