首页 > 编程源码 > mt管理器课程二-apk解析分析

mt管理器课程二-apk解析分析

楼主:sakura [2级] · 2019-11-24 ·  浏览1053 · 编程源码 · ID:

我是Sakura,有很多人想成为内购大佬。

但是却不会。在这里开一个mt管理器的课程。

给大家解说一下。

回到前面的上一课。

以及内购方法。

# 墨寒教你玩内购滑雪大冒险#

# mt管理器的基础知识(1)#

1、apk包解析后的结构:

2、解压Apk后文件夹里包含的文件:

assets目录,保留工程中assets目录,其他工程下的、jar包中的assets也会合并到该assets目录下。

lib目录,由于编译的时候jar文件已经合并到主工程中,所以lib目录下不会有jar文件,但是lib中包含所有的so文件,so目录的路径保留原有的路径。

META-INF目录,信息描述,签名等用途。

编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。而在Android手机上安装apk包时,应用管理器会按照同样的算法对包里的文件做校验,如果校验结果与META-INF下的内容不一致,系统就不会安装这个apk。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码, 或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于保护系 统的安全。

image.png

res目录,工程资源文件,以主工程为主,其他文件如jar包会合并到该目录下;但是values文件将不会出现在此目录下,因为已经将其编译到resources.arsc文件中;raw文件将保持原有的内容不会被编译。

image.png

AndroidManifest文件,用来做组件查找。

classes.dex文件,虚拟机执行的文件。

dex文件也是通过DexClassLoader来加载的,所以如果我们在程序中使用加载器加载指定的dex文件,就可以实现动态加载了。Facebook分dex包也是基于这种方式来做的。至于为什么要分多个dex文件,原因如下:

因为一个应用的功能会越来越多,随着工程越来越大,代码量也会越来越多,但是Android方法数量不能超过65K,如果超出之后,将会抛出Conversion to Dalvik format failed:Unable to execute dex:method ID not in[0,0xffff]65536。由于Android系统中,一个Dex文件中存储方法的id用的是short类型数据,所以导致你的dex中方法数不能超过65K。可以通过去掉无用的jar包,或者将一些属性

- 版权声明 - 1、本帖所有言论和图片等纯属网友个人意见,与流星社区立场无关;
2、其他单位或个人使用、转载或引用本帖时必须同时征得该帖子作者sakura流星社区的同意;
3、备注原文地址:https://bbs.liuxingw.com/t/18173.html,可忽略第2条;
4、帖子作者需承担一切因本文发表而直接或间接导致的相关责任;
5、如本帖内容或部分内容转载自其它媒体,这并不代表本站赞同其观点和对其真实性负责;
6、如本帖若为资源类,将仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您安装或使用的设备中彻底删除上述内容;
7、如果您喜欢该程序,请支持正版软件,购买注册,可以得到更好的正版服务;
8、如本帖侵犯到任何版权或违法问题,请立即邮件告知我们,我们将及时予以处理。
7条回复 |  最后回复于2019-11-24

[]

看来一楼我的了
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

東陞 [3级]

【 】東陞发帖鼓励
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

東陞 [3级]

【 】東陞发帖奖励
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

東陞 [3级]

继续努力。
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

sakura [2级]

这字怎么打。
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

安然 [3级]

留名,哈哈
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...

sakura [2级]

太残忍了
发布于2019-11-24

回复列表

  • 内容加载中...

说点什么...
登录注册 后才可进行评论
签到
35人签到
已签0天
  • 46634帖子
  • 1936915热点量
  • 185028火热值