安卓机型app的编译与反编译 apk文件的简单说明与解析

现在很多友友都或多或少使用了几许安卓机型,果粉除外。有些友友热衷于修改安卓软件。当然类似的第三方rom 高级设置等等也是其中之一,今天只简单的说明一下安卓APP的组成与简单的编译步骤和软件相关。给想入门的友友了解下基本常识.

首先看下Android官网给出的编译打包总体流程。

安卓机型app的编译与反编译 apk文件的简单说明与解析_第1张图片

 

app包,本质上他就是个zip压缩文件包。将它解压缩我们可以看到这个包中文件列表.一个app的组成一般有以下几部分,如果你只是简单的想浏览下apk的文件,那么你使用7zip软件右击解压缩就会看到apk的文件组成。

安卓机型app的编译与反编译 apk文件的简单说明与解析_第2张图片

 使用编译软件打开。类似

安卓机型app的编译与反编译 apk文件的简单说明与解析_第3张图片

安卓机型app的编译与反编译 apk文件的简单说明与解析_第4张图片 

app不同 。里面的文件也有所不同。但大致一般有以下几个

1. assets
这个文件夹主要放软件中的一些资源,比如图片,字体,网页还有一些其他的东西等,美化时可能会动它。美化 替换图片 之类的就在这里

2. lib
这个文件夹中放了软件运行所依赖的so库和一些其他的库,一般不做修改。apk必须的库文件。有的软件会把他编译在其他地方.

3. META-INF
签名数据文件夹。至于什么是签名请自行百度,我们只需要知道在修改之后,安装之前要对apk进行重新签名,而且如果签名不一致的话是不能直接覆盖安装的。apk必须的文件之一。

4. res
这就是精简apk所要重点修改的地方了。软件的布局信息几乎都在这里面,包括一些软件本身的贴图等。看apk大小,

5. AndroidManifest.xml
这个文件放置了软件的主要信息,其中有包名,版本,Activity,权限等等,等会修改时也要用到。简单说也就是软件版本显示

6. classes.dex 
这个东东就是代码什么的啦,编译之后我们只能以Smali的形式进行编辑。当然,用mt可以将它转化成不完整的Java代码供我们参考。

7. resourses.arsc
这里面是一些二进制的资源引用,通过它可以查资源的十六进制的引用值,方便修改DEX。

那么一般编译apk需要哪些软件呢。手机类的首推mt管理器。当然开了会员功能无限制。网络也有破解版的。还有就是Apktool。是Google推出的apk反编译和打包工具,依赖于Java运行环境.编译和反编译apk,从apk中提取图片和布局资源简单。两者各有所长。当然也有其他编译软件。Apktool也有电脑版的软件。如果是在PC端使用需要下载apktool.jar原包,安装java环境并配置环境变量,通过cmd命令行才可以使用这类软件网络搜很多。也有作者整合到一起的图形化编译工具。类似

安卓机型app的编译与反编译 apk文件的简单说明与解析_第5张图片

 

安卓机型app的编译与反编译 apk文件的简单说明与解析_第6张图片安卓机型app的编译与反编译 apk文件的简单说明与解析_第7张图片

 修改app一般遵循一下步骤

1、使用编译软件在线或者单独将apk解包成一个文件夹

2、编译修改AndroidManifest.xml中对应的包名和相关

3、编译修改smali目录下中的资源

4、将文件夹反编译打包成apk

5、将apk重新签名

6、验证apk的签名

7、优化apk

8、安装apk,并测试。如正常,反编译成功

 一般兴趣就是从破解开始。不喜欢软件的弹窗。不想注册,不喜欢欢迎词。那么开始你的破界之路吧。工欲善其事必先利其器。好的编译工具可以使友友节省好多时间。综合来说。mt管理器对软件的直接编译方便简单。apktool手机端单独编译也不错。

下期我会以实例操作来演示一个app的反编译全过程。供友友借鉴参考。

关注我 了解安卓机型的基本搞机常识和故障解决

你可能感兴趣的:(刷机技术贴,android,app组成,apk编译)